Changeset 3342033
- Timestamp:
- 08/09/2025 01:46:15 PM (8 months ago)
- Location:
- dokan-kits/trunk
- Files:
-
- 23 edited
-
build/admin/app.asset.php (modified) (1 diff)
-
build/admin/app.js (modified) (18 diffs)
-
dokan-kits.php (modified) (2 diffs)
-
includes/Admin/Dashboard/Components/SettingsElement.php (modified) (6 diffs)
-
includes/Admin/Dashboard/Dashboard.php (modified) (1 diff)
-
includes/Core/Data/DataStore.php (modified) (6 diffs)
-
includes/Core/Data/Model.php (modified) (5 diffs)
-
includes/Core/Data/Models/Settings.php (modified) (6 diffs)
-
includes/Core/Data/Stores/SettingsDataStore.php (modified) (20 diffs)
-
includes/Core/TemplateManager.php (modified) (2 diffs)
-
includes/Features/Feature.php (modified) (2 diffs)
-
includes/Features/Product/ProductFields.php (modified) (2 diffs)
-
includes/REST/Controllers/Version1/DashboardController.php (modified) (5 diffs)
-
includes/REST/Controllers/Version1/SettingsController.php (modified) (19 diffs)
-
includes/REST/Controllers/Version1/ToolsController.php (modified) (10 diffs)
-
includes/Setup/Activator.php (modified) (3 diffs)
-
includes/Setup/Migrations/V300/MigrateOldSettings.php (modified) (2 diffs)
-
includes/Setup/Migrator.php (modified) (1 diff)
-
languages/dokan-kits.pot (modified) (60 diffs)
-
readme.txt (modified) (2 diffs)
-
vendor/composer/autoload_files.php (modified) (1 diff)
-
vendor/composer/autoload_static.php (modified) (1 diff)
-
vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
dokan-kits/trunk/build/admin/app.asset.php
r3335399 r3342033 1 <?php return array('dependencies' => array('react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-block-editor', 'wp-components', 'wp-dom-ready', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n'), 'version' => ' eb3164b1ecde8a7d3c65');1 <?php return array('dependencies' => array('react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-block-editor', 'wp-components', 'wp-dom-ready', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n'), 'version' => 'cb28e469e33c56f7ca5e'); -
dokan-kits/trunk/build/admin/app.js
r3335399 r3342033 1 (()=>{"use strict";var e={n:t=>{var a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a}),a},d:(t,a)=>{for(var r in a)e.o(a,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:a[r]})}};e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var t;e.g.importScripts&&(t=e.g.location+"");var a=e.g.document;if(!t&&a&&(a.currentScript&&"SCRIPT"===a.currentScript.tagName.toUpperCase()&&(t=a.currentScript.src),!t)){var r=a.getElementsByTagName("script");if(r.length)for(var s=r.length-1;s>-1&&(!t||!/^http(s?):/.test(t));)t=r[s--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"})();const t=window.wp.components,a=window.wp.domReady;var r=e.n(a);const s=window.wp.element,n=window.wp.hooks,o=window.React;var d,i=e=>{throw TypeError(e)},l=(e,t,a)=>(((e,t)=>{t.has(e)||i("Cannot read from private field")})(e,t),a?a.call(e):t.get(e)),c="popstate";function u(e={}){return function(e,t,a,r={}){let{window:s=document.defaultView,v5Compat:n=!1}=r,o=s.history,d="POP",i=null,l=u();function u(){return(o.state||{idx:null}).idx}function k(){d="POP";let e=u(),t=null==e?null:e-l;l=e,i&&i({action:d,location:f.location,delta:t})}function m(e){return g(e)}null==l&&(l=0,o.replaceState({...o.state,idx:l},""));let f={get action(){return d},get location(){return e(s,o)},listen(e){if(i)throw new Error("A history only accepts one active listener");return s.addEventListener(c,k),i=e,()=>{s.removeEventListener(c,k),i=null}},createHref:e=>t(s,e),createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){d="PUSH";let r=p(f.location,e,t);a&&a(r,e),l=u()+1;let c=h(r,l),k=f.createHref(r);try{o.pushState(c,"",k)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;s.location.assign(k)}n&&i&&i({action:d,location:f.location,delta:1})},replace:function(e,t){d="REPLACE";let r=p(f.location,e,t);a&&a(r,e),l=u();let s=h(r,l),c=f.createHref(r);o.replaceState(s,"",c),n&&i&&i({action:d,location:f.location,delta:0})},go:e=>o.go(e)};return f}(function(e,t){let{pathname:a="/",search:r="",hash:s=""}=x(e.location.hash.substring(1));return a.startsWith("/")||a.startsWith(".")||(a="/"+a),p("",{pathname:a,search:r,hash:s},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){let a=e.document.querySelector("base"),r="";if(a&&a.getAttribute("href")){let t=e.location.href,a=t.indexOf("#");r=-1===a?t:t.slice(0,a)}return r+"#"+("string"==typeof t?t:f(t))},function(e,t){m("/"===e.pathname.charAt(0),`relative pathnames are not supported in hash history.push(${JSON.stringify(t)})`)},e)}function k(e,t){if(!1===e||null==e)throw new Error(t)}function m(e,t){if(!e){"undefined"!=typeof console&&console.warn(t);try{throw new Error(t)}catch(e){}}}function h(e,t){return{usr:e.state,key:e.key,idx:t}}function p(e,t,a=null,r){return{pathname:"string"==typeof e?e:e.pathname,search:"",hash:"",..."string"==typeof t?x(t):t,state:a,key:t&&t.key||r||Math.random().toString(36).substring(2,10)}}function f({pathname:e="/",search:t="",hash:a=""}){return t&&"?"!==t&&(e+="?"===t.charAt(0)?t:"?"+t),a&&"#"!==a&&(e+="#"===a.charAt(0)?a:"#"+a),e}function x(e){let t={};if(e){let a=e.indexOf("#");a>=0&&(t.hash=e.substring(a),e=e.substring(0,a));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function g(e,t=!1){let a="http://localhost";"undefined"!=typeof window&&(a="null"!==window.location.origin?window.location.origin:window.location.href),k(a,"No window.location.(origin|href) available to create URL");let r="string"==typeof e?e:f(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=a+r),new URL(r,a)}var b=class{constructor(e){var t,a,r;if(t=this,a=d,r=new Map,a.has(t)?i("Cannot add the same private member more than once"):a instanceof WeakSet?a.add(t):a.set(t,r),e)for(let[t,a]of e)this.set(t,a)}get(e){if(l(this,d).has(e))return l(this,d).get(e);if(void 0!==e.defaultValue)return e.defaultValue;throw new Error("No value found for context")}set(e,t){l(this,d).set(e,t)}};d=new WeakMap;var y=new Set(["lazy","caseSensitive","path","id","index","children"]),w=new Set(["lazy","caseSensitive","path","id","index","unstable_middleware","children"]);function v(e){return w.has(e)}function j(e,t,a=[],r={},s=!1){return e.map((e,n)=>{let o=[...a,String(n)],d="string"==typeof e.id?e.id:o.join("-");if(k(!0!==e.index||!e.children,"Cannot specify children on an index route"),k(s||!r[d],`Found a route id collision on id "${d}". Route id's must be globally unique within Data Router usages`),function(e){return!0===e.index}(e)){let a={...e,...t(e),id:d};return r[d]=a,a}{let a={...e,...t(e),id:d,children:void 0};return r[d]=a,e.children&&(a.children=j(e.children,t,o,r,s)),a}})}function _(e,t,a="/"){return N(e,t,a,!1)}function N(e,t,a,r){let s=F(("string"==typeof t?x(t):t).pathname||"/",a);if(null==s)return null;let n=C(e);!function(e){e.sort((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let a=e.length===t.length&&e.slice(0,-1).every((e,a)=>e===t[a]);return a?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)))}(n);let o=null;for(let e=0;null==o&&e<n.length;++e){let t=O(s);o=A(n[e],t,r)}return o}function C(e,t=[],a=[],r=""){let s=(e,s,n)=>{let o={relativePath:void 0===n?e.path||"":n,caseSensitive:!0===e.caseSensitive,childrenIndex:s,route:e};o.relativePath.startsWith("/")&&(k(o.relativePath.startsWith(r),`Absolute route path "${o.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),o.relativePath=o.relativePath.slice(r.length));let d=V([r,o.relativePath]),i=a.concat(o);e.children&&e.children.length>0&&(k(!0!==e.index,`Index routes must not have child routes. Please remove all child routes from route path "${d}".`),C(e.children,t,i,d)),(null!=e.path||e.index)&&t.push({path:d,score:z(d,e.index),routesMeta:i})};return e.forEach((e,t)=>{if(""!==e.path&&e.path?.includes("?"))for(let a of S(e.path))s(e,t,a);else s(e,t)}),t}function S(e){let t=e.split("/");if(0===t.length)return[];let[a,...r]=t,s=a.endsWith("?"),n=a.replace(/\?$/,"");if(0===r.length)return s?[n,""]:[n];let o=S(r.join("/")),d=[];return d.push(...o.map(e=>""===e?n:[n,e].join("/"))),s&&d.push(...o),d.map(t=>e.startsWith("/")&&""===t?"/":t)}var E=/^:[\w-]+$/,R=3,D=2,M=1,T=10,P=-2,L=e=>"*"===e;function z(e,t){let a=e.split("/"),r=a.length;return a.some(L)&&(r+=P),t&&(r+=D),a.filter(e=>!L(e)).reduce((e,t)=>e+(E.test(t)?R:""===t?M:T),r)}function A(e,t,a=!1){let{routesMeta:r}=e,s={},n="/",o=[];for(let e=0;e<r.length;++e){let d=r[e],i=e===r.length-1,l="/"===n?t:t.slice(n.length)||"/",c=$({path:d.relativePath,caseSensitive:d.caseSensitive,end:i},l),u=d.route;if(!c&&i&&a&&!r[r.length-1].route.index&&(c=$({path:d.relativePath,caseSensitive:d.caseSensitive,end:!1},l)),!c)return null;Object.assign(s,c.params),o.push({params:s,pathname:V([n,c.pathname]),pathnameBase:q(V([n,c.pathnameBase])),route:u}),"/"!==c.pathnameBase&&(n=V([n,c.pathnameBase]))}return o}function $(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[a,r]=function(e,t=!1,a=!0){m("*"===e||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let r=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,a)=>(r.push({paramName:t,isOptional:null!=a}),a?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?s+="\\/*$":""!==e&&"/"!==e&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}(e.path,e.caseSensitive,e.end),s=t.match(a);if(!s)return null;let n=s[0],o=n.replace(/(.)\/+$/,"$1"),d=s.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:a},r)=>{if("*"===t){let e=d[r]||"";o=n.slice(0,n.length-e.length).replace(/(.)\/+$/,"$1")}const s=d[r];return e[t]=a&&!s?void 0:(s||"").replace(/%2F/g,"/"),e},{}),pathname:n,pathnameBase:o,pattern:e}}function O(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return m(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function F(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let a=t.endsWith("/")?t.length-1:t.length,r=e.charAt(a);return r&&"/"!==r?null:e.slice(a)||"/"}function B(e,t,a,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${a}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function I(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function U(e){let t=I(e);return t.map((e,a)=>a===t.length-1?e.pathname:e.pathnameBase)}function H(e,t,a,r=!1){let s;"string"==typeof e?s=x(e):(s={...e},k(!s.pathname||!s.pathname.includes("?"),B("?","pathname","search",s)),k(!s.pathname||!s.pathname.includes("#"),B("#","pathname","hash",s)),k(!s.search||!s.search.includes("#"),B("#","search","hash",s)));let n,o=""===e||""===s.pathname,d=o?"/":s.pathname;if(null==d)n=a;else{let e=t.length-1;if(!r&&d.startsWith("..")){let t=d.split("/");for(;".."===t[0];)t.shift(),e-=1;s.pathname=t.join("/")}n=e>=0?t[e]:"/"}let i=function(e,t="/"){let{pathname:a,search:r="",hash:s=""}="string"==typeof e?x(e):e,n=a?a.startsWith("/")?a:function(e,t){let a=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(e=>{".."===e?a.length>1&&a.pop():"."!==e&&a.push(e)}),a.length>1?a.join("/"):"/"}(a,t):t;return{pathname:n,search:W(r),hash:K(s)}}(s,n),l=d&&"/"!==d&&d.endsWith("/"),c=(o||"."===d)&&a.endsWith("/");return i.pathname.endsWith("/")||!l&&!c||(i.pathname+="/"),i}var V=e=>e.join("/").replace(/\/\/+/g,"/"),q=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),W=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",K=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"",G=class{constructor(e,t,a,r=!1){this.status=e,this.statusText=t||"",this.internal=r,a instanceof Error?(this.data=a.toString(),this.error=a):this.data=a}};function Y(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}var J=["POST","PUT","PATCH","DELETE"],Z=new Set(J),X=["GET",...J],Q=new Set(X),ee=new Set([301,302,303,307,308]),te=new Set([307,308]),ae={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},re={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},se={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ne=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,oe=e=>ne.test(e),de=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)}),ie="remix-router-transitions",le=Symbol("ResetLoaderData");function ce(e){const t=e.window?e.window:"undefined"!=typeof window?window:void 0,a=void 0!==t&&void 0!==t.document&&void 0!==t.document.createElement;k(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let r,s,n,o=e.hydrationRouteProperties||[],d=e.mapRouteProperties||de,i={},l=j(e.routes,d,void 0,i),c=e.basename||"/",u=e.dataStrategy||ve,h={unstable_middleware:!1,...e.future},f=null,x=new Set,y=null,w=null,v=null,C=null!=e.hydrationData,S=_(l,e.history.location,c),E=!1,R=null;if(null!=S||e.patchRoutesOnNavigation)if(S&&!e.hydrationData&& at(S,l,e.history.location.pathname).active&&(S=null),S)if(S.some(e=>e.route.lazy))s=!1;else if(S.some(e=>e.route.loader)){let t=e.hydrationData?e.hydrationData.loaderData:null,a=e.hydrationData?e.hydrationData.errors:null;if(a){let e=S.findIndex(e=>void 0!==a[e.route.id]);s=S.slice(0,e+1).every(e=>!he(e.route,t,a))}else s=S.every(e=>!he(e.route,t,a))}else s=!0;else{s=!1,S=[];let t=at(null,l,e.history.location.pathname);t.active&&t.matches&&(E=!0,S=t.matches)}else{let t=Fe(404,{pathname:e.history.location.pathname}),{matches:a,route:r}=Oe(l);s=!0,S=a,R={[r.id]:t}}let D,M,T={historyAction:e.history.action,location:e.history.location,matches:S,initialized:s,navigation:ae,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||R,fetchers:new Map,blockers:new Map},P="POP",L=!1,z=!1,A=new Map,$=null,O=!1,B=!1,I=new Set,U=new Map,H=0,V=-1,q=new Map,W=new Set,K=new Map,G=new Map,J=new Set,Z=new Map,X=null;function Q(e,t={}){e.matches&&(e.matches=e.matches.map(e=>{let t=i[e.route.id],a=e.route;return a.element!==t.element||a.errorElement!==t.errorElement||a.hydrateFallbackElement!==t.hydrateFallbackElement?{...e,route:t}:e})),T={...T,...e};let a=[],r=[];T.fetchers.forEach((e,t)=>{"idle"===e.state&&(J.has(t)?a.push(t):r.push(t))}),J.forEach(e=>{T.fetchers.has(e)||U.has(e)||a.push(e)}),[...x].forEach(e=>e(T,{deletedFetchers:a,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync})),a.forEach(e=>_e(e)),r.forEach(e=>T.fetchers.delete(e))}function ee(t,a,{flushSync:s}={}){let n,o=null!=T.actionData&&null!=T.navigation.formMethod&&Ke(T.navigation.formMethod)&&"loading"===T.navigation.state&&!0!==t.state?._isRedirect;n=a.actionData?Object.keys(a.actionData).length>0?a.actionData:null:o?T.actionData:null;let d=a.loaderData?ze(T.loaderData,a.loaderData,a.matches||[],a.errors):T.loaderData,i=T.blockers;i.size>0&&(i=new Map(i),i.forEach((e,t)=>i.set(t,se)));let c,u=!O&&tt(t,a.matches||T.matches),k=!0===L||null!=T.navigation.formMethod&&Ke(T.navigation.formMethod)&&!0!==t.state?._isRedirect;if(r&&(l=r,r=void 0),O||"POP"===P||("PUSH"===P?e.history.push(t,t.state):"REPLACE"===P&&e.history.replace(t,t.state)),"POP"===P){let e=A.get(T.location.pathname);e&&e.has(t.pathname)?c={currentLocation:T.location,nextLocation:t}:A.has(t.pathname)&&(c={currentLocation:t,nextLocation:T.location})}else if(z){let e=A.get(T.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),A.set(T.location.pathname,e)),c={currentLocation:T.location,nextLocation:t}}Q({...a,actionData:n,loaderData:d,historyAction:P,location:t,initialized:!0,navigation:ae,revalidation:"idle",restoreScrollPosition:u,preventScrollReset:k,blockers:i},{viewTransitionOpts:c,flushSync:!0===s}),P="POP",L=!1,z=!1,O=!1,B=!1,X?.resolve(),X=null}async function ne(t,a,s){D&&D.abort(),D=null,P=t,O=!0===(s&&s.startUninterruptedRevalidation),function(e,t){if(y&&v){let a=et(e,t);y[a]=v()}}(T.location,T.matches),L=!0===(s&&s.preventScrollReset),z=!0===(s&&s.enableViewTransition);let n=r||l,u=s&&s.overrideNavigation,k=s?.initialHydration&&T.matches&&T.matches.length>0&&!E?T.matches:_(n,a,c),m=!0===(s&&s.flushSync);if(k&&T.initialized&&!B&&function(e,t){return e.pathname===t.pathname&&e.search===t.search&&(""===e.hash?""!==t.hash:e.hash===t.hash||""!==t.hash)}(T.location,a)&&!(s&&s.submission&&Ke(s.submission.formMethod)))return void ee(a,{matches:k},{flushSync:m});let h=at(k,n,a.pathname);if(h.active&&h.matches&&(k=h.matches),!k){let{error:e,notFoundMatches:t,route:r}=Ge(a.pathname);return void ee(a,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:m})}D=new AbortController;let p,f=Me(e.history,a,D.signal,s&&s.submission),x=new b(e.unstable_getContext?await e.unstable_getContext():void 0);if(s&&s.pendingError)p=[$e(k).route.id,{type:"error",error:s.pendingError}];else if(s&&s.submission&&Ke(s.submission.formMethod)){let t=await async function(e,t,a,r,s,n,l,u={}){ge();let k,m=function(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}(t,a);if(Q({navigation:m},{flushSync:!0===u.flushSync}),n){let a=await rt(r,t.pathname,e.signal);if("aborted"===a.type)return{shortCircuited:!0};if("error"===a.type){let e=$e(a.partialMatches).route.id;return{matches:a.partialMatches,pendingActionResult:[e,{type:"error",error:a.error}]}}if(!a.matches){let{notFoundMatches:e,error:a,route:r}=Ge(t.pathname);return{matches:e,pendingActionResult:[r.id,{type:"error",error:a}]}}r=a.matches}let h=Ye(r,t);if(h.route.action||h.route.lazy){let t=Se(d,i,e,r,h,l?[]:o,s),a=await pe(e,t,s,null);if(k=a[h.route.id],!k)for(let e of r)if(a[e.route.id]){k=a[e.route.id];break}if(e.signal.aborted)return{shortCircuited:!0}}else k={type:"error",error:Fe(405,{method:e.method,pathname:t.pathname,routeId:h.route.id})};if(Ve(k)){let t;return t=u&&null!=u.replace?u.replace:De(k.response.headers.get("Location"),new URL(e.url),c)===T.location.pathname+T.location.search,await ce(e,k,!0,{submission:a,replace:t}),{shortCircuited:!0}}if(He(k)){let e=$e(r,h.route.id);return!0!==(u&&u.replace)&&(P="PUSH"),{matches:r,pendingActionResult:[e.route.id,k,h.route.id]}}return{matches:r,pendingActionResult:[h.route.id,k]}}(f,a,s.submission,k,x,h.active,s&&!0===s.initialHydration,{replace:s.replace,flushSync:m});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,r]=t.pendingActionResult;if(He(r)&&Y(r.error)&&404===r.error.status)return D=null,void ee(a,{matches:t.matches,loaderData:{},errors:{[e]:r.error}})}k=t.matches||k,p=t.pendingActionResult,u=Ze(a,s.submission),m=!1,h.active=!1,f=Me(e.history,f.url,f.signal)}let{shortCircuited:g,matches:w,loaderData:j,errors:N}=await async function(t,a,s,n,u,k,m,h,p,f,x,g){let b=k||Ze(a,m),y=m||h||Je(b),w=!O&&!f;if(u){if(w){let e=le(g);Q({navigation:b,...void 0!==e?{actionData:e}:{}},{flushSync:x})}let e=await rt(s,a.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){let t=$e(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(!e.matches){let{error:e,notFoundMatches:t,route:r}=Ge(a.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}s=e.matches}let v=r||l,{dsMatches:j,revalidatingFetchers:_}=me(t,n,d,i,e.history,T,s,y,a,f?[]:o,!0===f,B,I,J,K,W,v,c,null!=e.patchRoutesOnNavigation,g);if(V=++H,!e.dataStrategy&&!j.some(e=>e.shouldLoad)&&0===_.length){let e=Te();return ee(a,{matches:s,loaderData:{},errors:g&&He(g[1])?{[g[0]]:g[1].error}:null,...Ae(g),...e?{fetchers:new Map(T.fetchers)}:{}},{flushSync:x}),{shortCircuited:!0}}if(w){let e={};if(!u){e.navigation=b;let t=le(g);void 0!==t&&(e.actionData=t)}_.length>0&&(e.fetchers=function(e){return e.forEach(e=>{let t=T.fetchers.get(e.key),a=Xe(void 0,t?t.data:void 0);T.fetchers.set(e.key,a)}),new Map(T.fetchers)}(_)),Q(e,{flushSync:x})}_.forEach(e=>{Ne(e.key),e.controller&&U.set(e.key,e.controller)});let N=()=>_.forEach(e=>Ne(e.key));D&&D.signal.addEventListener("abort",N);let{loaderResults:C,fetcherResults:S}=await xe(j,_,t,n);if(t.signal.aborted)return{shortCircuited:!0};D&&D.signal.removeEventListener("abort",N),_.forEach(e=>U.delete(e.key));let E=Be(C);if(E)return await ce(t,E.result,!0,{replace:p}),{shortCircuited:!0};if(E=Be(S),E)return W.add(E.key),await ce(t,E.result,!0,{replace:p}),{shortCircuited:!0};let{loaderData:R,errors:M}=Le(T,s,C,g,_,S);f&&T.errors&&(M={...T.errors,...M});let P=Te(),L=Pe(V);return{matches:s,loaderData:R,errors:M,...P||L||_.length>0?{fetchers:new Map(T.fetchers)}:{}}}(f,a,k,x,h.active,u,s&&s.submission,s&&s.fetcherSubmission,s&&s.replace,s&&!0===s.initialHydration,m,p);g||(D=null,ee(a,{matches:w||k,...Ae(p),loaderData:j,errors:N}))}function le(e){return e&&!He(e[1])?{[e[0]]:e[1].data}:T.actionData?0===Object.keys(T.actionData).length?null:T.actionData:void 0}async function ce(e,r,s,{submission:n,fetcherSubmission:o,preventScrollReset:d,replace:i}={}){r.response.headers.has("X-Remix-Revalidate")&&(B=!0);let l=r.response.headers.get("Location");k(l,"Expected a Location header on the redirect Response"),l=De(l,new URL(e.url),c);let u=p(T.location,l,{_isRedirect:!0});if(a){let e=!1;if(r.response.headers.has("X-Remix-Reload-Document"))e=!0;else if(oe(l)){const a=g(l,!0);e=a.origin!==t.location.origin||null==F(a.pathname,c)}if(e)return void(i?t.location.replace(l):t.location.assign(l))}D=null;let m=!0===i||r.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:h,formAction:f,formEncType:x}=T.navigation;!n&&!o&&h&&f&&x&&(n=Je(T.navigation));let b=n||o;if(te.has(r.response.status)&&b&&Ke(b.formMethod))await ne(m,u,{submission:{...b,formAction:l},preventScrollReset:d||L,enableViewTransition:s?z:void 0});else{let e=Ze(u,n);await ne(m,u,{overrideNavigation:e,fetcherSubmission:o,preventScrollReset:d||L,enableViewTransition:s?z:void 0})}}async function pe(e,t,a,r){let s,n={};try{s=await async function(e,t,a,r,s,n){a.some(e=>e._lazyPromises?.middleware)&&await Promise.all(a.map(e=>e._lazyPromises?.middleware));let o={request:t,params:a[0].params,context:s,matches:a},d=n?()=>{throw new Error("You cannot call `unstable_runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`")}:e=>{let t=o;return je(t,!1,()=>e({...t,fetcherKey:r,unstable_runClientMiddleware:()=>{throw new Error("Cannot call `unstable_runClientMiddleware()` from within an `unstable_runClientMiddleware` handler")}}),(e,t)=>({[t]:{type:"error",result:e}}))},i=await e({...o,fetcherKey:r,unstable_runClientMiddleware:d});try{await Promise.all(a.flatMap(e=>[e._lazyPromises?.handler,e._lazyPromises?.route]))}catch(e){}return i}(u,e,t,r,a,!1)}catch(e){return t.filter(e=>e.shouldLoad).forEach(t=>{n[t.route.id]={type:"error",error:e}}),n}if(e.signal.aborted)return n;for(let[a,r]of Object.entries(s))if(Ue(r)){let s=r.result;n[a]={type:"redirect",response:Re(s,e,a,t,c)}}else n[a]=await Ee(r);return n}async function xe(e,t,a,r){let s=pe(a,e,r,null),n=Promise.all(t.map(async e=>{if(e.matches&&e.match&&e.request&&e.controller){let t=(await pe(e.request,e.matches,r,e.key))[e.match.route.id];return{[e.key]:t}}return Promise.resolve({[e.key]:{type:"error",error:Fe(404,{pathname:e.path})}})}));return{loaderResults:await s,fetcherResults:(await n).reduce((e,t)=>Object.assign(e,t),{})}}function ge(){B=!0,K.forEach((e,t)=>{U.has(t)&&I.add(t),Ne(t)})}function be(e,t,a={}){T.fetchers.set(e,t),Q({fetchers:new Map(T.fetchers)},{flushSync:!0===(a&&a.flushSync)})}function ye(e,t,a,r={}){let s=$e(T.matches,t);_e(e),Q({errors:{[s.route.id]:a},fetchers:new Map(T.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function we(e){return G.set(e,(G.get(e)||0)+1),J.has(e)&&J.delete(e),T.fetchers.get(e)||re}function _e(e){let t=T.fetchers.get(e);!U.has(e)||t&&"loading"===t.state&&q.has(e)||Ne(e),K.delete(e),q.delete(e),W.delete(e),J.delete(e),I.delete(e),T.fetchers.delete(e)}function Ne(e){let t=U.get(e);t&&(t.abort(),U.delete(e))}function Ce(e){for(let t of e){let e=Qe(we(t).data);T.fetchers.set(t,e)}}function Te(){let e=[],t=!1;for(let a of W){let r=T.fetchers.get(a);k(r,`Expected fetcher: ${a}`),"loading"===r.state&&(W.delete(a),e.push(a),t=!0)}return Ce(e),t}function Pe(e){let t=[];for(let[a,r]of q)if(r<e){let e=T.fetchers.get(a);k(e,`Expected fetcher: ${a}`),"loading"===e.state&&(Ne(a),q.delete(a),t.push(a))}return Ce(t),t.length>0}function Ie(e){T.blockers.delete(e),Z.delete(e)}function qe(e,t){let a=T.blockers.get(e)||se;k("unblocked"===a.state&&"blocked"===t.state||"blocked"===a.state&&"blocked"===t.state||"blocked"===a.state&&"proceeding"===t.state||"blocked"===a.state&&"unblocked"===t.state||"proceeding"===a.state&&"unblocked"===t.state,`Invalid blocker state transition: ${a.state} -> ${t.state}`);let r=new Map(T.blockers);r.set(e,t),Q({blockers:r})}function We({currentLocation:e,nextLocation:t,historyAction:a}){if(0===Z.size)return;Z.size>1&&m(!1,"A router only supports one blocker at a time");let r=Array.from(Z.entries()),[s,n]=r[r.length-1],o=T.blockers.get(s);return o&&"proceeding"===o.state?void 0:n({currentLocation:e,nextLocation:t,historyAction:a})?s:void 0}function Ge(e){let t=Fe(404,{pathname:e}),a=r||l,{matches:s,route:n}=Oe(a);return{notFoundMatches:s,route:n,error:t}}function et(e,t){if(w){return w(e,t.map(e=>function(e,t){let{route:a,pathname:r,params:s}=e;return{id:a.id,pathname:r,params:s,data:t[a.id],handle:a.handle}}(e,T.loaderData)))||e.key}return e.key}function tt(e,t){if(y){let a=et(e,t),r=y[a];if("number"==typeof r)return r}return null}function at(t,a,r){if(e.patchRoutesOnNavigation){if(!t)return{active:!0,matches:N(a,r,c,!0)||[]};if(Object.keys(t[0].params).length>0)return{active:!0,matches:N(a,r,c,!0)}}return{active:!1,matches:null}}async function rt(t,a,s,n){if(!e.patchRoutesOnNavigation)return{type:"success",matches:t};let o=t;for(;;){let t=null==r,u=r||l,k=i;try{await e.patchRoutesOnNavigation({signal:s,path:a,matches:o,fetcherKey:n,patch:(e,t)=>{s.aborted||fe(e,t,u,k,d,!1)}})}catch(e){return{type:"error",error:e,partialMatches:o}}finally{t&&!s.aborted&&(l=[...l])}if(s.aborted)return{type:"aborted"};let m=_(u,a,c);if(m)return{type:"success",matches:m};let h=N(u,a,c,!0);if(!h||o.length===h.length&&o.every((e,t)=>e.route.id===h[t].route.id))return{type:"success",matches:null};o=h}}return n={get basename(){return c},get future(){return h},get state(){return T},get routes(){return l},get window(){return t},initialize:function(){if(f=e.history.listen(({action:t,location:a,delta:r})=>{if(M)return M(),void(M=void 0);m(0===Z.size||null!=r,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let s=We({currentLocation:T.location,nextLocation:a,historyAction:t});if(s&&null!=r){let t=new Promise(e=>{M=e});return e.history.go(-1*r),void qe(s,{state:"blocked",location:a,proceed(){qe(s,{state:"proceeding",proceed:void 0,reset:void 0,location:a}),t.then(()=>e.history.go(r))},reset(){let e=new Map(T.blockers);e.set(s,se),Q({blockers:e})}})}return ne(t,a)}),a){!function(e,t){try{let a=e.sessionStorage.getItem(ie);if(a){let e=JSON.parse(a);for(let[a,r]of Object.entries(e||{}))r&&Array.isArray(r)&&t.set(a,new Set(r||[]))}}catch(e){}}(t,A);let e=()=>function(e,t){if(t.size>0){let a={};for(let[e,r]of t)a[e]=[...r];try{e.sessionStorage.setItem(ie,JSON.stringify(a))}catch(e){m(!1,`Failed to save applied view transitions in sessionStorage (${e}).`)}}}(t,A);t.addEventListener("pagehide",e),$=()=>t.removeEventListener("pagehide",e)}return T.initialized||ne("POP",T.location,{initialHydration:!0}),n},subscribe:function(e){return x.add(e),()=>x.delete(e)},enableScrollRestoration:function(e,t,a){if(y=e,v=t,w=a||null,!C&&T.navigation===ae){C=!0;let e=tt(T.location,T.matches);null!=e&&Q({restoreScrollPosition:e})}return()=>{y=null,v=null,w=null}},navigate:async function t(a,r){if("number"==typeof a)return void e.history.go(a);let s=ue(T.location,T.matches,c,a,r?.fromRouteId,r?.relative),{path:n,submission:o,error:d}=ke(!1,s,r),i=T.location,l=p(T.location,n,r&&r.state);l={...l,...e.history.encodeLocation(l)};let u=r&&null!=r.replace?r.replace:void 0,k="PUSH";!0===u?k="REPLACE":!1===u||null!=o&&Ke(o.formMethod)&&o.formAction===T.location.pathname+T.location.search&&(k="REPLACE");let m=r&&"preventScrollReset"in r?!0===r.preventScrollReset:void 0,h=!0===(r&&r.flushSync),f=We({currentLocation:i,nextLocation:l,historyAction:k});f?qe(f,{state:"blocked",location:l,proceed(){qe(f,{state:"proceeding",proceed:void 0,reset:void 0,location:l}),t(a,r)},reset(){let e=new Map(T.blockers);e.set(f,se),Q({blockers:e})}}):await ne(k,l,{submission:o,pendingError:d,preventScrollReset:m,replace:r&&r.replace,enableViewTransition:r&&r.viewTransition,flushSync:h})},fetch:async function(t,a,s,n){Ne(t);let u=!0===(n&&n.flushSync),m=r||l,h=ue(T.location,T.matches,c,s,a,n?.relative),p=_(m,h,c),f=at(p,m,h);if(f.active&&f.matches&&(p=f.matches),!p)return void ye(t,a,Fe(404,{pathname:h}),{flushSync:u});let{path:x,submission:g,error:y}=ke(!0,h,n);if(y)return void ye(t,a,y,{flushSync:u});let w=new b(e.unstable_getContext?await e.unstable_getContext():void 0),v=!0===(n&&n.preventScrollReset);g&&Ke(g.formMethod)?await async function(t,a,s,n,u,m,h,p,f){ge(),K.delete(t);let x=T.fetchers.get(t);be(t,function(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}(f,x),{flushSync:h});let g=new AbortController,b=Me(e.history,s,g.signal,f);if(m){let e=await rt(n,new URL(b.url).pathname,b.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void ye(t,a,e.error,{flushSync:h});if(!e.matches)return void ye(t,a,Fe(404,{pathname:s}),{flushSync:h});n=e.matches}let y=Ye(n,s);if(!y.route.action&&!y.route.lazy){let e=Fe(405,{method:f.formMethod,pathname:s,routeId:a});return void ye(t,a,e,{flushSync:h})}U.set(t,g);let w=H,v=Se(d,i,b,n,y,o,u),j=(await pe(b,v,u,t))[y.route.id];if(b.signal.aborted)return void(U.get(t)===g&&U.delete(t));if(J.has(t)){if(Ve(j)||He(j))return void be(t,Qe(void 0))}else{if(Ve(j))return U.delete(t),V>w?void be(t,Qe(void 0)):(W.add(t),be(t,Xe(f)),ce(b,j,!1,{fetcherSubmission:f,preventScrollReset:p}));if(He(j))return void ye(t,a,j.error)}let N=T.navigation.location||T.location,C=Me(e.history,N,g.signal),S=r||l,E="idle"!==T.navigation.state?_(S,T.navigation.location,c):T.matches;k(E,"Didn't find any matches after fetcher action");let R=++H;q.set(t,R);let M=Xe(f,j.data);T.fetchers.set(t,M);let{dsMatches:L,revalidatingFetchers:z}=me(C,u,d,i,e.history,T,E,f,N,o,!1,B,I,J,K,W,S,c,null!=e.patchRoutesOnNavigation,[y.route.id,j]);z.filter(e=>e.key!==t).forEach(e=>{let t=e.key,a=T.fetchers.get(t),r=Xe(void 0,a?a.data:void 0);T.fetchers.set(t,r),Ne(t),e.controller&&U.set(t,e.controller)}),Q({fetchers:new Map(T.fetchers)});let A=()=>z.forEach(e=>Ne(e.key));g.signal.addEventListener("abort",A);let{loaderResults:$,fetcherResults:O}=await xe(L,z,C,u);if(g.signal.aborted)return;if(g.signal.removeEventListener("abort",A),q.delete(t),U.delete(t),z.forEach(e=>U.delete(e.key)),T.fetchers.has(t)){let e=Qe(j.data);T.fetchers.set(t,e)}let F=Be($);if(F)return ce(C,F.result,!1,{preventScrollReset:p});if(F=Be(O),F)return W.add(F.key),ce(C,F.result,!1,{preventScrollReset:p});let{loaderData:G,errors:Y}=Le(T,E,$,void 0,z,O);Pe(R),"loading"===T.navigation.state&&R>V?(k(P,"Expected pending action"),D&&D.abort(),ee(T.navigation.location,{matches:E,loaderData:G,errors:Y,fetchers:new Map(T.fetchers)})):(Q({errors:Y,loaderData:ze(T.loaderData,G,E,Y),fetchers:new Map(T.fetchers)}),B=!1)}(t,a,x,p,w,f.active,u,v,g):(K.set(t,{routeId:a,path:x}),await async function(t,a,r,s,n,l,c,u,k){let m=T.fetchers.get(t);be(t,Xe(k,m?m.data:void 0),{flushSync:c});let h=new AbortController,p=Me(e.history,r,h.signal);if(l){let e=await rt(s,new URL(p.url).pathname,p.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void ye(t,a,e.error,{flushSync:c});if(!e.matches)return void ye(t,a,Fe(404,{pathname:r}),{flushSync:c});s=e.matches}let f=Ye(s,r);U.set(t,h);let x=H,g=Se(d,i,p,s,f,o,n),b=(await pe(p,g,n,t))[f.route.id];if(U.get(t)===h&&U.delete(t),!p.signal.aborted){if(!J.has(t))return Ve(b)?V>x?void be(t,Qe(void 0)):(W.add(t),void await ce(p,b,!1,{preventScrollReset:u})):void(He(b)?ye(t,a,b.error):be(t,Qe(b.data)));be(t,Qe(void 0))}}(t,a,x,p,w,f.active,u,v,g))},revalidate:function(){X||(X=function(){let e,t,a=new Promise((r,s)=>{e=async e=>{r(e);try{await a}catch(e){}},t=async e=>{s(e);try{await a}catch(e){}}});return{promise:a,resolve:e,reject:t}}()),ge(),Q({revalidation:"loading"});let e=X.promise;return"submitting"===T.navigation.state?e:"idle"===T.navigation.state?(ne(T.historyAction,T.location,{startUninterruptedRevalidation:!0}),e):(ne(P||T.historyAction,T.navigation.location,{overrideNavigation:T.navigation,enableViewTransition:!0===z}),e)},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:we,deleteFetcher:function(e){let t=(G.get(e)||0)-1;t<=0?(G.delete(e),J.add(e)):G.set(e,t),Q({fetchers:new Map(T.fetchers)})},dispose:function(){f&&f(),$&&$(),x.clear(),D&&D.abort(),T.fetchers.forEach((e,t)=>_e(t)),T.blockers.forEach((e,t)=>Ie(t))},getBlocker:function(e,t){let a=T.blockers.get(e)||se;return Z.get(e)!==t&&Z.set(e,t),a},deleteBlocker:Ie,patchRoutes:function(e,t,a=!1){let s=null==r;fe(e,t,r||l,i,d,a),s&&(l=[...l],Q({}))},_internalFetchControllers:U,_internalSetRoutes:function(e){i={},r=j(e,d,void 0,i)},_internalSetStateDoNotUseOrYouWillBreakYourApp(e){Q(e)}},n}function ue(e,t,a,r,s,n){let o,d;if(s){o=[];for(let e of t)if(o.push(e),e.route.id===s){d=e;break}}else o=t,d=t[t.length-1];let i=H(r||".",U(o),F(e.pathname,a)||e.pathname,"path"===n);if(null==r&&(i.search=e.search,i.hash=e.hash),(null==r||""===r||"."===r)&&d){let e=Ge(i.search);if(d.route.index&&!e)i.search=i.search?i.search.replace(/^\?/,"?index&"):"?index";else if(!d.route.index&&e){let e=new URLSearchParams(i.search),t=e.getAll("index");e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let a=e.toString();i.search=a?`?${a}`:""}}return"/"!==a&&(i.pathname=function({basename:e,pathname:t}){return"/"===t?e:V([e,t])}({basename:a,pathname:i.pathname})),f(i)}function ke(e,t,a){if(!a||!function(e){return null!=e&&("formData"in e&&null!=e.formData||"body"in e&&void 0!==e.body)}(a))return{path:t};if(a.formMethod&&(r=a.formMethod,!Q.has(r.toUpperCase())))return{path:t,error:Fe(405,{method:a.formMethod})};var r;let s,n,o=()=>({path:t,error:Fe(400,{type:"invalid-body"})}),d=(a.formMethod||"get").toUpperCase(),i=Ie(t);if(void 0!==a.body){if("text/plain"===a.formEncType){if(!Ke(d))return o();let e="string"==typeof a.body?a.body:a.body instanceof FormData||a.body instanceof URLSearchParams?Array.from(a.body.entries()).reduce((e,[t,a])=>`${e}${t}=${a}\n`,""):String(a.body);return{path:t,submission:{formMethod:d,formAction:i,formEncType:a.formEncType,formData:void 0,json:void 0,text:e}}}if("application/json"===a.formEncType){if(!Ke(d))return o();try{let e="string"==typeof a.body?JSON.parse(a.body):a.body;return{path:t,submission:{formMethod:d,formAction:i,formEncType:a.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return o()}}}if(k("function"==typeof FormData,"FormData is not available in this environment"),a.formData)s=Te(a.formData),n=a.formData;else if(a.body instanceof FormData)s=Te(a.body),n=a.body;else if(a.body instanceof URLSearchParams)s=a.body,n=Pe(s);else if(null==a.body)s=new URLSearchParams,n=new FormData;else try{s=new URLSearchParams(a.body),n=Pe(s)}catch(e){return o()}let l={formMethod:d,formAction:i,formEncType:a&&a.formEncType||"application/x-www-form-urlencoded",formData:n,json:void 0,text:void 0};if(Ke(l.formMethod))return{path:t,submission:l};let c=x(t);return e&&c.search&&Ge(c.search)&&s.append("index",""),c.search=`?${s}`,{path:f(c),submission:l}}function me(e,t,a,r,s,n,o,d,i,l,c,u,k,m,h,p,f,x,g,b){let y,w=b?He(b[1])?b[1].error:b[1].data:void 0,v=s.createURL(n.location),j=s.createURL(i);if(c&&n.errors){let e=Object.keys(n.errors)[0];y=o.findIndex(t=>t.route.id===e)}else if(b&&He(b[1])){let e=b[0];y=o.findIndex(t=>t.route.id===e)-1}let N=b?b[1].statusCode:void 0,C=N&&N>=400,S={currentUrl:v,currentParams:n.matches[0]?.params||{},nextUrl:j,nextParams:o[0].params,...d,actionResult:w,actionStatus:N},E=o.map((s,o)=>{let{route:d}=s,i=null;if(null!=y&&o>y?i=!1:d.lazy?i=!0:null==d.loader?i=!1:c?i=he(d,n.loaderData,n.errors):function(e,t,a){let r=!t||a.route.id!==t.route.id,s=!e.hasOwnProperty(a.route.id);return r||s}(n.loaderData,n.matches[o],s)&&(i=!0),null!==i)return Ce(a,r,e,s,l,t,i);let k=!C&&(u||v.pathname+v.search===j.pathname+j.search||v.search!==j.search||function(e,t){let a=e.route.path;return e.pathname!==t.pathname||null!=a&&a.endsWith("*")&&e.params["*"]!==t.params["*"]}(n.matches[o],s)),m={...S,defaultShouldRevalidate:k},h=pe(s,m);return Ce(a,r,e,s,l,t,h,m)}),R=[];return h.forEach((e,d)=>{if(c||!o.some(t=>t.route.id===e.routeId)||m.has(d))return;let i=n.fetchers.get(d),h=i&&"idle"!==i.state&&void 0===i.data,b=_(f,e.path,x);if(!b){if(g&&h)return;return void R.push({key:d,routeId:e.routeId,path:e.path,matches:null,match:null,request:null,controller:null})}if(p.has(d))return;let y=Ye(b,e.path),w=new AbortController,v=Me(s,e.path,w.signal),j=null;if(k.has(d))k.delete(d),j=Se(a,r,v,b,y,l,t);else if(h)u&&(j=Se(a,r,v,b,y,l,t));else{let e={...S,defaultShouldRevalidate:!C&&u};pe(y,e)&&(j=Se(a,r,v,b,y,l,t,e))}j&&R.push({key:d,routeId:e.routeId,path:e.path,matches:j,match:y,request:v,controller:w})}),{dsMatches:E,revalidatingFetchers:R}}function he(e,t,a){if(e.lazy)return!0;if(!e.loader)return!1;let r=null!=t&&e.id in t,s=null!=a&&void 0!==a[e.id];return!(!r&&s)&&("function"==typeof e.loader&&!0===e.loader.hydrate||!r&&!s)}function pe(e,t){if(e.route.shouldRevalidate){let a=e.route.shouldRevalidate(t);if("boolean"==typeof a)return a}return t.defaultShouldRevalidate}function fe(e,t,a,r,s,n){let o;if(e){let t=r[e];k(t,`No route found to patch children into: routeId = ${e}`),t.children||(t.children=[]),o=t.children}else o=a;let d=[],i=[];if(t.forEach(e=>{let t=o.find(t=>xe(e,t));t?i.push({existingRoute:t,newRoute:e}):d.push(e)}),d.length>0){let t=j(d,s,[e||"_","patch",String(o?.length||"0")],r);o.push(...t)}if(n&&i.length>0)for(let e=0;e<i.length;e++){let{existingRoute:t,newRoute:a}=i[e],r=t,[n]=j([a],s,[],{},!0);Object.assign(r,{element:n.element?n.element:r.element,errorElement:n.errorElement?n.errorElement:r.errorElement,hydrateFallbackElement:n.hydrateFallbackElement?n.hydrateFallbackElement:r.hydrateFallbackElement})}}function xe(e,t){return"id"in e&&"id"in t&&e.id===t.id||e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive&&(!(e.children&&0!==e.children.length||t.children&&0!==t.children.length)||e.children.every((e,a)=>t.children?.some(t=>xe(e,t))))}var ge=new WeakMap,be=({key:e,route:t,manifest:a,mapRouteProperties:r})=>{let s=a[t.id];if(k(s,"No route found in manifest"),!s.lazy||"object"!=typeof s.lazy)return;let n=s.lazy[e];if(!n)return;let o=ge.get(s);o||(o={},ge.set(s,o));let d=o[e];if(d)return d;let i=(async()=>{let t=function(e){return y.has(e)}(e),a=void 0!==s[e]&&"hasErrorBoundary"!==e;if(t)m(!t,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),o[e]=Promise.resolve();else if(a)m(!1,`Route "${s.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let t=await n();null!=t&&(Object.assign(s,{[e]:t}),Object.assign(s,r(s)))}"object"==typeof s.lazy&&(s.lazy[e]=void 0,Object.values(s.lazy).every(e=>void 0===e)&&(s.lazy=void 0))})();return o[e]=i,i},ye=new WeakMap;async function we(e){let t=e.matches.filter(e=>e.shouldLoad),a={};return(await Promise.all(t.map(e=>e.resolve()))).forEach((e,r)=>{a[t[r].route.id]=e}),a}async function ve(e){return e.matches.some(e=>e.route.unstable_middleware)?je(e,!1,()=>we(e),(e,t)=>({[t]:{type:"error",result:e}})):we(e)}async function je(e,t,a,r){let{matches:s,request:n,params:o,context:d}=e,i={handlerResult:void 0};try{let e=s.flatMap(e=>e.route.unstable_middleware?e.route.unstable_middleware.map(t=>[e.route.id,t]):[]),r=await _e({request:n,params:o,context:d},e,t,i,a);return t?r:i.handlerResult}catch(e){if(!i.middlewareError)throw e;let a=await r(i.middlewareError.error,i.middlewareError.routeId);return t||!i.handlerResult?a:Object.assign(i.handlerResult,a)}}async function _e(e,t,a,r,s,n=0){let{request:o}=e;if(o.signal.aborted){if(o.signal.reason)throw o.signal.reason;throw new Error(`Request aborted without an \`AbortSignal.reason\`: ${o.method} ${o.url}`)}let d=t[n];if(!d)return r.handlerResult=await s(),r.handlerResult;let i,[l,c]=d,u=!1,k=async()=>{if(u)throw new Error("You may only call `next()` once per middleware");u=!0;let o=await _e(e,t,a,r,s,n+1);if(a)return i=o,i};try{let t=await c({request:e.request,params:e.params,context:e.context},k);return u?void 0===t?i:t:k()}catch(e){throw r.middlewareError?r.middlewareError.error!==e&&(r.middlewareError={routeId:l,error:e}):r.middlewareError={routeId:l,error:e},e}}function Ne(e,t,a,r,s){let n=be({key:"unstable_middleware",route:r.route,manifest:t,mapRouteProperties:e}),o=function(e,t,a,r,s){let n=a[e.id];if(k(n,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if("function"==typeof e.lazy){let t=ye.get(n);if(t)return{lazyRoutePromise:t,lazyHandlerPromise:t};let a=(async()=>{k("function"==typeof e.lazy,"No lazy route function found");let t=await e.lazy(),a={};for(let e in t){let r=t[e];if(void 0===r)continue;let s=v(e),o=void 0!==n[e]&&"hasErrorBoundary"!==e;s?m(!s,"Route property "+e+" is not a supported property to be returned from a lazy route function. This property will be ignored."):o?m(!o,`Route "${n.id}" has a static property "${e}" defined but its lazy function is also returning a value for this property. The lazy route property "${e}" will be ignored.`):a[e]=r}Object.assign(n,a),Object.assign(n,{...r(n),lazy:void 0})})();return ye.set(n,a),a.catch(()=>{}),{lazyRoutePromise:a,lazyHandlerPromise:a}}let o,d=Object.keys(e.lazy),i=[];for(let n of d){if(s&&s.includes(n))continue;let d=be({key:n,route:e,manifest:a,mapRouteProperties:r});d&&(i.push(d),n===t&&(o=d))}let l=i.length>0?Promise.all(i).then(()=>{}):void 0;return l?.catch(()=>{}),o?.catch(()=>{}),{lazyRoutePromise:l,lazyHandlerPromise:o}}(r.route,Ke(a.method)?"action":"loader",t,e,s);return{middleware:n,route:o.lazyRoutePromise,handler:o.lazyHandlerPromise}}function Ce(e,t,a,r,s,n,o,d=null){let i=!1,l=Ne(e,t,a,r,s);return{...r,_lazyPromises:l,shouldLoad:o,unstable_shouldRevalidateArgs:d,unstable_shouldCallHandler:e=>(i=!0,d?pe(r,"boolean"==typeof e?{...d,defaultShouldRevalidate:e}:d):o),resolve:e=>i||o||e&&!Ke(a.method)&&(r.route.lazy||r.route.loader)?async function({request:e,match:t,lazyHandlerPromise:a,lazyRoutePromise:r,handlerOverride:s,scopedContext:n}){let o,d,i=Ke(e.method),l=i?"action":"loader",c=a=>{let r,o=new Promise((e,t)=>r=t);d=()=>r(),e.signal.addEventListener("abort",d);let i=r=>"function"!=typeof a?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${l}" [routeId: ${t.route.id}]`)):a({request:e,params:t.params,context:n},...void 0!==r?[r]:[]),c=(async()=>{try{return{type:"data",result:await(s?s(e=>i(e)):i())}}catch(e){return{type:"error",result:e}}})();return Promise.race([c,o])};try{let s=i?t.route.action:t.route.loader;if(a||r)if(s){let e,[t]=await Promise.all([c(s).catch(t=>{e=t}),a,r]);if(void 0!==e)throw e;o=t}else{await a;let s=i?t.route.action:t.route.loader;if(!s){if("action"===l){let a=new URL(e.url),r=a.pathname+a.search;throw Fe(405,{method:e.method,pathname:r,routeId:t.route.id})}return{type:"data",result:void 0}}[o]=await Promise.all([c(s),r])}else{if(!s){let t=new URL(e.url);throw Fe(404,{pathname:t.pathname+t.search})}o=await c(s)}}catch(e){return{type:"error",result:e}}finally{d&&e.signal.removeEventListener("abort",d)}return o}({request:a,match:r,lazyHandlerPromise:l?.handler,lazyRoutePromise:l?.route,handlerOverride:e,scopedContext:n}):Promise.resolve({type:"data",result:void 0})}}function Se(e,t,a,r,s,n,o,d=null){return r.map(r=>r.route.id!==s.route.id?{...r,shouldLoad:!1,unstable_shouldRevalidateArgs:d,unstable_shouldCallHandler:()=>!1,_lazyPromises:Ne(e,t,a,r,n),resolve:()=>Promise.resolve({type:"data",result:void 0})}:Ce(e,t,a,r,n,o,!0,d))}async function Ee(e){let{result:t,type:a}=e;if(We(t)){let e;try{let a=t.headers.get("Content-Type");e=a&&/\bapplication\/json\b/.test(a)?null==t.body?null:await t.json():await t.text()}catch(e){return{type:"error",error:e}}return"error"===a?{type:"error",error:new G(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:"data",data:e,statusCode:t.status,headers:t.headers}}return"error"===a?qe(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:new G(t.init?.status||500,void 0,t.data),statusCode:Y(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:Y(t)?t.status:void 0}:qe(t)?{type:"data",data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function Re(e,t,a,r,s){let n=e.headers.get("Location");if(k(n,"Redirects returned/thrown from loaders/actions must have a Location header"),!oe(n)){let o=r.slice(0,r.findIndex(e=>e.route.id===a)+1);n=ue(new URL(t.url),o,s,n),e.headers.set("Location",n)}return e}function De(e,t,a){if(oe(e)){let r=e,s=r.startsWith("//")?new URL(t.protocol+r):new URL(r),n=null!=F(s.pathname,a);if(s.origin===t.origin&&n)return s.pathname+s.search+s.hash}return e}function Me(e,t,a,r){let s=e.createURL(Ie(t)).toString(),n={signal:a};if(r&&Ke(r.formMethod)){let{formMethod:e,formEncType:t}=r;n.method=e.toUpperCase(),"application/json"===t?(n.headers=new Headers({"Content-Type":t}),n.body=JSON.stringify(r.json)):"text/plain"===t?n.body=r.text:"application/x-www-form-urlencoded"===t&&r.formData?n.body=Te(r.formData):n.body=r.formData}return new Request(s,n)}function Te(e){let t=new URLSearchParams;for(let[a,r]of e.entries())t.append(a,"string"==typeof r?r:r.name);return t}function Pe(e){let t=new FormData;for(let[a,r]of e.entries())t.append(a,r);return t}function Le(e,t,a,r,s,n){let{loaderData:o,errors:d}=function(e,t,a,r=!1,s=!1){let n,o={},d=null,i=!1,l={},c=a&&He(a[1])?a[1].error:void 0;return e.forEach(a=>{if(!(a.route.id in t))return;let u=a.route.id,m=t[u];if(k(!Ve(m),"Cannot handle redirect results in processLoaderData"),He(m)){let t=m.error;if(void 0!==c&&(t=c,c=void 0),d=d||{},s)d[u]=t;else{let a=$e(e,u);null==d[a.route.id]&&(d[a.route.id]=t)}r||(o[u]=le),i||(i=!0,n=Y(m.error)?m.error.status:500),m.headers&&(l[u]=m.headers)}else o[u]=m.data,m.statusCode&&200!==m.statusCode&&!i&&(n=m.statusCode),m.headers&&(l[u]=m.headers)}),void 0!==c&&a&&(d={[a[0]]:c},a[2]&&(o[a[2]]=void 0)),{loaderData:o,errors:d,statusCode:n||200,loaderHeaders:l}}(t,a,r);return s.filter(e=>!e.matches||e.matches.some(e=>e.shouldLoad)).forEach(t=>{let{key:a,match:r,controller:s}=t,o=n[a];if(k(o,"Did not find corresponding fetcher result"),!s||!s.signal.aborted)if(He(o)){let t=$e(e.matches,r?.route.id);d&&d[t.route.id]||(d={...d,[t.route.id]:o.error}),e.fetchers.delete(a)}else if(Ve(o))k(!1,"Unhandled fetcher revalidation redirect");else{let t=Qe(o.data);e.fetchers.set(a,t)}}),{loaderData:o,errors:d}}function ze(e,t,a,r){let s=Object.entries(t).filter(([,e])=>e!==le).reduce((e,[t,a])=>(e[t]=a,e),{});for(let n of a){let a=n.route.id;if(!t.hasOwnProperty(a)&&e.hasOwnProperty(a)&&n.route.loader&&(s[a]=e[a]),r&&r.hasOwnProperty(a))break}return s}function Ae(e){return e?He(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function $e(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>!0===e.route.hasErrorBoundary)||e[0]}function Oe(e){let t=1===e.length?e[0]:e.find(e=>e.index||!e.path||"/"===e.path)||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function Fe(e,{pathname:t,routeId:a,method:r,type:s,message:n}={}){let o="Unknown Server Error",d="Unknown @remix-run/router error";return 400===e?(o="Bad Request",r&&t&&a?d=`You made a ${r} request to "${t}" but did not provide a \`loader\` for route "${a}", so there is no way to handle the request.`:"invalid-body"===s&&(d="Unable to encode submission body")):403===e?(o="Forbidden",d=`Route "${a}" does not match URL "${t}"`):404===e?(o="Not Found",d=`No route matches URL "${t}"`):405===e&&(o="Method Not Allowed",r&&t&&a?d=`You made a ${r.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${a}", so there is no way to handle the request.`:r&&(d=`Invalid request method "${r.toUpperCase()}"`)),new G(e||500,o,new Error(d),!0)}function Be(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[a,r]=t[e];if(Ve(r))return{key:a,result:r}}}function Ie(e){return f({..."string"==typeof e?x(e):e,hash:""})}function Ue(e){return We(e.result)&&ee.has(e.result.status)}function He(e){return"error"===e.type}function Ve(e){return"redirect"===(e&&e.type)}function qe(e){return"object"==typeof e&&null!=e&&"type"in e&&"data"in e&&"init"in e&&"DataWithResponseInit"===e.type}function We(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function Ke(e){return Z.has(e.toUpperCase())}function Ge(e){return new URLSearchParams(e).getAll("index").some(e=>""===e)}function Ye(e,t){let a="string"==typeof t?x(t).search:t.search;if(e[e.length-1].route.index&&Ge(a||""))return e[e.length-1];let r=I(e);return r[r.length-1]}function Je(e){let{formMethod:t,formAction:a,formEncType:r,text:s,formData:n,json:o}=e;if(t&&a&&r)return null!=s?{formMethod:t,formAction:a,formEncType:r,formData:void 0,json:void 0,text:s}:null!=n?{formMethod:t,formAction:a,formEncType:r,formData:n,json:void 0,text:void 0}:void 0!==o?{formMethod:t,formAction:a,formEncType:r,formData:void 0,json:o,text:void 0}:void 0}function Ze(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Xe(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function Qe(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}var et=o.createContext(null);et.displayName="DataRouter";var tt=o.createContext(null);tt.displayName="DataRouterState";o.createContext(!1);var at=o.createContext({isTransitioning:!1});at.displayName="ViewTransition";var rt=o.createContext(new Map);rt.displayName="Fetchers",o.createContext(null).displayName="Await";var st=o.createContext(null);st.displayName="Navigation";var nt=o.createContext(null);nt.displayName="Location";var ot=o.createContext({outlet:null,matches:[],isDataRoute:!1});ot.displayName="Route";var dt=o.createContext(null);function it(){return null!=o.useContext(nt)}function lt(){return k(it(),"useLocation() may be used only in the context of a <Router> component."),o.useContext(nt).location}dt.displayName="RouteError";var ct="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function ut(e){o.useContext(st).static||o.useLayoutEffect(e)}function kt(){let{isDataRoute:e}=o.useContext(ot);return e?function(){let{router:e}=function(e){let t=o.useContext(et);return k(t,yt(e)),t}("useNavigate"),t=vt("useNavigate"),a=o.useRef(!1);return ut(()=>{a.current=!0}),o.useCallback(async(r,s={})=>{m(a.current,ct),a.current&&("number"==typeof r?e.navigate(r):await e.navigate(r,{fromRouteId:t,...s}))},[e,t])}():function(){k(it(),"useNavigate() may be used only in the context of a <Router> component.");let e=o.useContext(et),{basename:t,navigator:a}=o.useContext(st),{matches:r}=o.useContext(ot),{pathname:s}=lt(),n=JSON.stringify(U(r)),d=o.useRef(!1);return ut(()=>{d.current=!0}),o.useCallback((r,o={})=>{if(m(d.current,ct),!d.current)return;if("number"==typeof r)return void a.go(r);let i=H(r,JSON.parse(n),s,"path"===o.relative);null==e&&"/"!==t&&(i.pathname="/"===i.pathname?t:V([t,i.pathname])),(o.replace?a.replace:a.push)(i,o.state,o)},[t,a,n,s,e])}()}var mt=o.createContext(null);function ht(e,{relative:t}={}){let{matches:a}=o.useContext(ot),{pathname:r}=lt(),s=JSON.stringify(U(a));return o.useMemo(()=>H(e,JSON.parse(s),r,"path"===t),[e,s,r,t])}function pt(e,t,a,r){k(it(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:s}=o.useContext(st),{matches:n}=o.useContext(ot),d=n[n.length-1],i=d?d.params:{},l=d?d.pathname:"/",c=d?d.pathnameBase:"/",u=d&&d.route;{let e=u&&u.path||"";Nt(l,!u||e.endsWith("*")||e.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${l}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.\n\nPlease change the parent <Route path="${e}"> to <Route path="${"/"===e?"*":`${e}/*`}">.`)}let h,p=lt();if(t){let e="string"==typeof t?x(t):t;k("/"===c||e.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),h=e}else h=p;let f=h.pathname||"/",g=f;if("/"!==c){let e=c.replace(/^\//,"").split("/");g="/"+f.replace(/^\//,"").split("/").slice(e.length).join("/")}let b=_(e,{pathname:g});m(u||null!=b,`No routes matched location "${h.pathname}${h.search}${h.hash}" `),m(null==b||void 0!==b[b.length-1].route.element||void 0!==b[b.length-1].route.Component||void 0!==b[b.length-1].route.lazy,`Matched leaf route at location "${h.pathname}${h.search}${h.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let y=function(e,t=[],a=null){if(null==e){if(!a)return null;if(a.errors)e=a.matches;else{if(0!==t.length||a.initialized||!(a.matches.length>0))return null;e=a.matches}}let r=e,s=a?.errors;if(null!=s){let e=r.findIndex(e=>e.route.id&&void 0!==s?.[e.route.id]);k(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(s).join(",")}`),r=r.slice(0,Math.min(r.length,e+1))}let n=!1,d=-1;if(a)for(let e=0;e<r.length;e++){let t=r[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(d=e),t.route.id){let{loaderData:e,errors:s}=a,o=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!s||void 0===s[t.route.id]);if(t.route.lazy||o){n=!0,r=d>=0?r.slice(0,d+1):[r[0]];break}}}return r.reduceRight((e,i,l)=>{let c,u=!1,k=null,m=null;a&&(c=s&&i.route.id?s[i.route.id]:void 0,k=i.route.errorElement||xt,n&&(d<0&&0===l?(Nt("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),u=!0,m=null):d===l&&(u=!0,m=i.route.hydrateFallbackElement||null)));let h=t.concat(r.slice(0,l+1)),p=()=>{let t;return t=c?k:u?m:i.route.Component?o.createElement(i.route.Component,null):i.route.element?i.route.element:e,o.createElement(bt,{match:i,routeContext:{outlet:e,matches:h,isDataRoute:null!=a},children:t})};return a&&(i.route.ErrorBoundary||i.route.errorElement||0===l)?o.createElement(gt,{location:a.location,revalidation:a.revalidation,component:k,error:c,children:p(),routeContext:{outlet:null,matches:h,isDataRoute:!0}}):p()},null)}(b&&b.map(e=>Object.assign({},e,{params:Object.assign({},i,e.params),pathname:V([c,s.encodeLocation?s.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?c:V([c,s.encodeLocation?s.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])})),n,a,r);return t&&y?o.createElement(nt.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...h},navigationType:"POP"}},y):y}function ft(){let e=jt(),t=Y(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),a=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",s={padding:"0.5rem",backgroundColor:r},n={padding:"2px 4px",backgroundColor:r},d=null;return console.error("Error handled by React Router default ErrorBoundary:",e),d=o.createElement(o.Fragment,null,o.createElement("p",null,"💿 Hey developer 👋"),o.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",o.createElement("code",{style:n},"ErrorBoundary")," or"," ",o.createElement("code",{style:n},"errorElement")," prop on your route.")),o.createElement(o.Fragment,null,o.createElement("h2",null,"Unexpected Application Error!"),o.createElement("h3",{style:{fontStyle:"italic"}},t),a?o.createElement("pre",{style:s},a):null,d)}var xt=o.createElement(ft,null),gt=class extends o.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return void 0!==this.state.error?o.createElement(ot.Provider,{value:this.props.routeContext},o.createElement(dt.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function bt({routeContext:e,match:t,children:a}){let r=o.useContext(et);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),o.createElement(ot.Provider,{value:e},a)}function yt(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function wt(e){let t=o.useContext(tt);return k(t,yt(e)),t}function vt(e){let t=function(e){let t=o.useContext(ot);return k(t,yt(e)),t}(e),a=t.matches[t.matches.length-1];return k(a.route.id,`${e} can only be used on routes that contain a unique "id"`),a.route.id}function jt(){let e=o.useContext(dt),t=wt("useRouteError"),a=vt("useRouteError");return void 0!==e?e:t.errors?.[a]}var _t={};function Nt(e,t,a){t||_t[e]||(_t[e]=!0,m(!1,a))}var Ct={};function St(e,t){e||Ct[t]||(Ct[t]=!0,console.warn(t))}function Et(e){let t={hasErrorBoundary:e.hasErrorBoundary||null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&(e.element&&m(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:o.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&m(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:o.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&m(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:o.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var Rt=["HydrateFallback","hydrateFallbackElement"],Dt=class{constructor(){this.status="pending",this.promise=new Promise((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}})}};function Mt({router:e,flushSync:t}){let[a,r]=o.useState(e.state),[s,n]=o.useState(),[d,i]=o.useState({isTransitioning:!1}),[l,c]=o.useState(),[u,k]=o.useState(),[m,h]=o.useState(),p=o.useRef(new Map),f=o.useCallback((a,{deletedFetchers:s,flushSync:d,viewTransitionOpts:m})=>{a.fetchers.forEach((e,t)=>{void 0!==e.data&&p.current.set(t,e.data)}),s.forEach(e=>p.current.delete(e)),St(!1===d||null!=t,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let f=null!=e.window&&null!=e.window.document&&"function"==typeof e.window.document.startViewTransition;if(St(null==m||f,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),m&&f){if(t&&d){t(()=>{u&&(l&&l.resolve(),u.skipTransition()),i({isTransitioning:!0,flushSync:!0,currentLocation:m.currentLocation,nextLocation:m.nextLocation})});let s=e.window.document.startViewTransition(()=>{t(()=>r(a))});return s.finished.finally(()=>{t(()=>{c(void 0),k(void 0),n(void 0),i({isTransitioning:!1})})}),void t(()=>k(s))}u?(l&&l.resolve(),u.skipTransition(),h({state:a,currentLocation:m.currentLocation,nextLocation:m.nextLocation})):(n(a),i({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}))}else t&&d?t(()=>r(a)):o.startTransition(()=>r(a))},[e.window,t,u,l]);o.useLayoutEffect(()=>e.subscribe(f),[e,f]),o.useEffect(()=>{d.isTransitioning&&!d.flushSync&&c(new Dt)},[d]),o.useEffect(()=>{if(l&&s&&e.window){let t=s,a=l.promise,d=e.window.document.startViewTransition(async()=>{o.startTransition(()=>r(t)),await a});d.finished.finally(()=>{c(void 0),k(void 0),n(void 0),i({isTransitioning:!1})}),k(d)}},[s,l,e.window]),o.useEffect(()=>{l&&s&&a.location.key===s.location.key&&l.resolve()},[l,u,a.location,s]),o.useEffect(()=>{!d.isTransitioning&&m&&(n(m.state),i({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),h(void 0))},[d.isTransitioning,m]);let x=o.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,a,r)=>e.navigate(t,{state:a,preventScrollReset:r?.preventScrollReset}),replace:(t,a,r)=>e.navigate(t,{replace:!0,state:a,preventScrollReset:r?.preventScrollReset})}),[e]),g=e.basename||"/",b=o.useMemo(()=>({router:e,navigator:x,static:!1,basename:g}),[e,x,g]);return o.createElement(o.Fragment,null,o.createElement(et.Provider,{value:b},o.createElement(tt.Provider,{value:a},o.createElement(rt.Provider,{value:p.current},o.createElement(at.Provider,{value:d},o.createElement(Lt,{basename:g,location:a.location,navigationType:a.historyAction,navigator:x},o.createElement(Tt,{routes:e.routes,future:e.future,state:a})))))),null)}var Tt=o.memo(function({routes:e,future:t,state:a}){return pt(e,void 0,a,t)});function Pt(e){return function(e){let t=o.useContext(ot).outlet;return t?o.createElement(mt.Provider,{value:e},t):t}(e.context)}function Lt({basename:e="/",children:t=null,location:a,navigationType:r="POP",navigator:s,static:n=!1}){k(!it(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let d=e.replace(/^\/*/,"/"),i=o.useMemo(()=>({basename:d,navigator:s,static:n,future:{}}),[d,s,n]);"string"==typeof a&&(a=x(a));let{pathname:l="/",search:c="",hash:u="",state:h=null,key:p="default"}=a,f=o.useMemo(()=>{let e=F(l,d);return null==e?null:{location:{pathname:e,search:c,hash:u,state:h,key:p},navigationType:r}},[d,l,c,u,h,p,r]);return m(null!=f,`<Router basename="${d}"> is not able to match the URL "${l}${c}${u}" because it does not start with the basename, so the <Router> won't render anything.`),null==f?null:o.createElement(st.Provider,{value:i},o.createElement(nt.Provider,{children:t,value:f}))}o.Component;var zt="get",At="application/x-www-form-urlencoded";function $t(e){return null!=e&&"string"==typeof e.tagName}var Ot=null,Ft=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Bt(e){return null==e||Ft.has(e)?e:(m(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${At}"`),null)}function It(e,t){if(!1===e||null==e)throw new Error(t)}function Ut(e){return null!=e&&(null==e.href?"preload"===e.rel&&"string"==typeof e.imageSrcSet&&"string"==typeof e.imageSizes:"string"==typeof e.rel&&"string"==typeof e.href)}function Ht(e,t,a,r,s,n){let o=(e,t)=>!a[t]||e.route.id!==a[t].route.id,d=(e,t)=>a[t].pathname!==e.pathname||a[t].route.path?.endsWith("*")&&a[t].params["*"]!==e.params["*"];return"assets"===n?t.filter((e,t)=>o(e,t)||d(e,t)):"data"===n?t.filter((t,n)=>{let i=r.routes[t.route.id];if(!i||!i.hasLoader)return!1;if(o(t,n)||d(t,n))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(s.pathname+s.search+s.hash,window.origin),currentParams:a[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if("boolean"==typeof r)return r}return!0}):[]}function Vt(e,t,{includeHydrateFallback:a}={}){return r=e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let s=[r.module];return r.clientActionModule&&(s=s.concat(r.clientActionModule)),r.clientLoaderModule&&(s=s.concat(r.clientLoaderModule)),a&&r.hydrateFallbackModule&&(s=s.concat(r.hydrateFallbackModule)),r.imports&&(s=s.concat(r.imports)),s}).flat(1),[...new Set(r)];var r}function qt(){let e=o.useContext(et);return It(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Wt(){let e=o.useContext(tt);return It(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}Object.getOwnPropertyNames(Object.prototype).sort().join("\0"),"undefined"!=typeof window?window:"undefined"!=typeof globalThis&&globalThis,Symbol("SingleFetchRedirect");var Kt=o.createContext(void 0);function Gt(){let e=o.useContext(Kt);return It(e,"You must render this element inside a <HydratedRouter> element"),e}function Yt(e,t){return a=>{e&&e(a),a.defaultPrevented||t(a)}}function Jt({page:e,...t}){let{router:a}=qt(),r=o.useMemo(()=>_(a.routes,e,a.basename),[a.routes,e,a.basename]);return r?o.createElement(Xt,{page:e,matches:r,...t}):null}function Zt(e){let{manifest:t,routeModules:a}=Gt(),[r,s]=o.useState([]);return o.useEffect(()=>{let r=!1;return async function(e,t,a){return function(e,t){let a=new Set,r=new Set(t);return e.reduce((e,s)=>{if(t&&(null==(n=s)||"string"!=typeof n.page)&&"script"===s.as&&s.href&&r.has(s.href))return e;var n;let o=JSON.stringify(function(e){let t={},a=Object.keys(e).sort();for(let r of a)t[r]=e[r];return t}(s));return a.has(o)||(a.add(o),e.push({key:o,link:s})),e},[])}((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await async function(e,t){if(e.id in t)return t[e.id];try{let a=await import(e.module);return t[e.id]=a,a}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}(r,a);return e.links?e.links():[]}return[]}))).flat(1).filter(Ut).filter(e=>"stylesheet"===e.rel||"preload"===e.rel).map(e=>"stylesheet"===e.rel?{...e,rel:"prefetch",as:"style"}:{...e,rel:"prefetch"}))}(e,t,a).then(e=>{r||s(e)}),()=>{r=!0}},[e,t,a]),r}function Xt({page:e,matches:t,...a}){let r=lt(),{manifest:s,routeModules:n}=Gt(),{basename:d}=qt(),{loaderData:i,matches:l}=Wt(),c=o.useMemo(()=>Ht(e,t,l,s,r,"data"),[e,t,l,s,r]),u=o.useMemo(()=>Ht(e,t,l,s,r,"assets"),[e,t,l,s,r]),k=o.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let a=new Set,o=!1;if(t.forEach(e=>{let t=s.routes[e.route.id];t&&t.hasLoader&&(!c.some(t=>t.route.id===e.route.id)&&e.route.id in i&&n[e.route.id]?.shouldRevalidate||t.hasClientLoader?o=!0:a.add(e.route.id))}),0===a.size)return[];let l=function(e,t,a){let r="string"==typeof e?new URL(e,"undefined"==typeof window?"server://singlefetch/":window.location.origin):e;return"/"===r.pathname?r.pathname=`_root.${a}`:t&&"/"===F(r.pathname,t)?r.pathname=`${t.replace(/\/$/,"")}/_root.${a}`:r.pathname=`${r.pathname.replace(/\/$/,"")}.${a}`,r}(e,d,"data");return o&&a.size>0&&l.searchParams.set("_routes",t.filter(e=>a.has(e.route.id)).map(e=>e.route.id).join(",")),[l.pathname+l.search]},[d,i,r,s,c,t,e,n]),m=o.useMemo(()=>Vt(u,s),[u,s]),h=Zt(u);return o.createElement(o.Fragment,null,k.map(e=>o.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...a})),m.map(e=>o.createElement("link",{key:e,rel:"modulepreload",href:e,...a})),h.map(({key:e,link:t})=>o.createElement("link",{key:e,...t})))}Kt.displayName="FrameworkContext";function Qt(...e){return t=>{e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}}o.Component;var ea="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;try{ea&&(window.__reactRouterVersion="7.7.1")}catch(Fr){}function ta(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:aa(e.errors)}),e}function aa(e){if(!e)return null;let t=Object.entries(e),a={};for(let[e,r]of t)if(r&&"RouteErrorResponse"===r.__type)a[e]=new G(r.status,r.statusText,r.data,!0===r.internal);else if(r&&"Error"===r.__type){if(r.__subType){let t=window[r.__subType];if("function"==typeof t)try{let s=new t(r.message);s.stack="",a[e]=s}catch(e){}}if(null==a[e]){let t=new Error(r.message);t.stack="",a[e]=t}}else a[e]=r;return a}var ra=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,sa=o.forwardRef(function({onClick:e,discover:t="render",prefetch:a="none",relative:r,reloadDocument:s,replace:n,state:d,target:i,to:l,preventScrollReset:c,viewTransition:u,...h},p){let x,{basename:g}=o.useContext(st),b="string"==typeof l&&ra.test(l),y=!1;if("string"==typeof l&&b&&(x=l,ea))try{let e=new URL(window.location.href),t=l.startsWith("//")?new URL(e.protocol+l):new URL(l),a=F(t.pathname,g);t.origin===e.origin&&null!=a?l=a+t.search+t.hash:y=!0}catch(e){m(!1,`<Link to="${l}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}let w=function(e,{relative:t}={}){k(it(),"useHref() may be used only in the context of a <Router> component.");let{basename:a,navigator:r}=o.useContext(st),{hash:s,pathname:n,search:d}=ht(e,{relative:t}),i=n;return"/"!==a&&(i="/"===n?a:V([a,n])),r.createHref({pathname:i,search:d,hash:s})}(l,{relative:r}),[v,j,_]=function(e,t){let a=o.useContext(Kt),[r,s]=o.useState(!1),[n,d]=o.useState(!1),{onFocus:i,onBlur:l,onMouseEnter:c,onMouseLeave:u,onTouchStart:k}=t,m=o.useRef(null);o.useEffect(()=>{if("render"===e&&d(!0),"viewport"===e){let e=new IntersectionObserver(e=>{e.forEach(e=>{d(e.isIntersecting)})},{threshold:.5});return m.current&&e.observe(m.current),()=>{e.disconnect()}}},[e]),o.useEffect(()=>{if(r){let e=setTimeout(()=>{d(!0)},100);return()=>{clearTimeout(e)}}},[r]);let h=()=>{s(!0)},p=()=>{s(!1),d(!1)};return a?"intent"!==e?[n,m,{}]:[n,m,{onFocus:Yt(i,h),onBlur:Yt(l,p),onMouseEnter:Yt(c,h),onMouseLeave:Yt(u,p),onTouchStart:Yt(k,h)}]:[!1,m,{}]}(a,h),N=function(e,{target:t,replace:a,state:r,preventScrollReset:s,relative:n,viewTransition:d}={}){let i=kt(),l=lt(),c=ht(e,{relative:n});return o.useCallback(o=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(o,t)){o.preventDefault();let t=void 0!==a?a:f(l)===f(c);i(e,{replace:t,state:r,preventScrollReset:s,relative:n,viewTransition:d})}},[l,i,c,a,r,t,e,s,n,d])}(l,{replace:n,state:d,target:i,preventScrollReset:c,relative:r,viewTransition:u}),C=o.createElement("a",{...h,..._,href:x||w,onClick:y||s?e:function(t){e&&e(t),t.defaultPrevented||N(t)},ref:Qt(p,j),target:i,"data-discover":b||"render"!==t?void 0:"true"});return v&&!b?o.createElement(o.Fragment,null,C,o.createElement(Jt,{page:w})):C});sa.displayName="Link";var na=o.forwardRef(function({"aria-current":e="page",caseSensitive:t=!1,className:a="",end:r=!1,style:s,to:n,viewTransition:d,children:i,...l},c){let u=ht(n,{relative:l.relative}),m=lt(),h=o.useContext(tt),{navigator:p,basename:f}=o.useContext(st),x=null!=h&&function(e,{relative:t}={}){let a=o.useContext(at);k(null!=a,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=oa("useViewTransitionState"),s=ht(e,{relative:t});if(!a.isTransitioning)return!1;let n=F(a.currentLocation.pathname,r)||a.currentLocation.pathname,d=F(a.nextLocation.pathname,r)||a.nextLocation.pathname;return null!=$(s.pathname,d)||null!=$(s.pathname,n)}(u)&&!0===d,g=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,b=m.pathname,y=h&&h.navigation&&h.navigation.location?h.navigation.location.pathname:null;t||(b=b.toLowerCase(),y=y?y.toLowerCase():null,g=g.toLowerCase()),y&&f&&(y=F(y,f)||y);const w="/"!==g&&g.endsWith("/")?g.length-1:g.length;let v,j=b===g||!r&&b.startsWith(g)&&"/"===b.charAt(w),_=null!=y&&(y===g||!r&&y.startsWith(g)&&"/"===y.charAt(g.length)),N={isActive:j,isPending:_,isTransitioning:x},C=j?e:void 0;v="function"==typeof a?a(N):[a,j?"active":null,_?"pending":null,x?"transitioning":null].filter(Boolean).join(" ");let S="function"==typeof s?s(N):s;return o.createElement(sa,{...l,"aria-current":C,className:v,ref:c,style:S,to:n,viewTransition:d},"function"==typeof i?i(N):i)});function oa(e){let t=o.useContext(et);return k(t,function(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}(e)),t}na.displayName="NavLink",o.forwardRef(({discover:e="render",fetcherKey:t,navigate:a,reloadDocument:r,replace:s,state:n,method:d=zt,action:i,onSubmit:l,relative:c,preventScrollReset:u,viewTransition:m,...h},p)=>{let x=function(){let{router:e}=oa("useSubmit"),{basename:t}=o.useContext(st),a=vt("useRouteId");return o.useCallback(async(r,s={})=>{let{action:n,method:o,encType:d,formData:i,body:l}=function(e,t){let a,r,s,n,o;if($t(d=e)&&"form"===d.tagName.toLowerCase()){let o=e.getAttribute("action");r=o?F(o,t):null,a=e.getAttribute("method")||zt,s=Bt(e.getAttribute("enctype"))||At,n=new FormData(e)}else if(function(e){return $t(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return $t(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let o=e.form;if(null==o)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let d=e.getAttribute("formaction")||o.getAttribute("action");if(r=d?F(d,t):null,a=e.getAttribute("formmethod")||o.getAttribute("method")||zt,s=Bt(e.getAttribute("formenctype"))||Bt(o.getAttribute("enctype"))||At,n=new FormData(o,e),!function(){if(null===Ot)try{new FormData(document.createElement("form"),0),Ot=!1}catch(e){Ot=!0}return Ot}()){let{name:t,type:a,value:r}=e;if("image"===a){let e=t?`${t}.`:"";n.append(`${e}x`,"0"),n.append(`${e}y`,"0")}else t&&n.append(t,r)}}else{if($t(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');a=zt,r=null,s=At,o=e}var d;return n&&"text/plain"===s&&(o=n,n=void 0),{action:r,method:a.toLowerCase(),encType:s,formData:n,body:o}}(r,t);if(!1===s.navigate){let t=s.fetcherKey||ia();await e.fetch(t,a,s.action||n,{preventScrollReset:s.preventScrollReset,formData:i,body:l,formMethod:s.method||o,formEncType:s.encType||d,flushSync:s.flushSync})}else await e.navigate(s.action||n,{preventScrollReset:s.preventScrollReset,formData:i,body:l,formMethod:s.method||o,formEncType:s.encType||d,replace:s.replace,state:s.state,fromRouteId:a,flushSync:s.flushSync,viewTransition:s.viewTransition})},[e,t,a])}(),g=function(e,{relative:t}={}){let{basename:a}=o.useContext(st),r=o.useContext(ot);k(r,"useFormAction must be used inside a RouteContext");let[s]=r.matches.slice(-1),n={...ht(e||".",{relative:t})},d=lt();if(null==e){n.search=d.search;let e=new URLSearchParams(n.search),t=e.getAll("index");if(t.some(e=>""===e)){e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let a=e.toString();n.search=a?`?${a}`:""}}return e&&"."!==e||!s.route.index||(n.search=n.search?n.search.replace(/^\?/,"?index&"):"?index"),"/"!==a&&(n.pathname="/"===n.pathname?a:V([a,n.pathname])),f(n)}(i,{relative:c}),b="get"===d.toLowerCase()?"get":"post",y="string"==typeof i&&ra.test(i);return o.createElement("form",{ref:p,method:b,action:g,onSubmit:r?l:e=>{if(l&&l(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,o=r?.getAttribute("formmethod")||d;x(r||e.currentTarget,{fetcherKey:t,method:o,navigate:a,replace:s,state:n,relative:c,preventScrollReset:u,viewTransition:m})},...h,"data-discover":y||"render"!==e?void 0:"true"})}).displayName="Form";var da=0,ia=()=>`__${String(++da)}__`;const la=window.ReactDOM;function ca(e){return o.createElement(Mt,{flushSync:la.flushSync,...e})}const ua=window.wp.i18n,ka=e=>{const t=(e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,a)=>a?a.toUpperCase():t.toLowerCase()))(e);return t.charAt(0).toUpperCase()+t.slice(1)},ma=(...e)=>e.filter((e,t,a)=>Boolean(e)&&""!==e.trim()&&a.indexOf(e)===t).join(" ").trim(),ha=e=>{for(const t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0};var pa={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const fa=(0,o.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:r,className:s="",children:n,iconNode:d,...i},l)=>(0,o.createElement)("svg",{ref:l,...pa,width:t,height:t,stroke:e,strokeWidth:r?24*Number(a)/Number(t):a,className:ma("lucide",s),...!n&&!ha(i)&&{"aria-hidden":"true"},...i},[...d.map(([e,t])=>(0,o.createElement)(e,t)),...Array.isArray(n)?n:[n]])),xa=(e,t)=>{const a=(0,o.forwardRef)(({className:a,...r},s)=>{return(0,o.createElement)(fa,{ref:s,iconNode:t,className:ma(`lucide-${n=ka(e),n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,a),...r});var n});return a.displayName=ka(e),a},ga=xa("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),ba=xa("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),ya=xa("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]),wa=xa("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),va=xa("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]),ja=xa("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]),_a=xa("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]),Na=xa("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),Ca=xa("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),Sa=xa("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]),Ea=e=>{const t=Ta(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{const a=e.split("-");return""===a[0]&&1!==a.length&&a.shift(),Ra(a,t)||Ma(e)},getConflictingClassGroupIds:(e,t)=>{const s=a[e]||[];return t&&r[e]?[...s,...r[e]]:s}}},Ra=(e,t)=>{if(0===e.length)return t.classGroupId;const a=e[0],r=t.nextPart.get(a),s=r?Ra(e.slice(1),r):void 0;if(s)return s;if(0===t.validators.length)return;const n=e.join("-");return t.validators.find(({validator:e})=>e(n))?.classGroupId},Da=/^\[(.+)\]$/,Ma=e=>{if(Da.test(e)){const t=Da.exec(e)[1],a=t?.substring(0,t.indexOf(":"));if(a)return"arbitrary.."+a}},Ta=e=>{const{theme:t,classGroups:a}=e,r={nextPart:new Map,validators:[]};for(const e in a)Pa(a[e],r,e,t);return r},Pa=(e,t,a,r)=>{e.forEach(e=>{if("string"!=typeof e)return"function"==typeof e?za(e)?void Pa(e(r),t,a,r):void t.validators.push({validator:e,classGroupId:a}):void Object.entries(e).forEach(([e,s])=>{Pa(s,La(t,e),a,r)});(""===e?t:La(t,e)).classGroupId=a})},La=(e,t)=>{let a=e;return t.split("-").forEach(e=>{a.nextPart.has(e)||a.nextPart.set(e,{nextPart:new Map,validators:[]}),a=a.nextPart.get(e)}),a},za=e=>e.isThemeGetter,Aa=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,a=new Map,r=new Map;const s=(s,n)=>{a.set(s,n),t++,t>e&&(t=0,r=a,a=new Map)};return{get(e){let t=a.get(e);return void 0!==t?t:void 0!==(t=r.get(e))?(s(e,t),t):void 0},set(e,t){a.has(e)?a.set(e,t):s(e,t)}}},$a=e=>{const{prefix:t,experimentalParseClassName:a}=e;let r=e=>{const t=[];let a,r=0,s=0,n=0;for(let o=0;o<e.length;o++){let d=e[o];if(0===r&&0===s){if(":"===d){t.push(e.slice(n,o)),n=o+1;continue}if("/"===d){a=o;continue}}"["===d?r++:"]"===d?r--:"("===d?s++:")"===d&&s--}const o=0===t.length?e:e.substring(n),d=Oa(o);return{modifiers:t,hasImportantModifier:d!==o,baseClassName:d,maybePostfixModifierPosition:a&&a>n?a-n:void 0}};if(t){const e=t+":",a=r;r=t=>t.startsWith(e)?a(t.substring(e.length)):{isExternal:!0,modifiers:[],hasImportantModifier:!1,baseClassName:t,maybePostfixModifierPosition:void 0}}if(a){const e=r;r=t=>a({className:t,parseClassName:e})}return r},Oa=e=>e.endsWith("!")?e.substring(0,e.length-1):e.startsWith("!")?e.substring(1):e,Fa=e=>{const t=Object.fromEntries(e.orderSensitiveModifiers.map(e=>[e,!0]));return e=>{if(e.length<=1)return e;const a=[];let r=[];return e.forEach(e=>{"["===e[0]||t[e]?(a.push(...r.sort(),e),r=[]):r.push(e)}),a.push(...r.sort()),a}},Ba=/\s+/;function Ia(){let e,t,a=0,r="";for(;a<arguments.length;)(e=arguments[a++])&&(t=Ua(e))&&(r&&(r+=" "),r+=t);return r}const Ua=e=>{if("string"==typeof e)return e;let t,a="";for(let r=0;r<e.length;r++)e[r]&&(t=Ua(e[r]))&&(a&&(a+=" "),a+=t);return a};function Ha(e,...t){let a,r,s,n=function(d){const i=t.reduce((e,t)=>t(e),e());return a=(e=>({cache:Aa(e.cacheSize),parseClassName:$a(e),sortModifiers:Fa(e),...Ea(e)}))(i),r=a.cache.get,s=a.cache.set,n=o,o(d)};function o(e){const t=r(e);if(t)return t;const n=((e,t)=>{const{parseClassName:a,getClassGroupId:r,getConflictingClassGroupIds:s,sortModifiers:n}=t,o=[],d=e.trim().split(Ba);let i="";for(let e=d.length-1;e>=0;e-=1){const t=d[e],{isExternal:l,modifiers:c,hasImportantModifier:u,baseClassName:k,maybePostfixModifierPosition:m}=a(t);if(l){i=t+(i.length>0?" "+i:i);continue}let h=!!m,p=r(h?k.substring(0,m):k);if(!p){if(!h){i=t+(i.length>0?" "+i:i);continue}if(p=r(k),!p){i=t+(i.length>0?" "+i:i);continue}h=!1}const f=n(c).join(":"),x=u?f+"!":f,g=x+p;if(o.includes(g))continue;o.push(g);const b=s(p,h);for(let e=0;e<b.length;++e){const t=b[e];o.push(x+t)}i=t+(i.length>0?" "+i:i)}return i})(e,a);return s(e,n),n}return function(){return n(Ia.apply(null,arguments))}}const Va=e=>{const t=t=>t[e]||[];return t.isThemeGetter=!0,t},qa=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Wa=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Ka=/^\d+\/\d+$/,Ga=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ya=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Ja=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Za=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Xa=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Qa=e=>Ka.test(e),er=e=>!!e&&!Number.isNaN(Number(e)),tr=e=>!!e&&Number.isInteger(Number(e)),ar=e=>e.endsWith("%")&&er(e.slice(0,-1)),rr=e=>Ga.test(e),sr=()=>!0,nr=e=>Ya.test(e)&&!Ja.test(e),or=()=>!1,dr=e=>Za.test(e),ir=e=>Xa.test(e),lr=e=>!ur(e)&&!xr(e),cr=e=>_r(e,Er,or),ur=e=>qa.test(e),kr=e=>_r(e,Rr,nr),mr=e=>_r(e,Dr,er),hr=e=>_r(e,Cr,or),pr=e=>_r(e,Sr,ir),fr=e=>_r(e,Tr,dr),xr=e=>Wa.test(e),gr=e=>Nr(e,Rr),br=e=>Nr(e,Mr),yr=e=>Nr(e,Cr),wr=e=>Nr(e,Er),vr=e=>Nr(e,Sr),jr=e=>Nr(e,Tr,!0),_r=(e,t,a)=>{const r=qa.exec(e);return!!r&&(r[1]?t(r[1]):a(r[2]))},Nr=(e,t,a=!1)=>{const r=Wa.exec(e);return!!r&&(r[1]?t(r[1]):a)},Cr=e=>"position"===e||"percentage"===e,Sr=e=>"image"===e||"url"===e,Er=e=>"length"===e||"size"===e||"bg-size"===e,Rr=e=>"length"===e,Dr=e=>"number"===e,Mr=e=>"family-name"===e,Tr=e=>"shadow"===e,Pr=Ha((Symbol.toStringTag,()=>{const e=Va("color"),t=Va("font"),a=Va("text"),r=Va("font-weight"),s=Va("tracking"),n=Va("leading"),o=Va("breakpoint"),d=Va("container"),i=Va("spacing"),l=Va("radius"),c=Va("shadow"),u=Va("inset-shadow"),k=Va("text-shadow"),m=Va("drop-shadow"),h=Va("blur"),p=Va("perspective"),f=Va("aspect"),x=Va("ease"),g=Va("animate"),b=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom",xr,ur],y=()=>[xr,ur,i],w=()=>[Qa,"full","auto",...y()],v=()=>[tr,"none","subgrid",xr,ur],j=()=>["auto",{span:["full",tr,xr,ur]},tr,xr,ur],_=()=>[tr,"auto",xr,ur],N=()=>["auto","min","max","fr",xr,ur],C=()=>["auto",...y()],S=()=>[Qa,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...y()],E=()=>[e,xr,ur],R=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom",yr,hr,{position:[xr,ur]}],D=()=>["auto","cover","contain",wr,cr,{size:[xr,ur]}],M=()=>[ar,gr,kr],T=()=>["","none","full",l,xr,ur],P=()=>["",er,gr,kr],L=()=>[er,ar,yr,hr],z=()=>["","none",h,xr,ur],A=()=>["none",er,xr,ur],$=()=>["none",er,xr,ur],O=()=>[er,xr,ur],F=()=>[Qa,"full",...y()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[rr],breakpoint:[rr],color:[sr],container:[rr],"drop-shadow":[rr],ease:["in","out","in-out"],font:[lr],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[rr],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[rr],shadow:[rr],spacing:["px",er],text:[rr],"text-shadow":[rr],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Qa,ur,xr,f]}],container:["container"],columns:[{columns:[er,ur,xr,d]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:b()}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:w()}],"inset-x":[{"inset-x":w()}],"inset-y":[{"inset-y":w()}],start:[{start:w()}],end:[{end:w()}],top:[{top:w()}],right:[{right:w()}],bottom:[{bottom:w()}],left:[{left:w()}],visibility:["visible","invisible","collapse"],z:[{z:[tr,"auto",xr,ur]}],basis:[{basis:[Qa,"full","auto",d,...y()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[er,Qa,"auto","initial","none",ur]}],grow:[{grow:["",er,xr,ur]}],shrink:[{shrink:["",er,xr,ur]}],order:[{order:[tr,"first","last","none",xr,ur]}],"grid-cols":[{"grid-cols":v()}],"col-start-end":[{col:j()}],"col-start":[{"col-start":_()}],"col-end":[{"col-end":_()}],"grid-rows":[{"grid-rows":v()}],"row-start-end":[{row:j()}],"row-start":[{"row-start":_()}],"row-end":[{"row-end":_()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":N()}],"auto-rows":[{"auto-rows":N()}],gap:[{gap:y()}],"gap-x":[{"gap-x":y()}],"gap-y":[{"gap-y":y()}],"justify-content":[{justify:["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe","normal"]}],"justify-items":[{"justify-items":["start","end","center","stretch","center-safe","end-safe","normal"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch","center-safe","end-safe"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"]}],"align-items":[{items:["start","end","center","stretch","center-safe","end-safe",{baseline:["","last"]}]}],"align-self":[{self:["auto","start","end","center","stretch","center-safe","end-safe",{baseline:["","last"]}]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"]}],"place-items":[{"place-items":["start","end","center","stretch","center-safe","end-safe","baseline"]}],"place-self":[{"place-self":["auto","start","end","center","stretch","center-safe","end-safe"]}],p:[{p:y()}],px:[{px:y()}],py:[{py:y()}],ps:[{ps:y()}],pe:[{pe:y()}],pt:[{pt:y()}],pr:[{pr:y()}],pb:[{pb:y()}],pl:[{pl:y()}],m:[{m:C()}],mx:[{mx:C()}],my:[{my:C()}],ms:[{ms:C()}],me:[{me:C()}],mt:[{mt:C()}],mr:[{mr:C()}],mb:[{mb:C()}],ml:[{ml:C()}],"space-x":[{"space-x":y()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":y()}],"space-y-reverse":["space-y-reverse"],size:[{size:S()}],w:[{w:[d,"screen",...S()]}],"min-w":[{"min-w":[d,"screen","none",...S()]}],"max-w":[{"max-w":[d,"screen","none","prose",{screen:[o]},...S()]}],h:[{h:["screen","lh",...S()]}],"min-h":[{"min-h":["screen","lh","none",...S()]}],"max-h":[{"max-h":["screen","lh",...S()]}],"font-size":[{text:["base",a,gr,kr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,xr,mr]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ar,ur]}],"font-family":[{font:[br,ur,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[s,xr,ur]}],"line-clamp":[{"line-clamp":[er,"none",xr,mr]}],leading:[{leading:[n,...y()]}],"list-image":[{"list-image":["none",xr,ur]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",xr,ur]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:E()}],"text-color":[{text:E()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","wavy"]}],"text-decoration-thickness":[{decoration:[er,"from-font","auto",xr,kr]}],"text-decoration-color":[{decoration:E()}],"underline-offset":[{"underline-offset":[er,"auto",xr,ur]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:y()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",xr,ur]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",xr,ur]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:R()}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","space","round"]}]}],"bg-size":[{bg:D()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},tr,xr,ur],radial:["",xr,ur],conic:[tr,xr,ur]},vr,pr]}],"bg-color":[{bg:E()}],"gradient-from-pos":[{from:M()}],"gradient-via-pos":[{via:M()}],"gradient-to-pos":[{to:M()}],"gradient-from":[{from:E()}],"gradient-via":[{via:E()}],"gradient-to":[{to:E()}],rounded:[{rounded:T()}],"rounded-s":[{"rounded-s":T()}],"rounded-e":[{"rounded-e":T()}],"rounded-t":[{"rounded-t":T()}],"rounded-r":[{"rounded-r":T()}],"rounded-b":[{"rounded-b":T()}],"rounded-l":[{"rounded-l":T()}],"rounded-ss":[{"rounded-ss":T()}],"rounded-se":[{"rounded-se":T()}],"rounded-ee":[{"rounded-ee":T()}],"rounded-es":[{"rounded-es":T()}],"rounded-tl":[{"rounded-tl":T()}],"rounded-tr":[{"rounded-tr":T()}],"rounded-br":[{"rounded-br":T()}],"rounded-bl":[{"rounded-bl":T()}],"border-w":[{border:P()}],"border-w-x":[{"border-x":P()}],"border-w-y":[{"border-y":P()}],"border-w-s":[{"border-s":P()}],"border-w-e":[{"border-e":P()}],"border-w-t":[{"border-t":P()}],"border-w-r":[{"border-r":P()}],"border-w-b":[{"border-b":P()}],"border-w-l":[{"border-l":P()}],"divide-x":[{"divide-x":P()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":P()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:["solid","dashed","dotted","double","hidden","none"]}],"divide-style":[{divide:["solid","dashed","dotted","double","hidden","none"]}],"border-color":[{border:E()}],"border-color-x":[{"border-x":E()}],"border-color-y":[{"border-y":E()}],"border-color-s":[{"border-s":E()}],"border-color-e":[{"border-e":E()}],"border-color-t":[{"border-t":E()}],"border-color-r":[{"border-r":E()}],"border-color-b":[{"border-b":E()}],"border-color-l":[{"border-l":E()}],"divide-color":[{divide:E()}],"outline-style":[{outline:["solid","dashed","dotted","double","none","hidden"]}],"outline-offset":[{"outline-offset":[er,xr,ur]}],"outline-w":[{outline:["",er,gr,kr]}],"outline-color":[{outline:E()}],shadow:[{shadow:["","none",c,jr,fr]}],"shadow-color":[{shadow:E()}],"inset-shadow":[{"inset-shadow":["none",u,jr,fr]}],"inset-shadow-color":[{"inset-shadow":E()}],"ring-w":[{ring:P()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:E()}],"ring-offset-w":[{"ring-offset":[er,kr]}],"ring-offset-color":[{"ring-offset":E()}],"inset-ring-w":[{"inset-ring":P()}],"inset-ring-color":[{"inset-ring":E()}],"text-shadow":[{"text-shadow":["none",k,jr,fr]}],"text-shadow-color":[{"text-shadow":E()}],opacity:[{opacity:[er,xr,ur]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[er]}],"mask-image-linear-from-pos":[{"mask-linear-from":L()}],"mask-image-linear-to-pos":[{"mask-linear-to":L()}],"mask-image-linear-from-color":[{"mask-linear-from":E()}],"mask-image-linear-to-color":[{"mask-linear-to":E()}],"mask-image-t-from-pos":[{"mask-t-from":L()}],"mask-image-t-to-pos":[{"mask-t-to":L()}],"mask-image-t-from-color":[{"mask-t-from":E()}],"mask-image-t-to-color":[{"mask-t-to":E()}],"mask-image-r-from-pos":[{"mask-r-from":L()}],"mask-image-r-to-pos":[{"mask-r-to":L()}],"mask-image-r-from-color":[{"mask-r-from":E()}],"mask-image-r-to-color":[{"mask-r-to":E()}],"mask-image-b-from-pos":[{"mask-b-from":L()}],"mask-image-b-to-pos":[{"mask-b-to":L()}],"mask-image-b-from-color":[{"mask-b-from":E()}],"mask-image-b-to-color":[{"mask-b-to":E()}],"mask-image-l-from-pos":[{"mask-l-from":L()}],"mask-image-l-to-pos":[{"mask-l-to":L()}],"mask-image-l-from-color":[{"mask-l-from":E()}],"mask-image-l-to-color":[{"mask-l-to":E()}],"mask-image-x-from-pos":[{"mask-x-from":L()}],"mask-image-x-to-pos":[{"mask-x-to":L()}],"mask-image-x-from-color":[{"mask-x-from":E()}],"mask-image-x-to-color":[{"mask-x-to":E()}],"mask-image-y-from-pos":[{"mask-y-from":L()}],"mask-image-y-to-pos":[{"mask-y-to":L()}],"mask-image-y-from-color":[{"mask-y-from":E()}],"mask-image-y-to-color":[{"mask-y-to":E()}],"mask-image-radial":[{"mask-radial":[xr,ur]}],"mask-image-radial-from-pos":[{"mask-radial-from":L()}],"mask-image-radial-to-pos":[{"mask-radial-to":L()}],"mask-image-radial-from-color":[{"mask-radial-from":E()}],"mask-image-radial-to-color":[{"mask-radial-to":E()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"]}],"mask-image-conic-pos":[{"mask-conic":[er]}],"mask-image-conic-from-pos":[{"mask-conic-from":L()}],"mask-image-conic-to-pos":[{"mask-conic-to":L()}],"mask-image-conic-from-color":[{"mask-conic-from":E()}],"mask-image-conic-to-color":[{"mask-conic-to":E()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:R()}],"mask-repeat":[{mask:["no-repeat",{repeat:["","x","y","space","round"]}]}],"mask-size":[{mask:D()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",xr,ur]}],filter:[{filter:["","none",xr,ur]}],blur:[{blur:z()}],brightness:[{brightness:[er,xr,ur]}],contrast:[{contrast:[er,xr,ur]}],"drop-shadow":[{"drop-shadow":["","none",m,jr,fr]}],"drop-shadow-color":[{"drop-shadow":E()}],grayscale:[{grayscale:["",er,xr,ur]}],"hue-rotate":[{"hue-rotate":[er,xr,ur]}],invert:[{invert:["",er,xr,ur]}],saturate:[{saturate:[er,xr,ur]}],sepia:[{sepia:["",er,xr,ur]}],"backdrop-filter":[{"backdrop-filter":["","none",xr,ur]}],"backdrop-blur":[{"backdrop-blur":z()}],"backdrop-brightness":[{"backdrop-brightness":[er,xr,ur]}],"backdrop-contrast":[{"backdrop-contrast":[er,xr,ur]}],"backdrop-grayscale":[{"backdrop-grayscale":["",er,xr,ur]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[er,xr,ur]}],"backdrop-invert":[{"backdrop-invert":["",er,xr,ur]}],"backdrop-opacity":[{"backdrop-opacity":[er,xr,ur]}],"backdrop-saturate":[{"backdrop-saturate":[er,xr,ur]}],"backdrop-sepia":[{"backdrop-sepia":["",er,xr,ur]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":y()}],"border-spacing-x":[{"border-spacing-x":y()}],"border-spacing-y":[{"border-spacing-y":y()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",xr,ur]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[er,"initial",xr,ur]}],ease:[{ease:["linear","initial",x,xr,ur]}],delay:[{delay:[er,xr,ur]}],animate:[{animate:["none",g,xr,ur]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[p,xr,ur]}],"perspective-origin":[{"perspective-origin":b()}],rotate:[{rotate:A()}],"rotate-x":[{"rotate-x":A()}],"rotate-y":[{"rotate-y":A()}],"rotate-z":[{"rotate-z":A()}],scale:[{scale:$()}],"scale-x":[{"scale-x":$()}],"scale-y":[{"scale-y":$()}],"scale-z":[{"scale-z":$()}],"scale-3d":["scale-3d"],skew:[{skew:O()}],"skew-x":[{"skew-x":O()}],"skew-y":[{"skew-y":O()}],transform:[{transform:[xr,ur,"","none","gpu","cpu"]}],"transform-origin":[{origin:b()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:F()}],"translate-x":[{"translate-x":F()}],"translate-y":[{"translate-y":F()}],"translate-z":[{"translate-z":F()}],"translate-none":["translate-none"],accent:[{accent:E()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:E()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",xr,ur]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":y()}],"scroll-mx":[{"scroll-mx":y()}],"scroll-my":[{"scroll-my":y()}],"scroll-ms":[{"scroll-ms":y()}],"scroll-me":[{"scroll-me":y()}],"scroll-mt":[{"scroll-mt":y()}],"scroll-mr":[{"scroll-mr":y()}],"scroll-mb":[{"scroll-mb":y()}],"scroll-ml":[{"scroll-ml":y()}],"scroll-p":[{"scroll-p":y()}],"scroll-px":[{"scroll-px":y()}],"scroll-py":[{"scroll-py":y()}],"scroll-ps":[{"scroll-ps":y()}],"scroll-pe":[{"scroll-pe":y()}],"scroll-pt":[{"scroll-pt":y()}],"scroll-pr":[{"scroll-pr":y()}],"scroll-pb":[{"scroll-pb":y()}],"scroll-pl":[{"scroll-pl":y()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",xr,ur]}],fill:[{fill:["none",...E()]}],"stroke-w":[{stroke:[er,gr,kr,mr]}],stroke:[{stroke:["none",...E()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}})),Lr=(...e)=>Pr(e),zr=window.ReactJSXRuntime,Ar=({className:e})=>{const a=jt(),r=a?.status||null,n=a?.message||(0,ua.__)("An unexpected error occurred. Please try again or return to the dashboard.","dokan-kits");return(0,zr.jsxs)("div",{className:Lr("dokan-kits-error-boundary dk-min-h-[500px] dk-flex dk-flex-col dk-items-center dk-justify-center dk-p-wp-8 dk-text-center dk-bg-white dk-shadow-lg dk-rounded-lg dk-max-w-5xl dk-mx-auto dk-my-wp-8 dk-border dk-border-gray-100",e),children:[(0,zr.jsx)("div",{className:"dk-flex dk-justify-center dk-items-center dk-mb-wp-6",children:(0,zr.jsx)("div",{className:"dk-relative dk-flex dk-items-center dk-justify-center dk-h-32 dk-w-32 dk-rounded-full dk-bg-gradient-to-br dk-from-red-50 dk-via-red-100 dk-to-red-50 dk-border-4 dk-border-red-200 dk-shadow-md",children:(0,s.createElement)((()=>{let e=ga;return 404===r?e=ba:403===r?e=ya:r>=500&&(e=wa),e})(),{className:"dk-w-20 dk-h-20 dk-text-red-600 dk-animate-pulse","aria-hidden":"true"})})}),(0,zr.jsx)("h1",{className:"dk-text-3xl dk-font-bold dk-text-gray-900 dk-mb-wp-3",children:r?(0,ua.__)(`Error ${r}`,"dokan-kits"):(0,ua.__)("Oops! Something went wrong","dokan-kits")}),(0,zr.jsx)("p",{className:"dk-text-lg dk-text-gray-600 dk-mb-wp-6 dk-max-w-2xl",children:404===r?(0,ua.__)("The page you were looking for does not exist or has been moved.","dokan-kits"):(0,ua.__)("We encountered an error while trying to process your request.","dokan-kits")}),(0,zr.jsx)("div",{className:"dk-max-w-2xl dk-w-full dk-text-left dk-mb-wp-8",children:(0,zr.jsx)("div",{className:"dk-p-wp-5 dk-bg-red-50 dk-rounded-lg dk-border dk-border-red-200 dk-shadow-sm",children:(0,zr.jsxs)("div",{className:"dk-flex dk-items-start",children:[(0,zr.jsx)(va,{className:"dk-h-5 dk-w-5 dk-mr-wp-3 dk-text-red-600 dk-mt-wp-1"}),(0,zr.jsxs)("div",{children:[(0,zr.jsx)("h2",{className:"dk-font-semibold dk-mb-wp-2 dk-text-red-800 dk-flex dk-items-center",children:(0,ua.__)("Error Details","dokan-kits")}),(0,zr.jsx)("p",{className:"dk-text-red-700",children:n})]})]})})}),(0,zr.jsx)("div",{className:"dk-max-w-2xl dk-w-full dk-text-left dk-mb-wp-8",children:(0,zr.jsx)("div",{className:"dk-p-wp-5 dk-bg-blue-50 dk-rounded-lg dk-border dk-border-blue-200 dk-shadow-sm",children:(0,zr.jsxs)("div",{className:"dk-flex dk-items-start",children:[(0,zr.jsx)(ja,{className:"dk-h-5 dk-w-5 dk-mr-wp-3 dk-text-blue-600 dk-mt-wp-1"}),(0,zr.jsxs)("div",{children:[(0,zr.jsx)("h2",{className:"dk-font-semibold dk-mb-wp-2 dk-text-blue-800 dk-flex dk-items-center",children:(0,ua.__)("Troubleshooting Steps","dokan-kits")}),(0,zr.jsx)("ul",{className:"dk-list-disc dk-pl-wp-5 dk-space-y-wp-1 dk-text-blue-700",children:(()=>{const e=[(0,ua.__)("Refresh the page and try again.","dokan-kits"),(0,ua.__)("Clear your browser cache and cookies.","dokan-kits"),(0,ua.__)("Try accessing the page in a private/incognito window.","dokan-kits")];return 404===r?e.push((0,ua.__)("Check if the URL is correct.","dokan-kits")):403===r?e.push((0,ua.__)("Verify you have the necessary permissions.","dokan-kits")):r>=500&&e.push((0,ua.__)("Contact your server administrator to check server logs.","dokan-kits")),e})().map((e,t)=>(0,zr.jsx)("li",{children:e},t))})]})]})})}),(0,zr.jsxs)("div",{className:"dk-flex dk-flex-wrap dk-items-center dk-justify-center dk-gap-wp-4 dk-mb-wp-8",children:[(0,zr.jsxs)(sa,{to:"/",className:"dk-admin-button dk-bg-primary-600 hover:dk-bg-primary-700 dk-text-white dk-flex dk-items-center dk-px-wp-6 dk-py-wp-3 dk-gap-wp-2 dk-rounded dk-transition dk-duration-200",children:[(0,zr.jsx)(_a,{className:"dk-h-4 dk-w-4 dk-mr-wp-1"}),(0,ua.__)("Back to Dashboard","dokan-kits")]}),(0,zr.jsxs)(t.Button,{variant:"secondary",onClick:()=>window.location.reload(),className:"dk-admin-button dk-admin-button-secondary dk-flex dk-items-center dk-gap-wp-2 dk-px-wp-6 dk-py-wp-3",children:[(0,zr.jsx)(Na,{className:"dk-h-4 dk-w-4 dk-mr-wp-1"}),(0,ua.__)("Reload Page","dokan-kits")]})]}),(0,zr.jsx)("div",{className:"dk-mt-wp-4 dk-max-w-2xl dk-w-full",children:(0,zr.jsx)("div",{className:"dk-p-wp-5 dk-bg-yellow-50 dk-rounded-lg dk-border dk-border-yellow-200 dk-shadow-sm",children:(0,zr.jsxs)("div",{className:"dk-flex dk-items-start",children:[(0,zr.jsx)("div",{className:"dk-flex-shrink-0 dk-mr-wp-4",children:(0,zr.jsx)(wa,{className:"dk-h-6 dk-w-6 dk-text-yellow-600"})}),(0,zr.jsxs)("div",{className:"dk-text-left",children:[(0,zr.jsx)("h3",{className:"dk-text-lg dk-font-semibold dk-text-yellow-800 dk-mb-wp-2",children:(0,ua.__)("Need Help?","dokan-kits")}),(0,zr.jsx)("p",{className:"dk-text-yellow-700 dk-mb-wp-3",children:(0,ua.__)("If this problem persists, please contact our support team with the error details shown above.","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-flex dk-gap-wp-4",children:[(0,zr.jsxs)("a",{href:"https://wordpress.org/support/plugin/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-warning dk-flex dk-items-center dk-gap-wp-2",children:[(0,zr.jsx)(Ca,{className:"dk-h-4 dk-w-4 dk-mr-wp-1"}),(0,ua.__)("Get Support","dokan-kits")]}),(0,zr.jsxs)("a",{href:"https://wordpress.org/plugins/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-secondary dk-flex dk-items-center dk-gap-wp-2",children:[(0,zr.jsx)(Sa,{className:"dk-h-4 dk-w-4 dk-mr-wp-1"}),(0,ua.__)("View Documentation","dokan-kits")]})]})]})]})})}),!1]})},$r=xa("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]),Or=({message:e=(0,ua.__)("Loading…","dokan-kits"),className:t})=>(0,zr.jsxs)("div",{className:Lr("dk-flex dk-flex-col dk-items-center dk-justify-center dk-p-wp-8 dk-min-h-[300px]",t),children:[(0,zr.jsx)("div",{className:"dk-inline-block dk-h-10 dk-w-10 dk-text-primary-600 dk-mb-wp-4",children:(0,zr.jsx)($r,{className:"dk-h-10 dk-w-10 dk-animate-spin"})}),(0,zr.jsx)("p",{className:"dk-text-gray-600 dk-text-center dk-animate-pulse",children:e})]});let Fr={data:""},Br=e=>"object"==typeof window?((e?e.querySelector("#_goober"):window._goober)||Object.assign((e||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:e||Fr,Ir=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,Ur=/\/\*[^]*?\*\/| +/g,Hr=/\n+/g,Vr=(e,t)=>{let a="",r="",s="";for(let n in e){let o=e[n];"@"==n[0]?"i"==n[1]?a=n+" "+o+";":r+="f"==n[1]?Vr(o,n):n+"{"+Vr(o,"k"==n[1]?"":t)+"}":"object"==typeof o?r+=Vr(o,t?t.replace(/([^,])+/g,e=>n.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):n):null!=o&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=Vr.p?Vr.p(n,o):n+":"+o+";")}return a+(t&&s?t+"{"+s+"}":s)+r},qr={},Wr=e=>{if("object"==typeof e){let t="";for(let a in e)t+=a+Wr(e[a]);return t}return e},Kr=(e,t,a,r,s)=>{let n=Wr(e),o=qr[n]||(qr[n]=(e=>{let t=0,a=11;for(;t<e.length;)a=101*a+e.charCodeAt(t++)>>>0;return"go"+a})(n));if(!qr[o]){let t=n!==e?e:(e=>{let t,a,r=[{}];for(;t=Ir.exec(e.replace(Ur,""));)t[4]?r.shift():t[3]?(a=t[3].replace(Hr," ").trim(),r.unshift(r[0][a]=r[0][a]||{})):r[0][t[1]]=t[2].replace(Hr," ").trim();return r[0]})(e);qr[o]=Vr(s?{["@keyframes "+o]:t}:t,a?"":"."+o)}let d=a&&qr.g?qr.g:null;return a&&(qr.g=qr[o]),((e,t,a,r)=>{r?t.data=t.data.replace(r,e):-1===t.data.indexOf(e)&&(t.data=a?e+t.data:t.data+e)})(qr[o],t,r,d),o};function Gr(e){let t=this||{},a=e.call?e(t.p):e;return Kr(a.unshift?a.raw?((e,t,a)=>e.reduce((e,r,s)=>{let n=t[s];if(n&&n.call){let e=n(a),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?"."+t:e&&"object"==typeof e?e.props?"":Vr(e,""):!1===e?"":e}return e+r+(null==n?"":n)},""))(a,[].slice.call(arguments,1),t.p):a.reduce((e,a)=>Object.assign(e,a&&a.call?a(t.p):a),{}):a,Br(t.target),t.g,t.o,t.k)}Gr.bind({g:1});let Yr,Jr,Zr,Xr=Gr.bind({k:1});function Qr(e,t){let a=this||{};return function(){let r=arguments;function s(n,o){let d=Object.assign({},n),i=d.className||s.className;a.p=Object.assign({theme:Jr&&Jr()},d),a.o=/ *go\d+/.test(i),d.className=Gr.apply(a,r)+(i?" "+i:""),t&&(d.ref=o);let l=e;return e[0]&&(l=d.as||e,delete d.as),Zr&&l[0]&&Zr(d),Yr(l,d)}return t?t(s):s}}var es=(e,t)=>(e=>"function"==typeof e)(e)?e(t):e,ts=(()=>{let e=0;return()=>(++e).toString()})(),as=(()=>{let e;return()=>{if(void 0===e&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),rs=(e,t)=>{switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,20)};case 1:return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case 2:let{toast:a}=t;return rs(e,{type:e.toasts.find(e=>e.id===a.id)?1:0,toast:a});case 3:let{toastId:r}=t;return{...e,toasts:e.toasts.map(e=>e.id===r||void 0===r?{...e,dismissed:!0,visible:!1}:e)};case 4:return void 0===t.toastId?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let s=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(e=>({...e,pauseDuration:e.pauseDuration+s}))}}},ss=[],ns={toasts:[],pausedAt:void 0},os=e=>{ns=rs(ns,e),ss.forEach(e=>{e(ns)})},ds={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},is=e=>(t,a)=>{let r=((e,t="blank",a)=>({createdAt:Date.now(),visible:!0,dismissed:!1,type:t,ariaProps:{role:"status","aria-live":"polite"},message:e,pauseDuration:0,...a,id:(null==a?void 0:a.id)||ts()}))(t,e,a);return os({type:2,toast:r}),r.id},ls=(e,t)=>is("blank")(e,t);ls.error=is("error"),ls.success=is("success"),ls.loading=is("loading"),ls.custom=is("custom"),ls.dismiss=e=>{os({type:3,toastId:e})},ls.remove=e=>os({type:4,toastId:e}),ls.promise=(e,t,a)=>{let r=ls.loading(t.loading,{...a,...null==a?void 0:a.loading});return"function"==typeof e&&(e=e()),e.then(e=>{let s=t.success?es(t.success,e):void 0;return s?ls.success(s,{id:r,...a,...null==a?void 0:a.success}):ls.dismiss(r),e}).catch(e=>{let s=t.error?es(t.error,e):void 0;s?ls.error(s,{id:r,...a,...null==a?void 0:a.error}):ls.dismiss(r)}),e};var cs=(e,t)=>{os({type:1,toast:{id:e,height:t}})},us=()=>{os({type:5,time:Date.now()})},ks=new Map,ms=Xr`1 (()=>{"use strict";var e={n:t=>{var a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a}),a},d:(t,a)=>{for(var r in a)e.o(a,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:a[r]})}};e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var t;e.g.importScripts&&(t=e.g.location+"");var a=e.g.document;if(!t&&a&&(a.currentScript&&"SCRIPT"===a.currentScript.tagName.toUpperCase()&&(t=a.currentScript.src),!t)){var r=a.getElementsByTagName("script");if(r.length)for(var s=r.length-1;s>-1&&(!t||!/^http(s?):/.test(t));)t=r[s--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"})();const t=window.wp.components,a=window.wp.domReady;var r=e.n(a);const s=window.wp.element,n=window.wp.hooks,o=window.React;var d,i=e=>{throw TypeError(e)},l=(e,t,a)=>(((e,t)=>{t.has(e)||i("Cannot read from private field")})(e,t),a?a.call(e):t.get(e)),c="popstate";function u(e={}){return function(e,t,a,r={}){let{window:s=document.defaultView,v5Compat:n=!1}=r,o=s.history,d="POP",i=null,l=u();function u(){return(o.state||{idx:null}).idx}function k(){d="POP";let e=u(),t=null==e?null:e-l;l=e,i&&i({action:d,location:f.location,delta:t})}function m(e){return g(e)}null==l&&(l=0,o.replaceState({...o.state,idx:l},""));let f={get action(){return d},get location(){return e(s,o)},listen(e){if(i)throw new Error("A history only accepts one active listener");return s.addEventListener(c,k),i=e,()=>{s.removeEventListener(c,k),i=null}},createHref:e=>t(s,e),createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){d="PUSH";let r=p(f.location,e,t);a&&a(r,e),l=u()+1;let c=h(r,l),k=f.createHref(r);try{o.pushState(c,"",k)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;s.location.assign(k)}n&&i&&i({action:d,location:f.location,delta:1})},replace:function(e,t){d="REPLACE";let r=p(f.location,e,t);a&&a(r,e),l=u();let s=h(r,l),c=f.createHref(r);o.replaceState(s,"",c),n&&i&&i({action:d,location:f.location,delta:0})},go:e=>o.go(e)};return f}(function(e,t){let{pathname:a="/",search:r="",hash:s=""}=x(e.location.hash.substring(1));return a.startsWith("/")||a.startsWith(".")||(a="/"+a),p("",{pathname:a,search:r,hash:s},t.state&&t.state.usr||null,t.state&&t.state.key||"default")},function(e,t){let a=e.document.querySelector("base"),r="";if(a&&a.getAttribute("href")){let t=e.location.href,a=t.indexOf("#");r=-1===a?t:t.slice(0,a)}return r+"#"+("string"==typeof t?t:f(t))},function(e,t){m("/"===e.pathname.charAt(0),`relative pathnames are not supported in hash history.push(${JSON.stringify(t)})`)},e)}function k(e,t){if(!1===e||null==e)throw new Error(t)}function m(e,t){if(!e){"undefined"!=typeof console&&console.warn(t);try{throw new Error(t)}catch(e){}}}function h(e,t){return{usr:e.state,key:e.key,idx:t}}function p(e,t,a=null,r){return{pathname:"string"==typeof e?e:e.pathname,search:"",hash:"",..."string"==typeof t?x(t):t,state:a,key:t&&t.key||r||Math.random().toString(36).substring(2,10)}}function f({pathname:e="/",search:t="",hash:a=""}){return t&&"?"!==t&&(e+="?"===t.charAt(0)?t:"?"+t),a&&"#"!==a&&(e+="#"===a.charAt(0)?a:"#"+a),e}function x(e){let t={};if(e){let a=e.indexOf("#");a>=0&&(t.hash=e.substring(a),e=e.substring(0,a));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function g(e,t=!1){let a="http://localhost";"undefined"!=typeof window&&(a="null"!==window.location.origin?window.location.origin:window.location.href),k(a,"No window.location.(origin|href) available to create URL");let r="string"==typeof e?e:f(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=a+r),new URL(r,a)}var b=class{constructor(e){var t,a,r;if(t=this,a=d,r=new Map,a.has(t)?i("Cannot add the same private member more than once"):a instanceof WeakSet?a.add(t):a.set(t,r),e)for(let[t,a]of e)this.set(t,a)}get(e){if(l(this,d).has(e))return l(this,d).get(e);if(void 0!==e.defaultValue)return e.defaultValue;throw new Error("No value found for context")}set(e,t){l(this,d).set(e,t)}};d=new WeakMap;var y=new Set(["lazy","caseSensitive","path","id","index","children"]),w=new Set(["lazy","caseSensitive","path","id","index","unstable_middleware","children"]);function v(e){return w.has(e)}function j(e,t,a=[],r={},s=!1){return e.map((e,n)=>{let o=[...a,String(n)],d="string"==typeof e.id?e.id:o.join("-");if(k(!0!==e.index||!e.children,"Cannot specify children on an index route"),k(s||!r[d],`Found a route id collision on id "${d}". Route id's must be globally unique within Data Router usages`),function(e){return!0===e.index}(e)){let a={...e,...t(e),id:d};return r[d]=a,a}{let a={...e,...t(e),id:d,children:void 0};return r[d]=a,e.children&&(a.children=j(e.children,t,o,r,s)),a}})}function _(e,t,a="/"){return N(e,t,a,!1)}function N(e,t,a,r){let s=F(("string"==typeof t?x(t):t).pathname||"/",a);if(null==s)return null;let n=C(e);!function(e){e.sort((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let a=e.length===t.length&&e.slice(0,-1).every((e,a)=>e===t[a]);return a?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)))}(n);let o=null;for(let e=0;null==o&&e<n.length;++e){let t=O(s);o=A(n[e],t,r)}return o}function C(e,t=[],a=[],r=""){let s=(e,s,n)=>{let o={relativePath:void 0===n?e.path||"":n,caseSensitive:!0===e.caseSensitive,childrenIndex:s,route:e};o.relativePath.startsWith("/")&&(k(o.relativePath.startsWith(r),`Absolute route path "${o.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),o.relativePath=o.relativePath.slice(r.length));let d=V([r,o.relativePath]),i=a.concat(o);e.children&&e.children.length>0&&(k(!0!==e.index,`Index routes must not have child routes. Please remove all child routes from route path "${d}".`),C(e.children,t,i,d)),(null!=e.path||e.index)&&t.push({path:d,score:z(d,e.index),routesMeta:i})};return e.forEach((e,t)=>{if(""!==e.path&&e.path?.includes("?"))for(let a of S(e.path))s(e,t,a);else s(e,t)}),t}function S(e){let t=e.split("/");if(0===t.length)return[];let[a,...r]=t,s=a.endsWith("?"),n=a.replace(/\?$/,"");if(0===r.length)return s?[n,""]:[n];let o=S(r.join("/")),d=[];return d.push(...o.map(e=>""===e?n:[n,e].join("/"))),s&&d.push(...o),d.map(t=>e.startsWith("/")&&""===t?"/":t)}var E=/^:[\w-]+$/,R=3,D=2,M=1,T=10,P=-2,L=e=>"*"===e;function z(e,t){let a=e.split("/"),r=a.length;return a.some(L)&&(r+=P),t&&(r+=D),a.filter(e=>!L(e)).reduce((e,t)=>e+(E.test(t)?R:""===t?M:T),r)}function A(e,t,a=!1){let{routesMeta:r}=e,s={},n="/",o=[];for(let e=0;e<r.length;++e){let d=r[e],i=e===r.length-1,l="/"===n?t:t.slice(n.length)||"/",c=$({path:d.relativePath,caseSensitive:d.caseSensitive,end:i},l),u=d.route;if(!c&&i&&a&&!r[r.length-1].route.index&&(c=$({path:d.relativePath,caseSensitive:d.caseSensitive,end:!1},l)),!c)return null;Object.assign(s,c.params),o.push({params:s,pathname:V([n,c.pathname]),pathnameBase:q(V([n,c.pathnameBase])),route:u}),"/"!==c.pathnameBase&&(n=V([n,c.pathnameBase]))}return o}function $(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[a,r]=function(e,t=!1,a=!0){m("*"===e||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let r=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,a)=>(r.push({paramName:t,isOptional:null!=a}),a?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),s+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?s+="\\/*$":""!==e&&"/"!==e&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),r]}(e.path,e.caseSensitive,e.end),s=t.match(a);if(!s)return null;let n=s[0],o=n.replace(/(.)\/+$/,"$1"),d=s.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:a},r)=>{if("*"===t){let e=d[r]||"";o=n.slice(0,n.length-e.length).replace(/(.)\/+$/,"$1")}const s=d[r];return e[t]=a&&!s?void 0:(s||"").replace(/%2F/g,"/"),e},{}),pathname:n,pathnameBase:o,pattern:e}}function O(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return m(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function F(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let a=t.endsWith("/")?t.length-1:t.length,r=e.charAt(a);return r&&"/"!==r?null:e.slice(a)||"/"}function B(e,t,a,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${a}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function I(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function U(e){let t=I(e);return t.map((e,a)=>a===t.length-1?e.pathname:e.pathnameBase)}function H(e,t,a,r=!1){let s;"string"==typeof e?s=x(e):(s={...e},k(!s.pathname||!s.pathname.includes("?"),B("?","pathname","search",s)),k(!s.pathname||!s.pathname.includes("#"),B("#","pathname","hash",s)),k(!s.search||!s.search.includes("#"),B("#","search","hash",s)));let n,o=""===e||""===s.pathname,d=o?"/":s.pathname;if(null==d)n=a;else{let e=t.length-1;if(!r&&d.startsWith("..")){let t=d.split("/");for(;".."===t[0];)t.shift(),e-=1;s.pathname=t.join("/")}n=e>=0?t[e]:"/"}let i=function(e,t="/"){let{pathname:a,search:r="",hash:s=""}="string"==typeof e?x(e):e,n=a?a.startsWith("/")?a:function(e,t){let a=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(e=>{".."===e?a.length>1&&a.pop():"."!==e&&a.push(e)}),a.length>1?a.join("/"):"/"}(a,t):t;return{pathname:n,search:W(r),hash:K(s)}}(s,n),l=d&&"/"!==d&&d.endsWith("/"),c=(o||"."===d)&&a.endsWith("/");return i.pathname.endsWith("/")||!l&&!c||(i.pathname+="/"),i}var V=e=>e.join("/").replace(/\/\/+/g,"/"),q=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),W=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",K=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"",G=class{constructor(e,t,a,r=!1){this.status=e,this.statusText=t||"",this.internal=r,a instanceof Error?(this.data=a.toString(),this.error=a):this.data=a}};function Y(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}var J=["POST","PUT","PATCH","DELETE"],Z=new Set(J),X=["GET",...J],Q=new Set(X),ee=new Set([301,302,303,307,308]),te=new Set([307,308]),ae={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},re={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},se={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ne=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,oe=e=>ne.test(e),de=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)}),ie="remix-router-transitions",le=Symbol("ResetLoaderData");function ce(e){const t=e.window?e.window:"undefined"!=typeof window?window:void 0,a=void 0!==t&&void 0!==t.document&&void 0!==t.document.createElement;k(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let r,s,n,o=e.hydrationRouteProperties||[],d=e.mapRouteProperties||de,i={},l=j(e.routes,d,void 0,i),c=e.basename||"/",u=e.dataStrategy||ve,h={unstable_middleware:!1,...e.future},f=null,x=new Set,y=null,w=null,v=null,C=null!=e.hydrationData,S=_(l,e.history.location,c),E=!1,R=null;if(null!=S||e.patchRoutesOnNavigation)if(S&&!e.hydrationData&&rt(S,l,e.history.location.pathname).active&&(S=null),S)if(S.some(e=>e.route.lazy))s=!1;else if(S.some(e=>e.route.loader)){let t=e.hydrationData?e.hydrationData.loaderData:null,a=e.hydrationData?e.hydrationData.errors:null;if(a){let e=S.findIndex(e=>void 0!==a[e.route.id]);s=S.slice(0,e+1).every(e=>!he(e.route,t,a))}else s=S.every(e=>!he(e.route,t,a))}else s=!0;else{s=!1,S=[];let t=rt(null,l,e.history.location.pathname);t.active&&t.matches&&(E=!0,S=t.matches)}else{let t=Be(404,{pathname:e.history.location.pathname}),{matches:a,route:r}=Fe(l);s=!0,S=a,R={[r.id]:t}}let D,M,T={historyAction:e.history.action,location:e.history.location,matches:S,initialized:s,navigation:ae,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||R,fetchers:new Map,blockers:new Map},P="POP",L=!1,z=!1,A=new Map,$=null,O=!1,B=!1,I=new Set,U=new Map,H=0,V=-1,q=new Map,W=new Set,K=new Map,G=new Map,J=new Set,Z=new Map,X=null;function Q(e,t={}){e.matches&&(e.matches=e.matches.map(e=>{let t=i[e.route.id],a=e.route;return a.element!==t.element||a.errorElement!==t.errorElement||a.hydrateFallbackElement!==t.hydrateFallbackElement?{...e,route:t}:e})),T={...T,...e};let a=[],r=[];T.fetchers.forEach((e,t)=>{"idle"===e.state&&(J.has(t)?a.push(t):r.push(t))}),J.forEach(e=>{T.fetchers.has(e)||U.has(e)||a.push(e)}),[...x].forEach(e=>e(T,{deletedFetchers:a,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync})),a.forEach(e=>Ne(e)),r.forEach(e=>T.fetchers.delete(e))}function ee(t,a,{flushSync:s}={}){let n,o=null!=T.actionData&&null!=T.navigation.formMethod&&Ge(T.navigation.formMethod)&&"loading"===T.navigation.state&&!0!==t.state?._isRedirect;n=a.actionData?Object.keys(a.actionData).length>0?a.actionData:null:o?T.actionData:null;let d=a.loaderData?Ae(T.loaderData,a.loaderData,a.matches||[],a.errors):T.loaderData,i=T.blockers;i.size>0&&(i=new Map(i),i.forEach((e,t)=>i.set(t,se)));let c,u=!O&&at(t,a.matches||T.matches),k=!0===L||null!=T.navigation.formMethod&&Ge(T.navigation.formMethod)&&!0!==t.state?._isRedirect;if(r&&(l=r,r=void 0),O||"POP"===P||("PUSH"===P?e.history.push(t,t.state):"REPLACE"===P&&e.history.replace(t,t.state)),"POP"===P){let e=A.get(T.location.pathname);e&&e.has(t.pathname)?c={currentLocation:T.location,nextLocation:t}:A.has(t.pathname)&&(c={currentLocation:t,nextLocation:T.location})}else if(z){let e=A.get(T.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),A.set(T.location.pathname,e)),c={currentLocation:T.location,nextLocation:t}}Q({...a,actionData:n,loaderData:d,historyAction:P,location:t,initialized:!0,navigation:ae,revalidation:"idle",restoreScrollPosition:u,preventScrollReset:k,blockers:i},{viewTransitionOpts:c,flushSync:!0===s}),P="POP",L=!1,z=!1,O=!1,B=!1,X?.resolve(),X=null}async function ne(t,a,s){D&&D.abort(),D=null,P=t,O=!0===(s&&s.startUninterruptedRevalidation),function(e,t){if(y&&v){let a=tt(e,t);y[a]=v()}}(T.location,T.matches),L=!0===(s&&s.preventScrollReset),z=!0===(s&&s.enableViewTransition);let n=r||l,u=s&&s.overrideNavigation,k=s?.initialHydration&&T.matches&&T.matches.length>0&&!E?T.matches:_(n,a,c),m=!0===(s&&s.flushSync);if(k&&T.initialized&&!B&&function(e,t){return e.pathname===t.pathname&&e.search===t.search&&(""===e.hash?""!==t.hash:e.hash===t.hash||""!==t.hash)}(T.location,a)&&!(s&&s.submission&&Ge(s.submission.formMethod)))return void ee(a,{matches:k},{flushSync:m});let h=rt(k,n,a.pathname);if(h.active&&h.matches&&(k=h.matches),!k){let{error:e,notFoundMatches:t,route:r}=Ye(a.pathname);return void ee(a,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:m})}D=new AbortController;let p,f=Te(e.history,a,D.signal,s&&s.submission),x=e.unstable_getContext?await e.unstable_getContext():new b;if(s&&s.pendingError)p=[Oe(k).route.id,{type:"error",error:s.pendingError}];else if(s&&s.submission&&Ge(s.submission.formMethod)){let t=await async function(e,t,a,r,s,n,l,u={}){ge();let k,m=function(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}(t,a);if(Q({navigation:m},{flushSync:!0===u.flushSync}),n){let a=await st(r,t.pathname,e.signal);if("aborted"===a.type)return{shortCircuited:!0};if("error"===a.type){let e=Oe(a.partialMatches).route.id;return{matches:a.partialMatches,pendingActionResult:[e,{type:"error",error:a.error}]}}if(!a.matches){let{notFoundMatches:e,error:a,route:r}=Ye(t.pathname);return{matches:e,pendingActionResult:[r.id,{type:"error",error:a}]}}r=a.matches}let h=Je(r,t);if(h.route.action||h.route.lazy){let t=Ee(d,i,e,r,h,l?[]:o,s),a=await pe(e,t,s,null);if(k=a[h.route.id],!k)for(let e of r)if(a[e.route.id]){k=a[e.route.id];break}if(e.signal.aborted)return{shortCircuited:!0}}else k={type:"error",error:Be(405,{method:e.method,pathname:t.pathname,routeId:h.route.id})};if(qe(k)){let t;return t=u&&null!=u.replace?u.replace:Me(k.response.headers.get("Location"),new URL(e.url),c)===T.location.pathname+T.location.search,await ce(e,k,!0,{submission:a,replace:t}),{shortCircuited:!0}}if(Ve(k)){let e=Oe(r,h.route.id);return!0!==(u&&u.replace)&&(P="PUSH"),{matches:r,pendingActionResult:[e.route.id,k,h.route.id]}}return{matches:r,pendingActionResult:[h.route.id,k]}}(f,a,s.submission,k,x,h.active,s&&!0===s.initialHydration,{replace:s.replace,flushSync:m});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,r]=t.pendingActionResult;if(Ve(r)&&Y(r.error)&&404===r.error.status)return D=null,void ee(a,{matches:t.matches,loaderData:{},errors:{[e]:r.error}})}k=t.matches||k,p=t.pendingActionResult,u=Xe(a,s.submission),m=!1,h.active=!1,f=Te(e.history,f.url,f.signal)}let{shortCircuited:g,matches:w,loaderData:j,errors:N}=await async function(t,a,s,n,u,k,m,h,p,f,x,g){let b=k||Xe(a,m),y=m||h||Ze(b),w=!O&&!f;if(u){if(w){let e=le(g);Q({navigation:b,...void 0!==e?{actionData:e}:{}},{flushSync:x})}let e=await st(s,a.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){let t=Oe(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(!e.matches){let{error:e,notFoundMatches:t,route:r}=Ye(a.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}s=e.matches}let v=r||l,{dsMatches:j,revalidatingFetchers:_}=me(t,n,d,i,e.history,T,s,y,a,f?[]:o,!0===f,B,I,J,K,W,v,c,null!=e.patchRoutesOnNavigation,g);if(V=++H,!e.dataStrategy&&!j.some(e=>e.shouldLoad)&&!j.some(e=>e.route.unstable_middleware)&&0===_.length){let e=Pe();return ee(a,{matches:s,loaderData:{},errors:g&&Ve(g[1])?{[g[0]]:g[1].error}:null,...$e(g),...e?{fetchers:new Map(T.fetchers)}:{}},{flushSync:x}),{shortCircuited:!0}}if(w){let e={};if(!u){e.navigation=b;let t=le(g);void 0!==t&&(e.actionData=t)}_.length>0&&(e.fetchers=function(e){return e.forEach(e=>{let t=T.fetchers.get(e.key),a=Qe(void 0,t?t.data:void 0);T.fetchers.set(e.key,a)}),new Map(T.fetchers)}(_)),Q(e,{flushSync:x})}_.forEach(e=>{Ce(e.key),e.controller&&U.set(e.key,e.controller)});let N=()=>_.forEach(e=>Ce(e.key));D&&D.signal.addEventListener("abort",N);let{loaderResults:C,fetcherResults:S}=await xe(j,_,t,n);if(t.signal.aborted)return{shortCircuited:!0};D&&D.signal.removeEventListener("abort",N),_.forEach(e=>U.delete(e.key));let E=Ie(C);if(E)return await ce(t,E.result,!0,{replace:p}),{shortCircuited:!0};if(E=Ie(S),E)return W.add(E.key),await ce(t,E.result,!0,{replace:p}),{shortCircuited:!0};let{loaderData:R,errors:M}=ze(T,s,C,g,_,S);f&&T.errors&&(M={...T.errors,...M});let P=Pe(),L=Le(V);return{matches:s,loaderData:R,errors:M,...P||L||_.length>0?{fetchers:new Map(T.fetchers)}:{}}}(f,a,k,x,h.active,u,s&&s.submission,s&&s.fetcherSubmission,s&&s.replace,s&&!0===s.initialHydration,m,p);g||(D=null,ee(a,{matches:w||k,...$e(p),loaderData:j,errors:N}))}function le(e){return e&&!Ve(e[1])?{[e[0]]:e[1].data}:T.actionData?0===Object.keys(T.actionData).length?null:T.actionData:void 0}async function ce(e,r,s,{submission:n,fetcherSubmission:o,preventScrollReset:d,replace:i}={}){r.response.headers.has("X-Remix-Revalidate")&&(B=!0);let l=r.response.headers.get("Location");k(l,"Expected a Location header on the redirect Response"),l=Me(l,new URL(e.url),c);let u=p(T.location,l,{_isRedirect:!0});if(a){let e=!1;if(r.response.headers.has("X-Remix-Reload-Document"))e=!0;else if(oe(l)){const a=g(l,!0);e=a.origin!==t.location.origin||null==F(a.pathname,c)}if(e)return void(i?t.location.replace(l):t.location.assign(l))}D=null;let m=!0===i||r.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:h,formAction:f,formEncType:x}=T.navigation;!n&&!o&&h&&f&&x&&(n=Ze(T.navigation));let b=n||o;if(te.has(r.response.status)&&b&&Ge(b.formMethod))await ne(m,u,{submission:{...b,formAction:l},preventScrollReset:d||L,enableViewTransition:s?z:void 0});else{let e=Xe(u,n);await ne(m,u,{overrideNavigation:e,fetcherSubmission:o,preventScrollReset:d||L,enableViewTransition:s?z:void 0})}}async function pe(e,t,a,r){let s,n={};try{s=await async function(e,t,a,r,s,n){a.some(e=>e._lazyPromises?.middleware)&&await Promise.all(a.map(e=>e._lazyPromises?.middleware));let o={request:t,params:a[0].params,context:s,matches:a},d=n?()=>{throw new Error("You cannot call `unstable_runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`")}:e=>{let t=o,s=!1;return _e(t,()=>(s=!0,e({...t,fetcherKey:r,unstable_runClientMiddleware:()=>{throw new Error("Cannot call `unstable_runClientMiddleware()` from within an `unstable_runClientMiddleware` handler")}})),(e,t)=>je(e,t,a,s))},i=await e({...o,fetcherKey:r,unstable_runClientMiddleware:d});try{await Promise.all(a.flatMap(e=>[e._lazyPromises?.handler,e._lazyPromises?.route]))}catch(e){}return i}(u,e,t,r,a,!1)}catch(e){return t.filter(e=>e.shouldLoad).forEach(t=>{n[t.route.id]={type:"error",error:e}}),n}if(e.signal.aborted)return n;for(let[a,r]of Object.entries(s))if(He(r)){let s=r.result;n[a]={type:"redirect",response:De(s,e,a,t,c)}}else n[a]=await Re(r);return n}async function xe(e,t,a,r){let s=pe(a,e,r,null),n=Promise.all(t.map(async e=>{if(e.matches&&e.match&&e.request&&e.controller){let t=(await pe(e.request,e.matches,r,e.key))[e.match.route.id];return{[e.key]:t}}return Promise.resolve({[e.key]:{type:"error",error:Be(404,{pathname:e.path})}})}));return{loaderResults:await s,fetcherResults:(await n).reduce((e,t)=>Object.assign(e,t),{})}}function ge(){B=!0,K.forEach((e,t)=>{U.has(t)&&I.add(t),Ce(t)})}function be(e,t,a={}){T.fetchers.set(e,t),Q({fetchers:new Map(T.fetchers)},{flushSync:!0===(a&&a.flushSync)})}function ye(e,t,a,r={}){let s=Oe(T.matches,t);Ne(e),Q({errors:{[s.route.id]:a},fetchers:new Map(T.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function we(e){return G.set(e,(G.get(e)||0)+1),J.has(e)&&J.delete(e),T.fetchers.get(e)||re}function Ne(e){let t=T.fetchers.get(e);!U.has(e)||t&&"loading"===t.state&&q.has(e)||Ce(e),K.delete(e),q.delete(e),W.delete(e),J.delete(e),I.delete(e),T.fetchers.delete(e)}function Ce(e){let t=U.get(e);t&&(t.abort(),U.delete(e))}function Se(e){for(let t of e){let e=et(we(t).data);T.fetchers.set(t,e)}}function Pe(){let e=[],t=!1;for(let a of W){let r=T.fetchers.get(a);k(r,`Expected fetcher: ${a}`),"loading"===r.state&&(W.delete(a),e.push(a),t=!0)}return Se(e),t}function Le(e){let t=[];for(let[a,r]of q)if(r<e){let e=T.fetchers.get(a);k(e,`Expected fetcher: ${a}`),"loading"===e.state&&(Ce(a),q.delete(a),t.push(a))}return Se(t),t.length>0}function Ue(e){T.blockers.delete(e),Z.delete(e)}function We(e,t){let a=T.blockers.get(e)||se;k("unblocked"===a.state&&"blocked"===t.state||"blocked"===a.state&&"blocked"===t.state||"blocked"===a.state&&"proceeding"===t.state||"blocked"===a.state&&"unblocked"===t.state||"proceeding"===a.state&&"unblocked"===t.state,`Invalid blocker state transition: ${a.state} -> ${t.state}`);let r=new Map(T.blockers);r.set(e,t),Q({blockers:r})}function Ke({currentLocation:e,nextLocation:t,historyAction:a}){if(0===Z.size)return;Z.size>1&&m(!1,"A router only supports one blocker at a time");let r=Array.from(Z.entries()),[s,n]=r[r.length-1],o=T.blockers.get(s);return o&&"proceeding"===o.state?void 0:n({currentLocation:e,nextLocation:t,historyAction:a})?s:void 0}function Ye(e){let t=Be(404,{pathname:e}),a=r||l,{matches:s,route:n}=Fe(a);return{notFoundMatches:s,route:n,error:t}}function tt(e,t){if(w){return w(e,t.map(e=>function(e,t){let{route:a,pathname:r,params:s}=e;return{id:a.id,pathname:r,params:s,data:t[a.id],loaderData:t[a.id],handle:a.handle}}(e,T.loaderData)))||e.key}return e.key}function at(e,t){if(y){let a=tt(e,t),r=y[a];if("number"==typeof r)return r}return null}function rt(t,a,r){if(e.patchRoutesOnNavigation){if(!t)return{active:!0,matches:N(a,r,c,!0)||[]};if(Object.keys(t[0].params).length>0)return{active:!0,matches:N(a,r,c,!0)}}return{active:!1,matches:null}}async function st(t,a,s,n){if(!e.patchRoutesOnNavigation)return{type:"success",matches:t};let o=t;for(;;){let t=null==r,u=r||l,k=i;try{await e.patchRoutesOnNavigation({signal:s,path:a,matches:o,fetcherKey:n,patch:(e,t)=>{s.aborted||fe(e,t,u,k,d,!1)}})}catch(e){return{type:"error",error:e,partialMatches:o}}finally{t&&!s.aborted&&(l=[...l])}if(s.aborted)return{type:"aborted"};let m=_(u,a,c);if(m)return{type:"success",matches:m};let h=N(u,a,c,!0);if(!h||o.length===h.length&&o.every((e,t)=>e.route.id===h[t].route.id))return{type:"success",matches:null};o=h}}return n={get basename(){return c},get future(){return h},get state(){return T},get routes(){return l},get window(){return t},initialize:function(){if(f=e.history.listen(({action:t,location:a,delta:r})=>{if(M)return M(),void(M=void 0);m(0===Z.size||null!=r,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let s=Ke({currentLocation:T.location,nextLocation:a,historyAction:t});if(s&&null!=r){let t=new Promise(e=>{M=e});return e.history.go(-1*r),void We(s,{state:"blocked",location:a,proceed(){We(s,{state:"proceeding",proceed:void 0,reset:void 0,location:a}),t.then(()=>e.history.go(r))},reset(){let e=new Map(T.blockers);e.set(s,se),Q({blockers:e})}})}return ne(t,a)}),a){!function(e,t){try{let a=e.sessionStorage.getItem(ie);if(a){let e=JSON.parse(a);for(let[a,r]of Object.entries(e||{}))r&&Array.isArray(r)&&t.set(a,new Set(r||[]))}}catch(e){}}(t,A);let e=()=>function(e,t){if(t.size>0){let a={};for(let[e,r]of t)a[e]=[...r];try{e.sessionStorage.setItem(ie,JSON.stringify(a))}catch(e){m(!1,`Failed to save applied view transitions in sessionStorage (${e}).`)}}}(t,A);t.addEventListener("pagehide",e),$=()=>t.removeEventListener("pagehide",e)}return T.initialized||ne("POP",T.location,{initialHydration:!0}),n},subscribe:function(e){return x.add(e),()=>x.delete(e)},enableScrollRestoration:function(e,t,a){if(y=e,v=t,w=a||null,!C&&T.navigation===ae){C=!0;let e=at(T.location,T.matches);null!=e&&Q({restoreScrollPosition:e})}return()=>{y=null,v=null,w=null}},navigate:async function t(a,r){if("number"==typeof a)return void e.history.go(a);let s=ue(T.location,T.matches,c,a,r?.fromRouteId,r?.relative),{path:n,submission:o,error:d}=ke(!1,s,r),i=T.location,l=p(T.location,n,r&&r.state);l={...l,...e.history.encodeLocation(l)};let u=r&&null!=r.replace?r.replace:void 0,k="PUSH";!0===u?k="REPLACE":!1===u||null!=o&&Ge(o.formMethod)&&o.formAction===T.location.pathname+T.location.search&&(k="REPLACE");let m=r&&"preventScrollReset"in r?!0===r.preventScrollReset:void 0,h=!0===(r&&r.flushSync),f=Ke({currentLocation:i,nextLocation:l,historyAction:k});f?We(f,{state:"blocked",location:l,proceed(){We(f,{state:"proceeding",proceed:void 0,reset:void 0,location:l}),t(a,r)},reset(){let e=new Map(T.blockers);e.set(f,se),Q({blockers:e})}}):await ne(k,l,{submission:o,pendingError:d,preventScrollReset:m,replace:r&&r.replace,enableViewTransition:r&&r.viewTransition,flushSync:h})},fetch:async function(t,a,s,n){Ce(t);let u=!0===(n&&n.flushSync),m=r||l,h=ue(T.location,T.matches,c,s,a,n?.relative),p=_(m,h,c),f=rt(p,m,h);if(f.active&&f.matches&&(p=f.matches),!p)return void ye(t,a,Be(404,{pathname:h}),{flushSync:u});let{path:x,submission:g,error:y}=ke(!0,h,n);if(y)return void ye(t,a,y,{flushSync:u});let w=e.unstable_getContext?await e.unstable_getContext():new b,v=!0===(n&&n.preventScrollReset);g&&Ge(g.formMethod)?await async function(t,a,s,n,u,m,h,p,f){ge(),K.delete(t);let x=T.fetchers.get(t);be(t,function(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}(f,x),{flushSync:h});let g=new AbortController,b=Te(e.history,s,g.signal,f);if(m){let e=await st(n,new URL(b.url).pathname,b.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void ye(t,a,e.error,{flushSync:h});if(!e.matches)return void ye(t,a,Be(404,{pathname:s}),{flushSync:h});n=e.matches}let y=Je(n,s);if(!y.route.action&&!y.route.lazy){let e=Be(405,{method:f.formMethod,pathname:s,routeId:a});return void ye(t,a,e,{flushSync:h})}U.set(t,g);let w=H,v=Ee(d,i,b,n,y,o,u),j=(await pe(b,v,u,t))[y.route.id];if(b.signal.aborted)return void(U.get(t)===g&&U.delete(t));if(J.has(t)){if(qe(j)||Ve(j))return void be(t,et(void 0))}else{if(qe(j))return U.delete(t),V>w?void be(t,et(void 0)):(W.add(t),be(t,Qe(f)),ce(b,j,!1,{fetcherSubmission:f,preventScrollReset:p}));if(Ve(j))return void ye(t,a,j.error)}let N=T.navigation.location||T.location,C=Te(e.history,N,g.signal),S=r||l,E="idle"!==T.navigation.state?_(S,T.navigation.location,c):T.matches;k(E,"Didn't find any matches after fetcher action");let R=++H;q.set(t,R);let M=Qe(f,j.data);T.fetchers.set(t,M);let{dsMatches:L,revalidatingFetchers:z}=me(C,u,d,i,e.history,T,E,f,N,o,!1,B,I,J,K,W,S,c,null!=e.patchRoutesOnNavigation,[y.route.id,j]);z.filter(e=>e.key!==t).forEach(e=>{let t=e.key,a=T.fetchers.get(t),r=Qe(void 0,a?a.data:void 0);T.fetchers.set(t,r),Ce(t),e.controller&&U.set(t,e.controller)}),Q({fetchers:new Map(T.fetchers)});let A=()=>z.forEach(e=>Ce(e.key));g.signal.addEventListener("abort",A);let{loaderResults:$,fetcherResults:O}=await xe(L,z,C,u);if(g.signal.aborted)return;if(g.signal.removeEventListener("abort",A),q.delete(t),U.delete(t),z.forEach(e=>U.delete(e.key)),T.fetchers.has(t)){let e=et(j.data);T.fetchers.set(t,e)}let F=Ie($);if(F)return ce(C,F.result,!1,{preventScrollReset:p});if(F=Ie(O),F)return W.add(F.key),ce(C,F.result,!1,{preventScrollReset:p});let{loaderData:G,errors:Y}=ze(T,E,$,void 0,z,O);Le(R),"loading"===T.navigation.state&&R>V?(k(P,"Expected pending action"),D&&D.abort(),ee(T.navigation.location,{matches:E,loaderData:G,errors:Y,fetchers:new Map(T.fetchers)})):(Q({errors:Y,loaderData:Ae(T.loaderData,G,E,Y),fetchers:new Map(T.fetchers)}),B=!1)}(t,a,x,p,w,f.active,u,v,g):(K.set(t,{routeId:a,path:x}),await async function(t,a,r,s,n,l,c,u,k){let m=T.fetchers.get(t);be(t,Qe(k,m?m.data:void 0),{flushSync:c});let h=new AbortController,p=Te(e.history,r,h.signal);if(l){let e=await st(s,new URL(p.url).pathname,p.signal,t);if("aborted"===e.type)return;if("error"===e.type)return void ye(t,a,e.error,{flushSync:c});if(!e.matches)return void ye(t,a,Be(404,{pathname:r}),{flushSync:c});s=e.matches}let f=Je(s,r);U.set(t,h);let x=H,g=Ee(d,i,p,s,f,o,n),b=(await pe(p,g,n,t))[f.route.id];if(U.get(t)===h&&U.delete(t),!p.signal.aborted){if(!J.has(t))return qe(b)?V>x?void be(t,et(void 0)):(W.add(t),void await ce(p,b,!1,{preventScrollReset:u})):void(Ve(b)?ye(t,a,b.error):be(t,et(b.data)));be(t,et(void 0))}}(t,a,x,p,w,f.active,u,v,g))},revalidate:function(){X||(X=function(){let e,t,a=new Promise((r,s)=>{e=async e=>{r(e);try{await a}catch(e){}},t=async e=>{s(e);try{await a}catch(e){}}});return{promise:a,resolve:e,reject:t}}()),ge(),Q({revalidation:"loading"});let e=X.promise;return"submitting"===T.navigation.state?e:"idle"===T.navigation.state?(ne(T.historyAction,T.location,{startUninterruptedRevalidation:!0}),e):(ne(P||T.historyAction,T.navigation.location,{overrideNavigation:T.navigation,enableViewTransition:!0===z}),e)},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:we,deleteFetcher:function(e){let t=(G.get(e)||0)-1;t<=0?(G.delete(e),J.add(e)):G.set(e,t),Q({fetchers:new Map(T.fetchers)})},dispose:function(){f&&f(),$&&$(),x.clear(),D&&D.abort(),T.fetchers.forEach((e,t)=>Ne(t)),T.blockers.forEach((e,t)=>Ue(t))},getBlocker:function(e,t){let a=T.blockers.get(e)||se;return Z.get(e)!==t&&Z.set(e,t),a},deleteBlocker:Ue,patchRoutes:function(e,t,a=!1){let s=null==r;fe(e,t,r||l,i,d,a),s&&(l=[...l],Q({}))},_internalFetchControllers:U,_internalSetRoutes:function(e){i={},r=j(e,d,void 0,i)},_internalSetStateDoNotUseOrYouWillBreakYourApp(e){Q(e)}},n}function ue(e,t,a,r,s,n){let o,d;if(s){o=[];for(let e of t)if(o.push(e),e.route.id===s){d=e;break}}else o=t,d=t[t.length-1];let i=H(r||".",U(o),F(e.pathname,a)||e.pathname,"path"===n);if(null==r&&(i.search=e.search,i.hash=e.hash),(null==r||""===r||"."===r)&&d){let e=Ye(i.search);if(d.route.index&&!e)i.search=i.search?i.search.replace(/^\?/,"?index&"):"?index";else if(!d.route.index&&e){let e=new URLSearchParams(i.search),t=e.getAll("index");e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let a=e.toString();i.search=a?`?${a}`:""}}return"/"!==a&&(i.pathname=function({basename:e,pathname:t}){return"/"===t?e:V([e,t])}({basename:a,pathname:i.pathname})),f(i)}function ke(e,t,a){if(!a||!function(e){return null!=e&&("formData"in e&&null!=e.formData||"body"in e&&void 0!==e.body)}(a))return{path:t};if(a.formMethod&&(r=a.formMethod,!Q.has(r.toUpperCase())))return{path:t,error:Be(405,{method:a.formMethod})};var r;let s,n,o=()=>({path:t,error:Be(400,{type:"invalid-body"})}),d=(a.formMethod||"get").toUpperCase(),i=Ue(t);if(void 0!==a.body){if("text/plain"===a.formEncType){if(!Ge(d))return o();let e="string"==typeof a.body?a.body:a.body instanceof FormData||a.body instanceof URLSearchParams?Array.from(a.body.entries()).reduce((e,[t,a])=>`${e}${t}=${a}\n`,""):String(a.body);return{path:t,submission:{formMethod:d,formAction:i,formEncType:a.formEncType,formData:void 0,json:void 0,text:e}}}if("application/json"===a.formEncType){if(!Ge(d))return o();try{let e="string"==typeof a.body?JSON.parse(a.body):a.body;return{path:t,submission:{formMethod:d,formAction:i,formEncType:a.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return o()}}}if(k("function"==typeof FormData,"FormData is not available in this environment"),a.formData)s=Pe(a.formData),n=a.formData;else if(a.body instanceof FormData)s=Pe(a.body),n=a.body;else if(a.body instanceof URLSearchParams)s=a.body,n=Le(s);else if(null==a.body)s=new URLSearchParams,n=new FormData;else try{s=new URLSearchParams(a.body),n=Le(s)}catch(e){return o()}let l={formMethod:d,formAction:i,formEncType:a&&a.formEncType||"application/x-www-form-urlencoded",formData:n,json:void 0,text:void 0};if(Ge(l.formMethod))return{path:t,submission:l};let c=x(t);return e&&c.search&&Ye(c.search)&&s.append("index",""),c.search=`?${s}`,{path:f(c),submission:l}}function me(e,t,a,r,s,n,o,d,i,l,c,u,k,m,h,p,f,x,g,b){let y,w=b?Ve(b[1])?b[1].error:b[1].data:void 0,v=s.createURL(n.location),j=s.createURL(i);if(c&&n.errors){let e=Object.keys(n.errors)[0];y=o.findIndex(t=>t.route.id===e)}else if(b&&Ve(b[1])){let e=b[0];y=o.findIndex(t=>t.route.id===e)-1}let N=b?b[1].statusCode:void 0,C=N&&N>=400,S={currentUrl:v,currentParams:n.matches[0]?.params||{},nextUrl:j,nextParams:o[0].params,...d,actionResult:w,actionStatus:N},E=o.map((s,o)=>{let{route:d}=s,i=null;if(null!=y&&o>y?i=!1:d.lazy?i=!0:null==d.loader?i=!1:c?i=he(d,n.loaderData,n.errors):function(e,t,a){let r=!t||a.route.id!==t.route.id,s=!e.hasOwnProperty(a.route.id);return r||s}(n.loaderData,n.matches[o],s)&&(i=!0),null!==i)return Se(a,r,e,s,l,t,i);let k=!C&&(u||v.pathname+v.search===j.pathname+j.search||v.search!==j.search||function(e,t){let a=e.route.path;return e.pathname!==t.pathname||null!=a&&a.endsWith("*")&&e.params["*"]!==t.params["*"]}(n.matches[o],s)),m={...S,defaultShouldRevalidate:k},h=pe(s,m);return Se(a,r,e,s,l,t,h,m)}),R=[];return h.forEach((e,d)=>{if(c||!o.some(t=>t.route.id===e.routeId)||m.has(d))return;let i=n.fetchers.get(d),h=i&&"idle"!==i.state&&void 0===i.data,b=_(f,e.path,x);if(!b){if(g&&h)return;return void R.push({key:d,routeId:e.routeId,path:e.path,matches:null,match:null,request:null,controller:null})}if(p.has(d))return;let y=Je(b,e.path),w=new AbortController,v=Te(s,e.path,w.signal),j=null;if(k.has(d))k.delete(d),j=Ee(a,r,v,b,y,l,t);else if(h)u&&(j=Ee(a,r,v,b,y,l,t));else{let e={...S,defaultShouldRevalidate:!C&&u};pe(y,e)&&(j=Ee(a,r,v,b,y,l,t,e))}j&&R.push({key:d,routeId:e.routeId,path:e.path,matches:j,match:y,request:v,controller:w})}),{dsMatches:E,revalidatingFetchers:R}}function he(e,t,a){if(e.lazy)return!0;if(!e.loader)return!1;let r=null!=t&&e.id in t,s=null!=a&&void 0!==a[e.id];return!(!r&&s)&&("function"==typeof e.loader&&!0===e.loader.hydrate||!r&&!s)}function pe(e,t){if(e.route.shouldRevalidate){let a=e.route.shouldRevalidate(t);if("boolean"==typeof a)return a}return t.defaultShouldRevalidate}function fe(e,t,a,r,s,n){let o;if(e){let t=r[e];k(t,`No route found to patch children into: routeId = ${e}`),t.children||(t.children=[]),o=t.children}else o=a;let d=[],i=[];if(t.forEach(e=>{let t=o.find(t=>xe(e,t));t?i.push({existingRoute:t,newRoute:e}):d.push(e)}),d.length>0){let t=j(d,s,[e||"_","patch",String(o?.length||"0")],r);o.push(...t)}if(n&&i.length>0)for(let e=0;e<i.length;e++){let{existingRoute:t,newRoute:a}=i[e],r=t,[n]=j([a],s,[],{},!0);Object.assign(r,{element:n.element?n.element:r.element,errorElement:n.errorElement?n.errorElement:r.errorElement,hydrateFallbackElement:n.hydrateFallbackElement?n.hydrateFallbackElement:r.hydrateFallbackElement})}}function xe(e,t){return"id"in e&&"id"in t&&e.id===t.id||e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive&&(!(e.children&&0!==e.children.length||t.children&&0!==t.children.length)||e.children.every((e,a)=>t.children?.some(t=>xe(e,t))))}var ge=new WeakMap,be=({key:e,route:t,manifest:a,mapRouteProperties:r})=>{let s=a[t.id];if(k(s,"No route found in manifest"),!s.lazy||"object"!=typeof s.lazy)return;let n=s.lazy[e];if(!n)return;let o=ge.get(s);o||(o={},ge.set(s,o));let d=o[e];if(d)return d;let i=(async()=>{let t=function(e){return y.has(e)}(e),a=void 0!==s[e]&&"hasErrorBoundary"!==e;if(t)m(!t,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),o[e]=Promise.resolve();else if(a)m(!1,`Route "${s.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let t=await n();null!=t&&(Object.assign(s,{[e]:t}),Object.assign(s,r(s)))}"object"==typeof s.lazy&&(s.lazy[e]=void 0,Object.values(s.lazy).every(e=>void 0===e)&&(s.lazy=void 0))})();return o[e]=i,i},ye=new WeakMap;async function we(e){let t=e.matches.filter(e=>e.shouldLoad),a={};return(await Promise.all(t.map(e=>e.resolve()))).forEach((e,r)=>{a[t[r].route.id]=e}),a}async function ve(e){if(!e.matches.some(e=>e.route.unstable_middleware))return we(e);let t=!1;return _e(e,()=>(t=!0,we(e)),(a,r)=>je(a,r,e.matches,t))}function je(e,t,a,r){if(r)return{[t]:{type:"error",result:e}};{let r=Oe(a,a.find(e=>e.route.id===t||e.route.loader)?.route.id||t).route.id;return{[r]:{type:"error",result:e}}}}async function _e(e,t,a){let{matches:r,request:s,params:n,context:o}=e,d=r.flatMap(e=>e.route.unstable_middleware?e.route.unstable_middleware.map(t=>[e.route.id,t]):[]),i={};return await Ne({request:s,params:n,context:o},d,t,a,i),i}async function Ne(e,t,a,r,s={},n=0){let{request:o}=e;if(o.signal.aborted){if(o.signal.reason)throw o.signal.reason;throw new Error(`Request aborted without an \`AbortSignal.reason\`: ${o.method} ${o.url}`)}let d=t[n];if(!d){let e=await a();return void Object.assign(s,e)}let[i,l]=d,c=!1,u=async()=>{if(c)throw new Error("You may only call `next()` once per middleware");c=!0;try{let o=await Ne(e,t,a,r,s,n+1);Object.assign(s,o)}catch(e){let t=await r(e,i);Object.assign(s,t)}};try{let t=await l({request:e.request,params:e.params,context:e.context},u);void 0!==t&&console.warn("client middlewares are not intended to return values, the value will be ignored",t),c||await u()}catch(e){let t=await r(e,i);Object.assign(s,t)}}function Ce(e,t,a,r,s){let n=be({key:"unstable_middleware",route:r.route,manifest:t,mapRouteProperties:e}),o=function(e,t,a,r,s){let n=a[e.id];if(k(n,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if("function"==typeof e.lazy){let t=ye.get(n);if(t)return{lazyRoutePromise:t,lazyHandlerPromise:t};let a=(async()=>{k("function"==typeof e.lazy,"No lazy route function found");let t=await e.lazy(),a={};for(let e in t){let r=t[e];if(void 0===r)continue;let s=v(e),o=void 0!==n[e]&&"hasErrorBoundary"!==e;s?m(!s,"Route property "+e+" is not a supported property to be returned from a lazy route function. This property will be ignored."):o?m(!o,`Route "${n.id}" has a static property "${e}" defined but its lazy function is also returning a value for this property. The lazy route property "${e}" will be ignored.`):a[e]=r}Object.assign(n,a),Object.assign(n,{...r(n),lazy:void 0})})();return ye.set(n,a),a.catch(()=>{}),{lazyRoutePromise:a,lazyHandlerPromise:a}}let o,d=Object.keys(e.lazy),i=[];for(let n of d){if(s&&s.includes(n))continue;let d=be({key:n,route:e,manifest:a,mapRouteProperties:r});d&&(i.push(d),n===t&&(o=d))}let l=i.length>0?Promise.all(i).then(()=>{}):void 0;return l?.catch(()=>{}),o?.catch(()=>{}),{lazyRoutePromise:l,lazyHandlerPromise:o}}(r.route,Ge(a.method)?"action":"loader",t,e,s);return{middleware:n,route:o.lazyRoutePromise,handler:o.lazyHandlerPromise}}function Se(e,t,a,r,s,n,o,d=null){let i=!1,l=Ce(e,t,a,r,s);return{...r,_lazyPromises:l,shouldLoad:o,unstable_shouldRevalidateArgs:d,unstable_shouldCallHandler:e=>(i=!0,d?pe(r,"boolean"==typeof e?{...d,defaultShouldRevalidate:e}:d):o),resolve:e=>i||o||e&&!Ge(a.method)&&(r.route.lazy||r.route.loader)?async function({request:e,match:t,lazyHandlerPromise:a,lazyRoutePromise:r,handlerOverride:s,scopedContext:n}){let o,d,i=Ge(e.method),l=i?"action":"loader",c=a=>{let r,o=new Promise((e,t)=>r=t);d=()=>r(),e.signal.addEventListener("abort",d);let i=r=>"function"!=typeof a?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${l}" [routeId: ${t.route.id}]`)):a({request:e,params:t.params,context:n},...void 0!==r?[r]:[]),c=(async()=>{try{return{type:"data",result:await(s?s(e=>i(e)):i())}}catch(e){return{type:"error",result:e}}})();return Promise.race([c,o])};try{let s=i?t.route.action:t.route.loader;if(a||r)if(s){let e,[t]=await Promise.all([c(s).catch(t=>{e=t}),a,r]);if(void 0!==e)throw e;o=t}else{await a;let s=i?t.route.action:t.route.loader;if(!s){if("action"===l){let a=new URL(e.url),r=a.pathname+a.search;throw Be(405,{method:e.method,pathname:r,routeId:t.route.id})}return{type:"data",result:void 0}}[o]=await Promise.all([c(s),r])}else{if(!s){let t=new URL(e.url);throw Be(404,{pathname:t.pathname+t.search})}o=await c(s)}}catch(e){return{type:"error",result:e}}finally{d&&e.signal.removeEventListener("abort",d)}return o}({request:a,match:r,lazyHandlerPromise:l?.handler,lazyRoutePromise:l?.route,handlerOverride:e,scopedContext:n}):Promise.resolve({type:"data",result:void 0})}}function Ee(e,t,a,r,s,n,o,d=null){return r.map(r=>r.route.id!==s.route.id?{...r,shouldLoad:!1,unstable_shouldRevalidateArgs:d,unstable_shouldCallHandler:()=>!1,_lazyPromises:Ce(e,t,a,r,n),resolve:()=>Promise.resolve({type:"data",result:void 0})}:Se(e,t,a,r,n,o,!0,d))}async function Re(e){let{result:t,type:a}=e;if(Ke(t)){let e;try{let a=t.headers.get("Content-Type");e=a&&/\bapplication\/json\b/.test(a)?null==t.body?null:await t.json():await t.text()}catch(e){return{type:"error",error:e}}return"error"===a?{type:"error",error:new G(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:"data",data:e,statusCode:t.status,headers:t.headers}}return"error"===a?We(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:new G(t.init?.status||500,void 0,t.data),statusCode:Y(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:Y(t)?t.status:void 0}:We(t)?{type:"data",data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function De(e,t,a,r,s){let n=e.headers.get("Location");if(k(n,"Redirects returned/thrown from loaders/actions must have a Location header"),!oe(n)){let o=r.slice(0,r.findIndex(e=>e.route.id===a)+1);n=ue(new URL(t.url),o,s,n),e.headers.set("Location",n)}return e}function Me(e,t,a){if(oe(e)){let r=e,s=r.startsWith("//")?new URL(t.protocol+r):new URL(r),n=null!=F(s.pathname,a);if(s.origin===t.origin&&n)return s.pathname+s.search+s.hash}return e}function Te(e,t,a,r){let s=e.createURL(Ue(t)).toString(),n={signal:a};if(r&&Ge(r.formMethod)){let{formMethod:e,formEncType:t}=r;n.method=e.toUpperCase(),"application/json"===t?(n.headers=new Headers({"Content-Type":t}),n.body=JSON.stringify(r.json)):"text/plain"===t?n.body=r.text:"application/x-www-form-urlencoded"===t&&r.formData?n.body=Pe(r.formData):n.body=r.formData}return new Request(s,n)}function Pe(e){let t=new URLSearchParams;for(let[a,r]of e.entries())t.append(a,"string"==typeof r?r:r.name);return t}function Le(e){let t=new FormData;for(let[a,r]of e.entries())t.append(a,r);return t}function ze(e,t,a,r,s,n){let{loaderData:o,errors:d}=function(e,t,a,r=!1,s=!1){let n,o={},d=null,i=!1,l={},c=a&&Ve(a[1])?a[1].error:void 0;return e.forEach(a=>{if(!(a.route.id in t))return;let u=a.route.id,m=t[u];if(k(!qe(m),"Cannot handle redirect results in processLoaderData"),Ve(m)){let t=m.error;if(void 0!==c&&(t=c,c=void 0),d=d||{},s)d[u]=t;else{let a=Oe(e,u);null==d[a.route.id]&&(d[a.route.id]=t)}r||(o[u]=le),i||(i=!0,n=Y(m.error)?m.error.status:500),m.headers&&(l[u]=m.headers)}else o[u]=m.data,m.statusCode&&200!==m.statusCode&&!i&&(n=m.statusCode),m.headers&&(l[u]=m.headers)}),void 0!==c&&a&&(d={[a[0]]:c},a[2]&&(o[a[2]]=void 0)),{loaderData:o,errors:d,statusCode:n||200,loaderHeaders:l}}(t,a,r);return s.filter(e=>!e.matches||e.matches.some(e=>e.shouldLoad)).forEach(t=>{let{key:a,match:r,controller:s}=t;if(s&&s.signal.aborted)return;let o=n[a];if(k(o,"Did not find corresponding fetcher result"),Ve(o)){let t=Oe(e.matches,r?.route.id);d&&d[t.route.id]||(d={...d,[t.route.id]:o.error}),e.fetchers.delete(a)}else if(qe(o))k(!1,"Unhandled fetcher revalidation redirect");else{let t=et(o.data);e.fetchers.set(a,t)}}),{loaderData:o,errors:d}}function Ae(e,t,a,r){let s=Object.entries(t).filter(([,e])=>e!==le).reduce((e,[t,a])=>(e[t]=a,e),{});for(let n of a){let a=n.route.id;if(!t.hasOwnProperty(a)&&e.hasOwnProperty(a)&&n.route.loader&&(s[a]=e[a]),r&&r.hasOwnProperty(a))break}return s}function $e(e){return e?Ve(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Oe(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[...e]).reverse().find(e=>!0===e.route.hasErrorBoundary)||e[0]}function Fe(e){let t=1===e.length?e[0]:e.find(e=>e.index||!e.path||"/"===e.path)||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function Be(e,{pathname:t,routeId:a,method:r,type:s,message:n}={}){let o="Unknown Server Error",d="Unknown @remix-run/router error";return 400===e?(o="Bad Request",r&&t&&a?d=`You made a ${r} request to "${t}" but did not provide a \`loader\` for route "${a}", so there is no way to handle the request.`:"invalid-body"===s&&(d="Unable to encode submission body")):403===e?(o="Forbidden",d=`Route "${a}" does not match URL "${t}"`):404===e?(o="Not Found",d=`No route matches URL "${t}"`):405===e&&(o="Method Not Allowed",r&&t&&a?d=`You made a ${r.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${a}", so there is no way to handle the request.`:r&&(d=`Invalid request method "${r.toUpperCase()}"`)),new G(e||500,o,new Error(d),!0)}function Ie(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[a,r]=t[e];if(qe(r))return{key:a,result:r}}}function Ue(e){return f({..."string"==typeof e?x(e):e,hash:""})}function He(e){return Ke(e.result)&&ee.has(e.result.status)}function Ve(e){return"error"===e.type}function qe(e){return"redirect"===(e&&e.type)}function We(e){return"object"==typeof e&&null!=e&&"type"in e&&"data"in e&&"init"in e&&"DataWithResponseInit"===e.type}function Ke(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function Ge(e){return Z.has(e.toUpperCase())}function Ye(e){return new URLSearchParams(e).getAll("index").some(e=>""===e)}function Je(e,t){let a="string"==typeof t?x(t).search:t.search;if(e[e.length-1].route.index&&Ye(a||""))return e[e.length-1];let r=I(e);return r[r.length-1]}function Ze(e){let{formMethod:t,formAction:a,formEncType:r,text:s,formData:n,json:o}=e;if(t&&a&&r)return null!=s?{formMethod:t,formAction:a,formEncType:r,formData:void 0,json:void 0,text:s}:null!=n?{formMethod:t,formAction:a,formEncType:r,formData:n,json:void 0,text:void 0}:void 0!==o?{formMethod:t,formAction:a,formEncType:r,formData:void 0,json:o,text:void 0}:void 0}function Xe(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Qe(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function et(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}var tt=o.createContext(null);tt.displayName="DataRouter";var at=o.createContext(null);at.displayName="DataRouterState";o.createContext(!1);var rt=o.createContext({isTransitioning:!1});rt.displayName="ViewTransition";var st=o.createContext(new Map);st.displayName="Fetchers",o.createContext(null).displayName="Await";var nt=o.createContext(null);nt.displayName="Navigation";var ot=o.createContext(null);ot.displayName="Location";var dt=o.createContext({outlet:null,matches:[],isDataRoute:!1});dt.displayName="Route";var it=o.createContext(null);function lt(){return null!=o.useContext(ot)}function ct(){return k(lt(),"useLocation() may be used only in the context of a <Router> component."),o.useContext(ot).location}it.displayName="RouteError";var ut="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function kt(e){o.useContext(nt).static||o.useLayoutEffect(e)}function mt(){let{isDataRoute:e}=o.useContext(dt);return e?function(){let{router:e}=function(e){let t=o.useContext(tt);return k(t,wt(e)),t}("useNavigate"),t=jt("useNavigate"),a=o.useRef(!1);return kt(()=>{a.current=!0}),o.useCallback(async(r,s={})=>{m(a.current,ut),a.current&&("number"==typeof r?e.navigate(r):await e.navigate(r,{fromRouteId:t,...s}))},[e,t])}():function(){k(lt(),"useNavigate() may be used only in the context of a <Router> component.");let e=o.useContext(tt),{basename:t,navigator:a}=o.useContext(nt),{matches:r}=o.useContext(dt),{pathname:s}=ct(),n=JSON.stringify(U(r)),d=o.useRef(!1);return kt(()=>{d.current=!0}),o.useCallback((r,o={})=>{if(m(d.current,ut),!d.current)return;if("number"==typeof r)return void a.go(r);let i=H(r,JSON.parse(n),s,"path"===o.relative);null==e&&"/"!==t&&(i.pathname="/"===i.pathname?t:V([t,i.pathname])),(o.replace?a.replace:a.push)(i,o.state,o)},[t,a,n,s,e])}()}var ht=o.createContext(null);function pt(e,{relative:t}={}){let{matches:a}=o.useContext(dt),{pathname:r}=ct(),s=JSON.stringify(U(a));return o.useMemo(()=>H(e,JSON.parse(s),r,"path"===t),[e,s,r,t])}function ft(e,t,a,r){k(lt(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:s}=o.useContext(nt),{matches:n}=o.useContext(dt),d=n[n.length-1],i=d?d.params:{},l=d?d.pathname:"/",c=d?d.pathnameBase:"/",u=d&&d.route;{let e=u&&u.path||"";Ct(l,!u||e.endsWith("*")||e.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${l}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.\n\nPlease change the parent <Route path="${e}"> to <Route path="${"/"===e?"*":`${e}/*`}">.`)}let h,p=ct();if(t){let e="string"==typeof t?x(t):t;k("/"===c||e.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),h=e}else h=p;let f=h.pathname||"/",g=f;if("/"!==c){let e=c.replace(/^\//,"").split("/");g="/"+f.replace(/^\//,"").split("/").slice(e.length).join("/")}let b=_(e,{pathname:g});m(u||null!=b,`No routes matched location "${h.pathname}${h.search}${h.hash}" `),m(null==b||void 0!==b[b.length-1].route.element||void 0!==b[b.length-1].route.Component||void 0!==b[b.length-1].route.lazy,`Matched leaf route at location "${h.pathname}${h.search}${h.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let y=function(e,t=[],a=null){if(null==e){if(!a)return null;if(a.errors)e=a.matches;else{if(0!==t.length||a.initialized||!(a.matches.length>0))return null;e=a.matches}}let r=e,s=a?.errors;if(null!=s){let e=r.findIndex(e=>e.route.id&&void 0!==s?.[e.route.id]);k(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(s).join(",")}`),r=r.slice(0,Math.min(r.length,e+1))}let n=!1,d=-1;if(a)for(let e=0;e<r.length;e++){let t=r[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(d=e),t.route.id){let{loaderData:e,errors:s}=a,o=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!s||void 0===s[t.route.id]);if(t.route.lazy||o){n=!0,r=d>=0?r.slice(0,d+1):[r[0]];break}}}return r.reduceRight((e,i,l)=>{let c,u=!1,k=null,m=null;a&&(c=s&&i.route.id?s[i.route.id]:void 0,k=i.route.errorElement||gt,n&&(d<0&&0===l?(Ct("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),u=!0,m=null):d===l&&(u=!0,m=i.route.hydrateFallbackElement||null)));let h=t.concat(r.slice(0,l+1)),p=()=>{let t;return t=c?k:u?m:i.route.Component?o.createElement(i.route.Component,null):i.route.element?i.route.element:e,o.createElement(yt,{match:i,routeContext:{outlet:e,matches:h,isDataRoute:null!=a},children:t})};return a&&(i.route.ErrorBoundary||i.route.errorElement||0===l)?o.createElement(bt,{location:a.location,revalidation:a.revalidation,component:k,error:c,children:p(),routeContext:{outlet:null,matches:h,isDataRoute:!0}}):p()},null)}(b&&b.map(e=>Object.assign({},e,{params:Object.assign({},i,e.params),pathname:V([c,s.encodeLocation?s.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?c:V([c,s.encodeLocation?s.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])})),n,a,r);return t&&y?o.createElement(ot.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...h},navigationType:"POP"}},y):y}function xt(){let e=_t(),t=Y(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),a=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",s={padding:"0.5rem",backgroundColor:r},n={padding:"2px 4px",backgroundColor:r},d=null;return console.error("Error handled by React Router default ErrorBoundary:",e),d=o.createElement(o.Fragment,null,o.createElement("p",null,"💿 Hey developer 👋"),o.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",o.createElement("code",{style:n},"ErrorBoundary")," or"," ",o.createElement("code",{style:n},"errorElement")," prop on your route.")),o.createElement(o.Fragment,null,o.createElement("h2",null,"Unexpected Application Error!"),o.createElement("h3",{style:{fontStyle:"italic"}},t),a?o.createElement("pre",{style:s},a):null,d)}var gt=o.createElement(xt,null),bt=class extends o.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return void 0!==this.state.error?o.createElement(dt.Provider,{value:this.props.routeContext},o.createElement(it.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function yt({routeContext:e,match:t,children:a}){let r=o.useContext(tt);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),o.createElement(dt.Provider,{value:e},a)}function wt(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function vt(e){let t=o.useContext(at);return k(t,wt(e)),t}function jt(e){let t=function(e){let t=o.useContext(dt);return k(t,wt(e)),t}(e),a=t.matches[t.matches.length-1];return k(a.route.id,`${e} can only be used on routes that contain a unique "id"`),a.route.id}function _t(){let e=o.useContext(it),t=vt("useRouteError"),a=jt("useRouteError");return void 0!==e?e:t.errors?.[a]}var Nt={};function Ct(e,t,a){t||Nt[e]||(Nt[e]=!0,m(!1,a))}var St={};function Et(e,t){e||St[t]||(St[t]=!0,console.warn(t))}function Rt(e){let t={hasErrorBoundary:e.hasErrorBoundary||null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&(e.element&&m(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:o.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&m(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:o.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&m(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:o.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var Dt=["HydrateFallback","hydrateFallbackElement"],Mt=class{constructor(){this.status="pending",this.promise=new Promise((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}})}};function Tt({router:e,flushSync:t}){let[a,r]=o.useState(e.state),[s,n]=o.useState(),[d,i]=o.useState({isTransitioning:!1}),[l,c]=o.useState(),[u,k]=o.useState(),[m,h]=o.useState(),p=o.useRef(new Map),f=o.useCallback((a,{deletedFetchers:s,flushSync:d,viewTransitionOpts:m})=>{a.fetchers.forEach((e,t)=>{void 0!==e.data&&p.current.set(t,e.data)}),s.forEach(e=>p.current.delete(e)),Et(!1===d||null!=t,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let f=null!=e.window&&null!=e.window.document&&"function"==typeof e.window.document.startViewTransition;if(Et(null==m||f,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),m&&f){if(t&&d){t(()=>{u&&(l&&l.resolve(),u.skipTransition()),i({isTransitioning:!0,flushSync:!0,currentLocation:m.currentLocation,nextLocation:m.nextLocation})});let s=e.window.document.startViewTransition(()=>{t(()=>r(a))});return s.finished.finally(()=>{t(()=>{c(void 0),k(void 0),n(void 0),i({isTransitioning:!1})})}),void t(()=>k(s))}u?(l&&l.resolve(),u.skipTransition(),h({state:a,currentLocation:m.currentLocation,nextLocation:m.nextLocation})):(n(a),i({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}))}else t&&d?t(()=>r(a)):o.startTransition(()=>r(a))},[e.window,t,u,l]);o.useLayoutEffect(()=>e.subscribe(f),[e,f]),o.useEffect(()=>{d.isTransitioning&&!d.flushSync&&c(new Mt)},[d]),o.useEffect(()=>{if(l&&s&&e.window){let t=s,a=l.promise,d=e.window.document.startViewTransition(async()=>{o.startTransition(()=>r(t)),await a});d.finished.finally(()=>{c(void 0),k(void 0),n(void 0),i({isTransitioning:!1})}),k(d)}},[s,l,e.window]),o.useEffect(()=>{l&&s&&a.location.key===s.location.key&&l.resolve()},[l,u,a.location,s]),o.useEffect(()=>{!d.isTransitioning&&m&&(n(m.state),i({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),h(void 0))},[d.isTransitioning,m]);let x=o.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,a,r)=>e.navigate(t,{state:a,preventScrollReset:r?.preventScrollReset}),replace:(t,a,r)=>e.navigate(t,{replace:!0,state:a,preventScrollReset:r?.preventScrollReset})}),[e]),g=e.basename||"/",b=o.useMemo(()=>({router:e,navigator:x,static:!1,basename:g}),[e,x,g]);return o.createElement(o.Fragment,null,o.createElement(tt.Provider,{value:b},o.createElement(at.Provider,{value:a},o.createElement(st.Provider,{value:p.current},o.createElement(rt.Provider,{value:d},o.createElement(zt,{basename:g,location:a.location,navigationType:a.historyAction,navigator:x},o.createElement(Pt,{routes:e.routes,future:e.future,state:a})))))),null)}var Pt=o.memo(function({routes:e,future:t,state:a}){return ft(e,void 0,a,t)});function Lt(e){return function(e){let t=o.useContext(dt).outlet;return t?o.createElement(ht.Provider,{value:e},t):t}(e.context)}function zt({basename:e="/",children:t=null,location:a,navigationType:r="POP",navigator:s,static:n=!1}){k(!lt(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let d=e.replace(/^\/*/,"/"),i=o.useMemo(()=>({basename:d,navigator:s,static:n,future:{}}),[d,s,n]);"string"==typeof a&&(a=x(a));let{pathname:l="/",search:c="",hash:u="",state:h=null,key:p="default"}=a,f=o.useMemo(()=>{let e=F(l,d);return null==e?null:{location:{pathname:e,search:c,hash:u,state:h,key:p},navigationType:r}},[d,l,c,u,h,p,r]);return m(null!=f,`<Router basename="${d}"> is not able to match the URL "${l}${c}${u}" because it does not start with the basename, so the <Router> won't render anything.`),null==f?null:o.createElement(nt.Provider,{value:i},o.createElement(ot.Provider,{children:t,value:f}))}o.Component;var At="get",$t="application/x-www-form-urlencoded";function Ot(e){return null!=e&&"string"==typeof e.tagName}var Ft=null,Bt=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function It(e){return null==e||Bt.has(e)?e:(m(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${$t}"`),null)}function Ut(e,t){if(!1===e||null==e)throw new Error(t)}function Ht(e){return null!=e&&(null==e.href?"preload"===e.rel&&"string"==typeof e.imageSrcSet&&"string"==typeof e.imageSizes:"string"==typeof e.rel&&"string"==typeof e.href)}function Vt(e,t,a,r,s,n){let o=(e,t)=>!a[t]||e.route.id!==a[t].route.id,d=(e,t)=>a[t].pathname!==e.pathname||a[t].route.path?.endsWith("*")&&a[t].params["*"]!==e.params["*"];return"assets"===n?t.filter((e,t)=>o(e,t)||d(e,t)):"data"===n?t.filter((t,n)=>{let i=r.routes[t.route.id];if(!i||!i.hasLoader)return!1;if(o(t,n)||d(t,n))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(s.pathname+s.search+s.hash,window.origin),currentParams:a[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if("boolean"==typeof r)return r}return!0}):[]}function qt(e,t,{includeHydrateFallback:a}={}){return r=e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let s=[r.module];return r.clientActionModule&&(s=s.concat(r.clientActionModule)),r.clientLoaderModule&&(s=s.concat(r.clientLoaderModule)),a&&r.hydrateFallbackModule&&(s=s.concat(r.hydrateFallbackModule)),r.imports&&(s=s.concat(r.imports)),s}).flat(1),[...new Set(r)];var r}function Wt(){let e=o.useContext(tt);return Ut(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Kt(){let e=o.useContext(at);return Ut(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}Object.getOwnPropertyNames(Object.prototype).sort().join("\0"),"undefined"!=typeof window?window:"undefined"!=typeof globalThis&&globalThis,Symbol("SingleFetchRedirect");var Gt=o.createContext(void 0);function Yt(){let e=o.useContext(Gt);return Ut(e,"You must render this element inside a <HydratedRouter> element"),e}function Jt(e,t){return a=>{e&&e(a),a.defaultPrevented||t(a)}}function Zt({page:e,...t}){let{router:a}=Wt(),r=o.useMemo(()=>_(a.routes,e,a.basename),[a.routes,e,a.basename]);return r?o.createElement(Qt,{page:e,matches:r,...t}):null}function Xt(e){let{manifest:t,routeModules:a}=Yt(),[r,s]=o.useState([]);return o.useEffect(()=>{let r=!1;return async function(e,t,a){return function(e,t){let a=new Set,r=new Set(t);return e.reduce((e,s)=>{if(t&&(null==(n=s)||"string"!=typeof n.page)&&"script"===s.as&&s.href&&r.has(s.href))return e;var n;let o=JSON.stringify(function(e){let t={},a=Object.keys(e).sort();for(let r of a)t[r]=e[r];return t}(s));return a.has(o)||(a.add(o),e.push({key:o,link:s})),e},[])}((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await async function(e,t){if(e.id in t)return t[e.id];try{let a=await import(e.module);return t[e.id]=a,a}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}(r,a);return e.links?e.links():[]}return[]}))).flat(1).filter(Ht).filter(e=>"stylesheet"===e.rel||"preload"===e.rel).map(e=>"stylesheet"===e.rel?{...e,rel:"prefetch",as:"style"}:{...e,rel:"prefetch"}))}(e,t,a).then(e=>{r||s(e)}),()=>{r=!0}},[e,t,a]),r}function Qt({page:e,matches:t,...a}){let r=ct(),{manifest:s,routeModules:n}=Yt(),{basename:d}=Wt(),{loaderData:i,matches:l}=Kt(),c=o.useMemo(()=>Vt(e,t,l,s,r,"data"),[e,t,l,s,r]),u=o.useMemo(()=>Vt(e,t,l,s,r,"assets"),[e,t,l,s,r]),k=o.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let a=new Set,o=!1;if(t.forEach(e=>{let t=s.routes[e.route.id];t&&t.hasLoader&&(!c.some(t=>t.route.id===e.route.id)&&e.route.id in i&&n[e.route.id]?.shouldRevalidate||t.hasClientLoader?o=!0:a.add(e.route.id))}),0===a.size)return[];let l=function(e,t,a){let r="string"==typeof e?new URL(e,"undefined"==typeof window?"server://singlefetch/":window.location.origin):e;return"/"===r.pathname?r.pathname=`_root.${a}`:t&&"/"===F(r.pathname,t)?r.pathname=`${t.replace(/\/$/,"")}/_root.${a}`:r.pathname=`${r.pathname.replace(/\/$/,"")}.${a}`,r}(e,d,"data");return o&&a.size>0&&l.searchParams.set("_routes",t.filter(e=>a.has(e.route.id)).map(e=>e.route.id).join(",")),[l.pathname+l.search]},[d,i,r,s,c,t,e,n]),m=o.useMemo(()=>qt(u,s),[u,s]),h=Xt(u);return o.createElement(o.Fragment,null,k.map(e=>o.createElement("link",{key:e,rel:"prefetch",as:"fetch",href:e,...a})),m.map(e=>o.createElement("link",{key:e,rel:"modulepreload",href:e,...a})),h.map(({key:e,link:t})=>o.createElement("link",{key:e,nonce:a.nonce,...t})))}Gt.displayName="FrameworkContext";function ea(...e){return t=>{e.forEach(e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)})}}o.Component;var ta="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;try{ta&&(window.__reactRouterVersion="7.8.0")}catch(Br){}function aa(){let e=window?.__staticRouterHydrationData;return e&&e.errors&&(e={...e,errors:ra(e.errors)}),e}function ra(e){if(!e)return null;let t=Object.entries(e),a={};for(let[e,r]of t)if(r&&"RouteErrorResponse"===r.__type)a[e]=new G(r.status,r.statusText,r.data,!0===r.internal);else if(r&&"Error"===r.__type){if(r.__subType){let t=window[r.__subType];if("function"==typeof t)try{let s=new t(r.message);s.stack="",a[e]=s}catch(e){}}if(null==a[e]){let t=new Error(r.message);t.stack="",a[e]=t}}else a[e]=r;return a}var sa=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,na=o.forwardRef(function({onClick:e,discover:t="render",prefetch:a="none",relative:r,reloadDocument:s,replace:n,state:d,target:i,to:l,preventScrollReset:c,viewTransition:u,...h},p){let x,{basename:g}=o.useContext(nt),b="string"==typeof l&&sa.test(l),y=!1;if("string"==typeof l&&b&&(x=l,ta))try{let e=new URL(window.location.href),t=l.startsWith("//")?new URL(e.protocol+l):new URL(l),a=F(t.pathname,g);t.origin===e.origin&&null!=a?l=a+t.search+t.hash:y=!0}catch(e){m(!1,`<Link to="${l}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}let w=function(e,{relative:t}={}){k(lt(),"useHref() may be used only in the context of a <Router> component.");let{basename:a,navigator:r}=o.useContext(nt),{hash:s,pathname:n,search:d}=pt(e,{relative:t}),i=n;return"/"!==a&&(i="/"===n?a:V([a,n])),r.createHref({pathname:i,search:d,hash:s})}(l,{relative:r}),[v,j,_]=function(e,t){let a=o.useContext(Gt),[r,s]=o.useState(!1),[n,d]=o.useState(!1),{onFocus:i,onBlur:l,onMouseEnter:c,onMouseLeave:u,onTouchStart:k}=t,m=o.useRef(null);o.useEffect(()=>{if("render"===e&&d(!0),"viewport"===e){let e=new IntersectionObserver(e=>{e.forEach(e=>{d(e.isIntersecting)})},{threshold:.5});return m.current&&e.observe(m.current),()=>{e.disconnect()}}},[e]),o.useEffect(()=>{if(r){let e=setTimeout(()=>{d(!0)},100);return()=>{clearTimeout(e)}}},[r]);let h=()=>{s(!0)},p=()=>{s(!1),d(!1)};return a?"intent"!==e?[n,m,{}]:[n,m,{onFocus:Jt(i,h),onBlur:Jt(l,p),onMouseEnter:Jt(c,h),onMouseLeave:Jt(u,p),onTouchStart:Jt(k,h)}]:[!1,m,{}]}(a,h),N=function(e,{target:t,replace:a,state:r,preventScrollReset:s,relative:n,viewTransition:d}={}){let i=mt(),l=ct(),c=pt(e,{relative:n});return o.useCallback(o=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(o,t)){o.preventDefault();let t=void 0!==a?a:f(l)===f(c);i(e,{replace:t,state:r,preventScrollReset:s,relative:n,viewTransition:d})}},[l,i,c,a,r,t,e,s,n,d])}(l,{replace:n,state:d,target:i,preventScrollReset:c,relative:r,viewTransition:u}),C=o.createElement("a",{...h,..._,href:x||w,onClick:y||s?e:function(t){e&&e(t),t.defaultPrevented||N(t)},ref:ea(p,j),target:i,"data-discover":b||"render"!==t?void 0:"true"});return v&&!b?o.createElement(o.Fragment,null,C,o.createElement(Zt,{page:w})):C});na.displayName="Link";var oa=o.forwardRef(function({"aria-current":e="page",caseSensitive:t=!1,className:a="",end:r=!1,style:s,to:n,viewTransition:d,children:i,...l},c){let u=pt(n,{relative:l.relative}),m=ct(),h=o.useContext(at),{navigator:p,basename:f}=o.useContext(nt),x=null!=h&&function(e,{relative:t}={}){let a=o.useContext(rt);k(null!=a,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=da("useViewTransitionState"),s=pt(e,{relative:t});if(!a.isTransitioning)return!1;let n=F(a.currentLocation.pathname,r)||a.currentLocation.pathname,d=F(a.nextLocation.pathname,r)||a.nextLocation.pathname;return null!=$(s.pathname,d)||null!=$(s.pathname,n)}(u)&&!0===d,g=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,b=m.pathname,y=h&&h.navigation&&h.navigation.location?h.navigation.location.pathname:null;t||(b=b.toLowerCase(),y=y?y.toLowerCase():null,g=g.toLowerCase()),y&&f&&(y=F(y,f)||y);const w="/"!==g&&g.endsWith("/")?g.length-1:g.length;let v,j=b===g||!r&&b.startsWith(g)&&"/"===b.charAt(w),_=null!=y&&(y===g||!r&&y.startsWith(g)&&"/"===y.charAt(g.length)),N={isActive:j,isPending:_,isTransitioning:x},C=j?e:void 0;v="function"==typeof a?a(N):[a,j?"active":null,_?"pending":null,x?"transitioning":null].filter(Boolean).join(" ");let S="function"==typeof s?s(N):s;return o.createElement(na,{...l,"aria-current":C,className:v,ref:c,style:S,to:n,viewTransition:d},"function"==typeof i?i(N):i)});function da(e){let t=o.useContext(tt);return k(t,function(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}(e)),t}oa.displayName="NavLink",o.forwardRef(({discover:e="render",fetcherKey:t,navigate:a,reloadDocument:r,replace:s,state:n,method:d=At,action:i,onSubmit:l,relative:c,preventScrollReset:u,viewTransition:m,...h},p)=>{let x=function(){let{router:e}=da("useSubmit"),{basename:t}=o.useContext(nt),a=jt("useRouteId");return o.useCallback(async(r,s={})=>{let{action:n,method:o,encType:d,formData:i,body:l}=function(e,t){let a,r,s,n,o;if(Ot(d=e)&&"form"===d.tagName.toLowerCase()){let o=e.getAttribute("action");r=o?F(o,t):null,a=e.getAttribute("method")||At,s=It(e.getAttribute("enctype"))||$t,n=new FormData(e)}else if(function(e){return Ot(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return Ot(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let o=e.form;if(null==o)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let d=e.getAttribute("formaction")||o.getAttribute("action");if(r=d?F(d,t):null,a=e.getAttribute("formmethod")||o.getAttribute("method")||At,s=It(e.getAttribute("formenctype"))||It(o.getAttribute("enctype"))||$t,n=new FormData(o,e),!function(){if(null===Ft)try{new FormData(document.createElement("form"),0),Ft=!1}catch(e){Ft=!0}return Ft}()){let{name:t,type:a,value:r}=e;if("image"===a){let e=t?`${t}.`:"";n.append(`${e}x`,"0"),n.append(`${e}y`,"0")}else t&&n.append(t,r)}}else{if(Ot(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');a=At,r=null,s=$t,o=e}var d;return n&&"text/plain"===s&&(o=n,n=void 0),{action:r,method:a.toLowerCase(),encType:s,formData:n,body:o}}(r,t);if(!1===s.navigate){let t=s.fetcherKey||la();await e.fetch(t,a,s.action||n,{preventScrollReset:s.preventScrollReset,formData:i,body:l,formMethod:s.method||o,formEncType:s.encType||d,flushSync:s.flushSync})}else await e.navigate(s.action||n,{preventScrollReset:s.preventScrollReset,formData:i,body:l,formMethod:s.method||o,formEncType:s.encType||d,replace:s.replace,state:s.state,fromRouteId:a,flushSync:s.flushSync,viewTransition:s.viewTransition})},[e,t,a])}(),g=function(e,{relative:t}={}){let{basename:a}=o.useContext(nt),r=o.useContext(dt);k(r,"useFormAction must be used inside a RouteContext");let[s]=r.matches.slice(-1),n={...pt(e||".",{relative:t})},d=ct();if(null==e){n.search=d.search;let e=new URLSearchParams(n.search),t=e.getAll("index");if(t.some(e=>""===e)){e.delete("index"),t.filter(e=>e).forEach(t=>e.append("index",t));let a=e.toString();n.search=a?`?${a}`:""}}return e&&"."!==e||!s.route.index||(n.search=n.search?n.search.replace(/^\?/,"?index&"):"?index"),"/"!==a&&(n.pathname="/"===n.pathname?a:V([a,n.pathname])),f(n)}(i,{relative:c}),b="get"===d.toLowerCase()?"get":"post",y="string"==typeof i&&sa.test(i);return o.createElement("form",{ref:p,method:b,action:g,onSubmit:r?l:e=>{if(l&&l(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,o=r?.getAttribute("formmethod")||d;x(r||e.currentTarget,{fetcherKey:t,method:o,navigate:a,replace:s,state:n,relative:c,preventScrollReset:u,viewTransition:m})},...h,"data-discover":y||"render"!==e?void 0:"true"})}).displayName="Form";var ia=0,la=()=>`__${String(++ia)}__`;const ca=window.ReactDOM;function ua(e){return o.createElement(Tt,{flushSync:ca.flushSync,...e})}const ka=window.wp.i18n,ma=e=>{const t=(e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,a)=>a?a.toUpperCase():t.toLowerCase()))(e);return t.charAt(0).toUpperCase()+t.slice(1)},ha=(...e)=>e.filter((e,t,a)=>Boolean(e)&&""!==e.trim()&&a.indexOf(e)===t).join(" ").trim(),pa=e=>{for(const t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0};var fa={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const xa=(0,o.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:r,className:s="",children:n,iconNode:d,...i},l)=>(0,o.createElement)("svg",{ref:l,...fa,width:t,height:t,stroke:e,strokeWidth:r?24*Number(a)/Number(t):a,className:ha("lucide",s),...!n&&!pa(i)&&{"aria-hidden":"true"},...i},[...d.map(([e,t])=>(0,o.createElement)(e,t)),...Array.isArray(n)?n:[n]])),ga=(e,t)=>{const a=(0,o.forwardRef)(({className:a,...r},s)=>{return(0,o.createElement)(xa,{ref:s,iconNode:t,className:ha(`lucide-${n=ma(e),n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,a),...r});var n});return a.displayName=ma(e),a},ba=ga("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),ya=ga("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),wa=ga("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]),va=ga("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),ja=ga("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]),_a=ga("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]),Na=ga("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]),Ca=ga("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),Sa=ga("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),Ea=ga("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]),Ra=e=>{const t=Pa(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{const a=e.split("-");return""===a[0]&&1!==a.length&&a.shift(),Da(a,t)||Ta(e)},getConflictingClassGroupIds:(e,t)=>{const s=a[e]||[];return t&&r[e]?[...s,...r[e]]:s}}},Da=(e,t)=>{if(0===e.length)return t.classGroupId;const a=e[0],r=t.nextPart.get(a),s=r?Da(e.slice(1),r):void 0;if(s)return s;if(0===t.validators.length)return;const n=e.join("-");return t.validators.find(({validator:e})=>e(n))?.classGroupId},Ma=/^\[(.+)\]$/,Ta=e=>{if(Ma.test(e)){const t=Ma.exec(e)[1],a=t?.substring(0,t.indexOf(":"));if(a)return"arbitrary.."+a}},Pa=e=>{const{theme:t,classGroups:a}=e,r={nextPart:new Map,validators:[]};for(const e in a)La(a[e],r,e,t);return r},La=(e,t,a,r)=>{e.forEach(e=>{if("string"!=typeof e)return"function"==typeof e?Aa(e)?void La(e(r),t,a,r):void t.validators.push({validator:e,classGroupId:a}):void Object.entries(e).forEach(([e,s])=>{La(s,za(t,e),a,r)});(""===e?t:za(t,e)).classGroupId=a})},za=(e,t)=>{let a=e;return t.split("-").forEach(e=>{a.nextPart.has(e)||a.nextPart.set(e,{nextPart:new Map,validators:[]}),a=a.nextPart.get(e)}),a},Aa=e=>e.isThemeGetter,$a=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,a=new Map,r=new Map;const s=(s,n)=>{a.set(s,n),t++,t>e&&(t=0,r=a,a=new Map)};return{get(e){let t=a.get(e);return void 0!==t?t:void 0!==(t=r.get(e))?(s(e,t),t):void 0},set(e,t){a.has(e)?a.set(e,t):s(e,t)}}},Oa=e=>{const{prefix:t,experimentalParseClassName:a}=e;let r=e=>{const t=[];let a,r=0,s=0,n=0;for(let o=0;o<e.length;o++){let d=e[o];if(0===r&&0===s){if(":"===d){t.push(e.slice(n,o)),n=o+1;continue}if("/"===d){a=o;continue}}"["===d?r++:"]"===d?r--:"("===d?s++:")"===d&&s--}const o=0===t.length?e:e.substring(n),d=Fa(o);return{modifiers:t,hasImportantModifier:d!==o,baseClassName:d,maybePostfixModifierPosition:a&&a>n?a-n:void 0}};if(t){const e=t+":",a=r;r=t=>t.startsWith(e)?a(t.substring(e.length)):{isExternal:!0,modifiers:[],hasImportantModifier:!1,baseClassName:t,maybePostfixModifierPosition:void 0}}if(a){const e=r;r=t=>a({className:t,parseClassName:e})}return r},Fa=e=>e.endsWith("!")?e.substring(0,e.length-1):e.startsWith("!")?e.substring(1):e,Ba=e=>{const t=Object.fromEntries(e.orderSensitiveModifiers.map(e=>[e,!0]));return e=>{if(e.length<=1)return e;const a=[];let r=[];return e.forEach(e=>{"["===e[0]||t[e]?(a.push(...r.sort(),e),r=[]):r.push(e)}),a.push(...r.sort()),a}},Ia=/\s+/;function Ua(){let e,t,a=0,r="";for(;a<arguments.length;)(e=arguments[a++])&&(t=Ha(e))&&(r&&(r+=" "),r+=t);return r}const Ha=e=>{if("string"==typeof e)return e;let t,a="";for(let r=0;r<e.length;r++)e[r]&&(t=Ha(e[r]))&&(a&&(a+=" "),a+=t);return a};function Va(e,...t){let a,r,s,n=function(d){const i=t.reduce((e,t)=>t(e),e());return a=(e=>({cache:$a(e.cacheSize),parseClassName:Oa(e),sortModifiers:Ba(e),...Ra(e)}))(i),r=a.cache.get,s=a.cache.set,n=o,o(d)};function o(e){const t=r(e);if(t)return t;const n=((e,t)=>{const{parseClassName:a,getClassGroupId:r,getConflictingClassGroupIds:s,sortModifiers:n}=t,o=[],d=e.trim().split(Ia);let i="";for(let e=d.length-1;e>=0;e-=1){const t=d[e],{isExternal:l,modifiers:c,hasImportantModifier:u,baseClassName:k,maybePostfixModifierPosition:m}=a(t);if(l){i=t+(i.length>0?" "+i:i);continue}let h=!!m,p=r(h?k.substring(0,m):k);if(!p){if(!h){i=t+(i.length>0?" "+i:i);continue}if(p=r(k),!p){i=t+(i.length>0?" "+i:i);continue}h=!1}const f=n(c).join(":"),x=u?f+"!":f,g=x+p;if(o.includes(g))continue;o.push(g);const b=s(p,h);for(let e=0;e<b.length;++e){const t=b[e];o.push(x+t)}i=t+(i.length>0?" "+i:i)}return i})(e,a);return s(e,n),n}return function(){return n(Ua.apply(null,arguments))}}const qa=e=>{const t=t=>t[e]||[];return t.isThemeGetter=!0,t},Wa=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Ka=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Ga=/^\d+\/\d+$/,Ya=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ja=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Za=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Xa=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Qa=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,er=e=>Ga.test(e),tr=e=>!!e&&!Number.isNaN(Number(e)),ar=e=>!!e&&Number.isInteger(Number(e)),rr=e=>e.endsWith("%")&&tr(e.slice(0,-1)),sr=e=>Ya.test(e),nr=()=>!0,or=e=>Ja.test(e)&&!Za.test(e),dr=()=>!1,ir=e=>Xa.test(e),lr=e=>Qa.test(e),cr=e=>!kr(e)&&!gr(e),ur=e=>Nr(e,Rr,dr),kr=e=>Wa.test(e),mr=e=>Nr(e,Dr,or),hr=e=>Nr(e,Mr,tr),pr=e=>Nr(e,Sr,dr),fr=e=>Nr(e,Er,lr),xr=e=>Nr(e,Pr,ir),gr=e=>Ka.test(e),br=e=>Cr(e,Dr),yr=e=>Cr(e,Tr),wr=e=>Cr(e,Sr),vr=e=>Cr(e,Rr),jr=e=>Cr(e,Er),_r=e=>Cr(e,Pr,!0),Nr=(e,t,a)=>{const r=Wa.exec(e);return!!r&&(r[1]?t(r[1]):a(r[2]))},Cr=(e,t,a=!1)=>{const r=Ka.exec(e);return!!r&&(r[1]?t(r[1]):a)},Sr=e=>"position"===e||"percentage"===e,Er=e=>"image"===e||"url"===e,Rr=e=>"length"===e||"size"===e||"bg-size"===e,Dr=e=>"length"===e,Mr=e=>"number"===e,Tr=e=>"family-name"===e,Pr=e=>"shadow"===e,Lr=Va((Symbol.toStringTag,()=>{const e=qa("color"),t=qa("font"),a=qa("text"),r=qa("font-weight"),s=qa("tracking"),n=qa("leading"),o=qa("breakpoint"),d=qa("container"),i=qa("spacing"),l=qa("radius"),c=qa("shadow"),u=qa("inset-shadow"),k=qa("text-shadow"),m=qa("drop-shadow"),h=qa("blur"),p=qa("perspective"),f=qa("aspect"),x=qa("ease"),g=qa("animate"),b=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom",gr,kr],y=()=>[gr,kr,i],w=()=>[er,"full","auto",...y()],v=()=>[ar,"none","subgrid",gr,kr],j=()=>["auto",{span:["full",ar,gr,kr]},ar,gr,kr],_=()=>[ar,"auto",gr,kr],N=()=>["auto","min","max","fr",gr,kr],C=()=>["auto",...y()],S=()=>[er,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...y()],E=()=>[e,gr,kr],R=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom",wr,pr,{position:[gr,kr]}],D=()=>["auto","cover","contain",vr,ur,{size:[gr,kr]}],M=()=>[rr,br,mr],T=()=>["","none","full",l,gr,kr],P=()=>["",tr,br,mr],L=()=>[tr,rr,wr,pr],z=()=>["","none",h,gr,kr],A=()=>["none",tr,gr,kr],$=()=>["none",tr,gr,kr],O=()=>[tr,gr,kr],F=()=>[er,"full",...y()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[sr],breakpoint:[sr],color:[nr],container:[sr],"drop-shadow":[sr],ease:["in","out","in-out"],font:[cr],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[sr],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[sr],shadow:[sr],spacing:["px",tr],text:[sr],"text-shadow":[sr],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",er,kr,gr,f]}],container:["container"],columns:[{columns:[tr,kr,gr,d]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:b()}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:w()}],"inset-x":[{"inset-x":w()}],"inset-y":[{"inset-y":w()}],start:[{start:w()}],end:[{end:w()}],top:[{top:w()}],right:[{right:w()}],bottom:[{bottom:w()}],left:[{left:w()}],visibility:["visible","invisible","collapse"],z:[{z:[ar,"auto",gr,kr]}],basis:[{basis:[er,"full","auto",d,...y()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[tr,er,"auto","initial","none",kr]}],grow:[{grow:["",tr,gr,kr]}],shrink:[{shrink:["",tr,gr,kr]}],order:[{order:[ar,"first","last","none",gr,kr]}],"grid-cols":[{"grid-cols":v()}],"col-start-end":[{col:j()}],"col-start":[{"col-start":_()}],"col-end":[{"col-end":_()}],"grid-rows":[{"grid-rows":v()}],"row-start-end":[{row:j()}],"row-start":[{"row-start":_()}],"row-end":[{"row-end":_()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":N()}],"auto-rows":[{"auto-rows":N()}],gap:[{gap:y()}],"gap-x":[{"gap-x":y()}],"gap-y":[{"gap-y":y()}],"justify-content":[{justify:["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe","normal"]}],"justify-items":[{"justify-items":["start","end","center","stretch","center-safe","end-safe","normal"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch","center-safe","end-safe"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"]}],"align-items":[{items:["start","end","center","stretch","center-safe","end-safe",{baseline:["","last"]}]}],"align-self":[{self:["auto","start","end","center","stretch","center-safe","end-safe",{baseline:["","last"]}]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"]}],"place-items":[{"place-items":["start","end","center","stretch","center-safe","end-safe","baseline"]}],"place-self":[{"place-self":["auto","start","end","center","stretch","center-safe","end-safe"]}],p:[{p:y()}],px:[{px:y()}],py:[{py:y()}],ps:[{ps:y()}],pe:[{pe:y()}],pt:[{pt:y()}],pr:[{pr:y()}],pb:[{pb:y()}],pl:[{pl:y()}],m:[{m:C()}],mx:[{mx:C()}],my:[{my:C()}],ms:[{ms:C()}],me:[{me:C()}],mt:[{mt:C()}],mr:[{mr:C()}],mb:[{mb:C()}],ml:[{ml:C()}],"space-x":[{"space-x":y()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":y()}],"space-y-reverse":["space-y-reverse"],size:[{size:S()}],w:[{w:[d,"screen",...S()]}],"min-w":[{"min-w":[d,"screen","none",...S()]}],"max-w":[{"max-w":[d,"screen","none","prose",{screen:[o]},...S()]}],h:[{h:["screen","lh",...S()]}],"min-h":[{"min-h":["screen","lh","none",...S()]}],"max-h":[{"max-h":["screen","lh",...S()]}],"font-size":[{text:["base",a,br,mr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,gr,hr]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",rr,kr]}],"font-family":[{font:[yr,kr,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[s,gr,kr]}],"line-clamp":[{"line-clamp":[tr,"none",gr,hr]}],leading:[{leading:[n,...y()]}],"list-image":[{"list-image":["none",gr,kr]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",gr,kr]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:E()}],"text-color":[{text:E()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","wavy"]}],"text-decoration-thickness":[{decoration:[tr,"from-font","auto",gr,mr]}],"text-decoration-color":[{decoration:E()}],"underline-offset":[{"underline-offset":[tr,"auto",gr,kr]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:y()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",gr,kr]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",gr,kr]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:R()}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","space","round"]}]}],"bg-size":[{bg:D()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},ar,gr,kr],radial:["",gr,kr],conic:[ar,gr,kr]},jr,fr]}],"bg-color":[{bg:E()}],"gradient-from-pos":[{from:M()}],"gradient-via-pos":[{via:M()}],"gradient-to-pos":[{to:M()}],"gradient-from":[{from:E()}],"gradient-via":[{via:E()}],"gradient-to":[{to:E()}],rounded:[{rounded:T()}],"rounded-s":[{"rounded-s":T()}],"rounded-e":[{"rounded-e":T()}],"rounded-t":[{"rounded-t":T()}],"rounded-r":[{"rounded-r":T()}],"rounded-b":[{"rounded-b":T()}],"rounded-l":[{"rounded-l":T()}],"rounded-ss":[{"rounded-ss":T()}],"rounded-se":[{"rounded-se":T()}],"rounded-ee":[{"rounded-ee":T()}],"rounded-es":[{"rounded-es":T()}],"rounded-tl":[{"rounded-tl":T()}],"rounded-tr":[{"rounded-tr":T()}],"rounded-br":[{"rounded-br":T()}],"rounded-bl":[{"rounded-bl":T()}],"border-w":[{border:P()}],"border-w-x":[{"border-x":P()}],"border-w-y":[{"border-y":P()}],"border-w-s":[{"border-s":P()}],"border-w-e":[{"border-e":P()}],"border-w-t":[{"border-t":P()}],"border-w-r":[{"border-r":P()}],"border-w-b":[{"border-b":P()}],"border-w-l":[{"border-l":P()}],"divide-x":[{"divide-x":P()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":P()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:["solid","dashed","dotted","double","hidden","none"]}],"divide-style":[{divide:["solid","dashed","dotted","double","hidden","none"]}],"border-color":[{border:E()}],"border-color-x":[{"border-x":E()}],"border-color-y":[{"border-y":E()}],"border-color-s":[{"border-s":E()}],"border-color-e":[{"border-e":E()}],"border-color-t":[{"border-t":E()}],"border-color-r":[{"border-r":E()}],"border-color-b":[{"border-b":E()}],"border-color-l":[{"border-l":E()}],"divide-color":[{divide:E()}],"outline-style":[{outline:["solid","dashed","dotted","double","none","hidden"]}],"outline-offset":[{"outline-offset":[tr,gr,kr]}],"outline-w":[{outline:["",tr,br,mr]}],"outline-color":[{outline:E()}],shadow:[{shadow:["","none",c,_r,xr]}],"shadow-color":[{shadow:E()}],"inset-shadow":[{"inset-shadow":["none",u,_r,xr]}],"inset-shadow-color":[{"inset-shadow":E()}],"ring-w":[{ring:P()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:E()}],"ring-offset-w":[{"ring-offset":[tr,mr]}],"ring-offset-color":[{"ring-offset":E()}],"inset-ring-w":[{"inset-ring":P()}],"inset-ring-color":[{"inset-ring":E()}],"text-shadow":[{"text-shadow":["none",k,_r,xr]}],"text-shadow-color":[{"text-shadow":E()}],opacity:[{opacity:[tr,gr,kr]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[tr]}],"mask-image-linear-from-pos":[{"mask-linear-from":L()}],"mask-image-linear-to-pos":[{"mask-linear-to":L()}],"mask-image-linear-from-color":[{"mask-linear-from":E()}],"mask-image-linear-to-color":[{"mask-linear-to":E()}],"mask-image-t-from-pos":[{"mask-t-from":L()}],"mask-image-t-to-pos":[{"mask-t-to":L()}],"mask-image-t-from-color":[{"mask-t-from":E()}],"mask-image-t-to-color":[{"mask-t-to":E()}],"mask-image-r-from-pos":[{"mask-r-from":L()}],"mask-image-r-to-pos":[{"mask-r-to":L()}],"mask-image-r-from-color":[{"mask-r-from":E()}],"mask-image-r-to-color":[{"mask-r-to":E()}],"mask-image-b-from-pos":[{"mask-b-from":L()}],"mask-image-b-to-pos":[{"mask-b-to":L()}],"mask-image-b-from-color":[{"mask-b-from":E()}],"mask-image-b-to-color":[{"mask-b-to":E()}],"mask-image-l-from-pos":[{"mask-l-from":L()}],"mask-image-l-to-pos":[{"mask-l-to":L()}],"mask-image-l-from-color":[{"mask-l-from":E()}],"mask-image-l-to-color":[{"mask-l-to":E()}],"mask-image-x-from-pos":[{"mask-x-from":L()}],"mask-image-x-to-pos":[{"mask-x-to":L()}],"mask-image-x-from-color":[{"mask-x-from":E()}],"mask-image-x-to-color":[{"mask-x-to":E()}],"mask-image-y-from-pos":[{"mask-y-from":L()}],"mask-image-y-to-pos":[{"mask-y-to":L()}],"mask-image-y-from-color":[{"mask-y-from":E()}],"mask-image-y-to-color":[{"mask-y-to":E()}],"mask-image-radial":[{"mask-radial":[gr,kr]}],"mask-image-radial-from-pos":[{"mask-radial-from":L()}],"mask-image-radial-to-pos":[{"mask-radial-to":L()}],"mask-image-radial-from-color":[{"mask-radial-from":E()}],"mask-image-radial-to-color":[{"mask-radial-to":E()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"]}],"mask-image-conic-pos":[{"mask-conic":[tr]}],"mask-image-conic-from-pos":[{"mask-conic-from":L()}],"mask-image-conic-to-pos":[{"mask-conic-to":L()}],"mask-image-conic-from-color":[{"mask-conic-from":E()}],"mask-image-conic-to-color":[{"mask-conic-to":E()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:R()}],"mask-repeat":[{mask:["no-repeat",{repeat:["","x","y","space","round"]}]}],"mask-size":[{mask:D()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",gr,kr]}],filter:[{filter:["","none",gr,kr]}],blur:[{blur:z()}],brightness:[{brightness:[tr,gr,kr]}],contrast:[{contrast:[tr,gr,kr]}],"drop-shadow":[{"drop-shadow":["","none",m,_r,xr]}],"drop-shadow-color":[{"drop-shadow":E()}],grayscale:[{grayscale:["",tr,gr,kr]}],"hue-rotate":[{"hue-rotate":[tr,gr,kr]}],invert:[{invert:["",tr,gr,kr]}],saturate:[{saturate:[tr,gr,kr]}],sepia:[{sepia:["",tr,gr,kr]}],"backdrop-filter":[{"backdrop-filter":["","none",gr,kr]}],"backdrop-blur":[{"backdrop-blur":z()}],"backdrop-brightness":[{"backdrop-brightness":[tr,gr,kr]}],"backdrop-contrast":[{"backdrop-contrast":[tr,gr,kr]}],"backdrop-grayscale":[{"backdrop-grayscale":["",tr,gr,kr]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[tr,gr,kr]}],"backdrop-invert":[{"backdrop-invert":["",tr,gr,kr]}],"backdrop-opacity":[{"backdrop-opacity":[tr,gr,kr]}],"backdrop-saturate":[{"backdrop-saturate":[tr,gr,kr]}],"backdrop-sepia":[{"backdrop-sepia":["",tr,gr,kr]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":y()}],"border-spacing-x":[{"border-spacing-x":y()}],"border-spacing-y":[{"border-spacing-y":y()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",gr,kr]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[tr,"initial",gr,kr]}],ease:[{ease:["linear","initial",x,gr,kr]}],delay:[{delay:[tr,gr,kr]}],animate:[{animate:["none",g,gr,kr]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[p,gr,kr]}],"perspective-origin":[{"perspective-origin":b()}],rotate:[{rotate:A()}],"rotate-x":[{"rotate-x":A()}],"rotate-y":[{"rotate-y":A()}],"rotate-z":[{"rotate-z":A()}],scale:[{scale:$()}],"scale-x":[{"scale-x":$()}],"scale-y":[{"scale-y":$()}],"scale-z":[{"scale-z":$()}],"scale-3d":["scale-3d"],skew:[{skew:O()}],"skew-x":[{"skew-x":O()}],"skew-y":[{"skew-y":O()}],transform:[{transform:[gr,kr,"","none","gpu","cpu"]}],"transform-origin":[{origin:b()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:F()}],"translate-x":[{"translate-x":F()}],"translate-y":[{"translate-y":F()}],"translate-z":[{"translate-z":F()}],"translate-none":["translate-none"],accent:[{accent:E()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:E()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",gr,kr]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":y()}],"scroll-mx":[{"scroll-mx":y()}],"scroll-my":[{"scroll-my":y()}],"scroll-ms":[{"scroll-ms":y()}],"scroll-me":[{"scroll-me":y()}],"scroll-mt":[{"scroll-mt":y()}],"scroll-mr":[{"scroll-mr":y()}],"scroll-mb":[{"scroll-mb":y()}],"scroll-ml":[{"scroll-ml":y()}],"scroll-p":[{"scroll-p":y()}],"scroll-px":[{"scroll-px":y()}],"scroll-py":[{"scroll-py":y()}],"scroll-ps":[{"scroll-ps":y()}],"scroll-pe":[{"scroll-pe":y()}],"scroll-pt":[{"scroll-pt":y()}],"scroll-pr":[{"scroll-pr":y()}],"scroll-pb":[{"scroll-pb":y()}],"scroll-pl":[{"scroll-pl":y()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",gr,kr]}],fill:[{fill:["none",...E()]}],"stroke-w":[{stroke:[tr,br,mr,hr]}],stroke:[{stroke:["none",...E()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}})),zr=(...e)=>Lr(e),Ar=window.ReactJSXRuntime,$r=({className:e})=>{const a=_t(),r=a?.status||null,n=a?.message||(0,ka.__)("An unexpected error occurred. Please try again or return to the dashboard.","dokan-kits");return(0,Ar.jsxs)("div",{className:zr("dokan-kits-error-boundary dk-min-h-[500px] dk-flex dk-flex-col dk-items-center dk-justify-center dk-p-wp-8 dk-text-center dk-bg-white dk-shadow-lg dk-rounded-lg dk-max-w-5xl dk-mx-auto dk-my-wp-8 dk-border dk-border-gray-100",e),children:[(0,Ar.jsx)("div",{className:"dk-flex dk-justify-center dk-items-center dk-mb-wp-6",children:(0,Ar.jsx)("div",{className:"dk-relative dk-flex dk-items-center dk-justify-center dk-h-32 dk-w-32 dk-rounded-full dk-bg-gradient-to-br dk-from-red-50 dk-via-red-100 dk-to-red-50 dk-border-4 dk-border-red-200 dk-shadow-md",children:(0,s.createElement)((()=>{let e=ba;return 404===r?e=ya:403===r?e=wa:r>=500&&(e=va),e})(),{className:"dk-w-20 dk-h-20 dk-text-red-600 dk-animate-pulse","aria-hidden":"true"})})}),(0,Ar.jsx)("h1",{className:"dk-text-3xl dk-font-bold dk-text-gray-900 dk-mb-wp-3",children:r?(0,ka.__)(`Error ${r}`,"dokan-kits"):(0,ka.__)("Oops! Something went wrong","dokan-kits")}),(0,Ar.jsx)("p",{className:"dk-text-lg dk-text-gray-600 dk-mb-wp-6 dk-max-w-2xl",children:404===r?(0,ka.__)("The page you were looking for does not exist or has been moved.","dokan-kits"):(0,ka.__)("We encountered an error while trying to process your request.","dokan-kits")}),(0,Ar.jsx)("div",{className:"dk-max-w-2xl dk-w-full dk-text-left dk-mb-wp-8",children:(0,Ar.jsx)("div",{className:"dk-p-wp-5 dk-bg-red-50 dk-rounded-lg dk-border dk-border-red-200 dk-shadow-sm",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-items-start",children:[(0,Ar.jsx)(ja,{className:"dk-h-5 dk-w-5 dk-mr-wp-3 dk-text-red-600 dk-mt-wp-1"}),(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)("h2",{className:"dk-font-semibold dk-mb-wp-2 dk-text-red-800 dk-flex dk-items-center",children:(0,ka.__)("Error Details","dokan-kits")}),(0,Ar.jsx)("p",{className:"dk-text-red-700",children:n})]})]})})}),(0,Ar.jsx)("div",{className:"dk-max-w-2xl dk-w-full dk-text-left dk-mb-wp-8",children:(0,Ar.jsx)("div",{className:"dk-p-wp-5 dk-bg-blue-50 dk-rounded-lg dk-border dk-border-blue-200 dk-shadow-sm",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-items-start",children:[(0,Ar.jsx)(_a,{className:"dk-h-5 dk-w-5 dk-mr-wp-3 dk-text-blue-600 dk-mt-wp-1"}),(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)("h2",{className:"dk-font-semibold dk-mb-wp-2 dk-text-blue-800 dk-flex dk-items-center",children:(0,ka.__)("Troubleshooting Steps","dokan-kits")}),(0,Ar.jsx)("ul",{className:"dk-list-disc dk-pl-wp-5 dk-space-y-wp-1 dk-text-blue-700",children:(()=>{const e=[(0,ka.__)("Refresh the page and try again.","dokan-kits"),(0,ka.__)("Clear your browser cache and cookies.","dokan-kits"),(0,ka.__)("Try accessing the page in a private/incognito window.","dokan-kits")];return 404===r?e.push((0,ka.__)("Check if the URL is correct.","dokan-kits")):403===r?e.push((0,ka.__)("Verify you have the necessary permissions.","dokan-kits")):r>=500&&e.push((0,ka.__)("Contact your server administrator to check server logs.","dokan-kits")),e})().map((e,t)=>(0,Ar.jsx)("li",{children:e},t))})]})]})})}),(0,Ar.jsxs)("div",{className:"dk-flex dk-flex-wrap dk-items-center dk-justify-center dk-gap-wp-4 dk-mb-wp-8",children:[(0,Ar.jsxs)(na,{to:"/",className:"dk-admin-button dk-bg-primary-600 hover:dk-bg-primary-700 dk-text-white dk-flex dk-items-center dk-px-wp-6 dk-py-wp-3 dk-gap-wp-2 dk-rounded dk-transition dk-duration-200",children:[(0,Ar.jsx)(Na,{className:"dk-h-4 dk-w-4 dk-mr-wp-1"}),(0,ka.__)("Back to Dashboard","dokan-kits")]}),(0,Ar.jsxs)(t.Button,{variant:"secondary",onClick:()=>window.location.reload(),className:"dk-admin-button dk-admin-button-secondary dk-flex dk-items-center dk-gap-wp-2 dk-px-wp-6 dk-py-wp-3",children:[(0,Ar.jsx)(Ca,{className:"dk-h-4 dk-w-4 dk-mr-wp-1"}),(0,ka.__)("Reload Page","dokan-kits")]})]}),(0,Ar.jsx)("div",{className:"dk-mt-wp-4 dk-max-w-2xl dk-w-full",children:(0,Ar.jsx)("div",{className:"dk-p-wp-5 dk-bg-yellow-50 dk-rounded-lg dk-border dk-border-yellow-200 dk-shadow-sm",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-items-start",children:[(0,Ar.jsx)("div",{className:"dk-flex-shrink-0 dk-mr-wp-4",children:(0,Ar.jsx)(va,{className:"dk-h-6 dk-w-6 dk-text-yellow-600"})}),(0,Ar.jsxs)("div",{className:"dk-text-left",children:[(0,Ar.jsx)("h3",{className:"dk-text-lg dk-font-semibold dk-text-yellow-800 dk-mb-wp-2",children:(0,ka.__)("Need Help?","dokan-kits")}),(0,Ar.jsx)("p",{className:"dk-text-yellow-700 dk-mb-wp-3",children:(0,ka.__)("If this problem persists, please contact our support team with the error details shown above.","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-flex dk-gap-wp-4",children:[(0,Ar.jsxs)("a",{href:"https://wordpress.org/support/plugin/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-warning dk-flex dk-items-center dk-gap-wp-2",children:[(0,Ar.jsx)(Sa,{className:"dk-h-4 dk-w-4 dk-mr-wp-1"}),(0,ka.__)("Get Support","dokan-kits")]}),(0,Ar.jsxs)("a",{href:"https://wordpress.org/plugins/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-secondary dk-flex dk-items-center dk-gap-wp-2",children:[(0,Ar.jsx)(Ea,{className:"dk-h-4 dk-w-4 dk-mr-wp-1"}),(0,ka.__)("View Documentation","dokan-kits")]})]})]})]})})}),!1]})},Or=ga("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]),Fr=({message:e=(0,ka.__)("Loading…","dokan-kits"),className:t})=>(0,Ar.jsxs)("div",{className:zr("dk-flex dk-flex-col dk-items-center dk-justify-center dk-p-wp-8 dk-min-h-[300px]",t),children:[(0,Ar.jsx)("div",{className:"dk-inline-block dk-h-10 dk-w-10 dk-text-primary-600 dk-mb-wp-4",children:(0,Ar.jsx)(Or,{className:"dk-h-10 dk-w-10 dk-animate-spin"})}),(0,Ar.jsx)("p",{className:"dk-text-gray-600 dk-text-center dk-animate-pulse",children:e})]});let Br={data:""},Ir=e=>"object"==typeof window?((e?e.querySelector("#_goober"):window._goober)||Object.assign((e||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:e||Br,Ur=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,Hr=/\/\*[^]*?\*\/| +/g,Vr=/\n+/g,qr=(e,t)=>{let a="",r="",s="";for(let n in e){let o=e[n];"@"==n[0]?"i"==n[1]?a=n+" "+o+";":r+="f"==n[1]?qr(o,n):n+"{"+qr(o,"k"==n[1]?"":t)+"}":"object"==typeof o?r+=qr(o,t?t.replace(/([^,])+/g,e=>n.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+" "+t:t)):n):null!=o&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,"-$&").toLowerCase(),s+=qr.p?qr.p(n,o):n+":"+o+";")}return a+(t&&s?t+"{"+s+"}":s)+r},Wr={},Kr=e=>{if("object"==typeof e){let t="";for(let a in e)t+=a+Kr(e[a]);return t}return e},Gr=(e,t,a,r,s)=>{let n=Kr(e),o=Wr[n]||(Wr[n]=(e=>{let t=0,a=11;for(;t<e.length;)a=101*a+e.charCodeAt(t++)>>>0;return"go"+a})(n));if(!Wr[o]){let t=n!==e?e:(e=>{let t,a,r=[{}];for(;t=Ur.exec(e.replace(Hr,""));)t[4]?r.shift():t[3]?(a=t[3].replace(Vr," ").trim(),r.unshift(r[0][a]=r[0][a]||{})):r[0][t[1]]=t[2].replace(Vr," ").trim();return r[0]})(e);Wr[o]=qr(s?{["@keyframes "+o]:t}:t,a?"":"."+o)}let d=a&&Wr.g?Wr.g:null;return a&&(Wr.g=Wr[o]),((e,t,a,r)=>{r?t.data=t.data.replace(r,e):-1===t.data.indexOf(e)&&(t.data=a?e+t.data:t.data+e)})(Wr[o],t,r,d),o};function Yr(e){let t=this||{},a=e.call?e(t.p):e;return Gr(a.unshift?a.raw?((e,t,a)=>e.reduce((e,r,s)=>{let n=t[s];if(n&&n.call){let e=n(a),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?"."+t:e&&"object"==typeof e?e.props?"":qr(e,""):!1===e?"":e}return e+r+(null==n?"":n)},""))(a,[].slice.call(arguments,1),t.p):a.reduce((e,a)=>Object.assign(e,a&&a.call?a(t.p):a),{}):a,Ir(t.target),t.g,t.o,t.k)}Yr.bind({g:1});let Jr,Zr,Xr,Qr=Yr.bind({k:1});function es(e,t){let a=this||{};return function(){let r=arguments;function s(n,o){let d=Object.assign({},n),i=d.className||s.className;a.p=Object.assign({theme:Zr&&Zr()},d),a.o=/ *go\d+/.test(i),d.className=Yr.apply(a,r)+(i?" "+i:""),t&&(d.ref=o);let l=e;return e[0]&&(l=d.as||e,delete d.as),Xr&&l[0]&&Xr(d),Jr(l,d)}return t?t(s):s}}var ts=(e,t)=>(e=>"function"==typeof e)(e)?e(t):e,as=(()=>{let e=0;return()=>(++e).toString()})(),rs=(()=>{let e;return()=>{if(void 0===e&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),ss=(e,t)=>{switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,20)};case 1:return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case 2:let{toast:a}=t;return ss(e,{type:e.toasts.find(e=>e.id===a.id)?1:0,toast:a});case 3:let{toastId:r}=t;return{...e,toasts:e.toasts.map(e=>e.id===r||void 0===r?{...e,dismissed:!0,visible:!1}:e)};case 4:return void 0===t.toastId?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let s=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(e=>({...e,pauseDuration:e.pauseDuration+s}))}}},ns=[],os={toasts:[],pausedAt:void 0},ds=e=>{os=ss(os,e),ns.forEach(e=>{e(os)})},is={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},ls=e=>(t,a)=>{let r=((e,t="blank",a)=>({createdAt:Date.now(),visible:!0,dismissed:!1,type:t,ariaProps:{role:"status","aria-live":"polite"},message:e,pauseDuration:0,...a,id:(null==a?void 0:a.id)||as()}))(t,e,a);return ds({type:2,toast:r}),r.id},cs=(e,t)=>ls("blank")(e,t);cs.error=ls("error"),cs.success=ls("success"),cs.loading=ls("loading"),cs.custom=ls("custom"),cs.dismiss=e=>{ds({type:3,toastId:e})},cs.remove=e=>ds({type:4,toastId:e}),cs.promise=(e,t,a)=>{let r=cs.loading(t.loading,{...a,...null==a?void 0:a.loading});return"function"==typeof e&&(e=e()),e.then(e=>{let s=t.success?ts(t.success,e):void 0;return s?cs.success(s,{id:r,...a,...null==a?void 0:a.success}):cs.dismiss(r),e}).catch(e=>{let s=t.error?ts(t.error,e):void 0;s?cs.error(s,{id:r,...a,...null==a?void 0:a.error}):cs.dismiss(r)}),e};var us=(e,t)=>{ds({type:1,toast:{id:e,height:t}})},ks=()=>{ds({type:5,time:Date.now()})},ms=new Map,hs=Qr` 2 2 from { 3 3 transform: scale(0) rotate(45deg); … … 7 7 transform: scale(1) rotate(45deg); 8 8 opacity: 1; 9 }`, hs=Xr`9 }`,ps=Qr` 10 10 from { 11 11 transform: scale(0); … … 15 15 transform: scale(1); 16 16 opacity: 1; 17 }`, ps=Xr`17 }`,fs=Qr` 18 18 from { 19 19 transform: scale(0) rotate(90deg); … … 23 23 transform: scale(1) rotate(90deg); 24 24 opacity: 1; 25 }`, fs=Qr("div")`25 }`,xs=es("div")` 26 26 width: 20px; 27 27 opacity: 0; … … 32 32 transform: rotate(45deg); 33 33 34 animation: ${ ms} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)34 animation: ${hs} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 35 35 forwards; 36 36 animation-delay: 100ms; … … 39 39 &:before { 40 40 content: ''; 41 animation: ${ hs} 0.15s ease-out forwards;41 animation: ${ps} 0.15s ease-out forwards; 42 42 animation-delay: 150ms; 43 43 position: absolute; … … 52 52 53 53 &:before { 54 animation: ${ ps} 0.15s ease-out forwards;54 animation: ${fs} 0.15s ease-out forwards; 55 55 animation-delay: 180ms; 56 56 transform: rotate(90deg); 57 57 } 58 `, xs=Xr`58 `,gs=Qr` 59 59 from { 60 60 transform: rotate(0deg); … … 63 63 transform: rotate(360deg); 64 64 } 65 `, gs=Qr("div")`65 `,bs=es("div")` 66 66 width: 12px; 67 67 height: 12px; … … 71 71 border-color: ${e=>e.secondary||"#e0e0e0"}; 72 72 border-right-color: ${e=>e.primary||"#616161"}; 73 animation: ${ xs} 1s linear infinite;74 `, bs=Xr`73 animation: ${gs} 1s linear infinite; 74 `,ys=Qr` 75 75 from { 76 76 transform: scale(0) rotate(45deg); … … 80 80 transform: scale(1) rotate(45deg); 81 81 opacity: 1; 82 }`, ys=Xr`82 }`,ws=Qr` 83 83 0% { 84 84 height: 0; … … 94 94 opacity: 1; 95 95 height: 10px; 96 }`, ws=Qr("div")`96 }`,vs=es("div")` 97 97 width: 20px; 98 98 opacity: 0; … … 103 103 transform: rotate(45deg); 104 104 105 animation: ${ bs} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)105 animation: ${ys} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 106 106 forwards; 107 107 animation-delay: 100ms; … … 109 109 content: ''; 110 110 box-sizing: border-box; 111 animation: ${ ys} 0.2s ease-out forwards;111 animation: ${ws} 0.2s ease-out forwards; 112 112 opacity: 0; 113 113 animation-delay: 200ms; … … 121 121 width: 6px; 122 122 } 123 `, vs=Qr("div")`123 `,js=es("div")` 124 124 position: absolute; 125 `, js=Qr("div")`125 `,_s=es("div")` 126 126 position: relative; 127 127 display: flex; … … 130 130 min-width: 20px; 131 131 min-height: 20px; 132 `, _s=Xr`132 `,Ns=Qr` 133 133 from { 134 134 transform: scale(0.6); … … 138 138 transform: scale(1); 139 139 opacity: 1; 140 }`, Ns=Qr("div")`140 }`,Cs=es("div")` 141 141 position: relative; 142 142 transform: scale(0.6); 143 143 opacity: 0.4; 144 144 min-width: 20px; 145 animation: ${ _s} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275)145 animation: ${Ns} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) 146 146 forwards; 147 `, Cs=({toast:e})=>{let{icon:t,type:a,iconTheme:r}=e;return void 0!==t?"string"==typeof t?o.createElement(Ns,null,t):t:"blank"===a?null:o.createElement(js,null,o.createElement(gs,{...r}),"loading"!==a&&o.createElement(vs,null,"error"===a?o.createElement(fs,{...r}):o.createElement(ws,{...r})))},Ss=e=>`\n0% {transform: translate3d(0,${-200*e}%,0) scale(.6); opacity:.5;}\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\n`,Es=e=>`\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${-150*e}%,-1px) scale(.6); opacity:0;}\n`,Rs=Qr("div")`147 `,Ss=({toast:e})=>{let{icon:t,type:a,iconTheme:r}=e;return void 0!==t?"string"==typeof t?o.createElement(Cs,null,t):t:"blank"===a?null:o.createElement(_s,null,o.createElement(bs,{...r}),"loading"!==a&&o.createElement(js,null,"error"===a?o.createElement(xs,{...r}):o.createElement(vs,{...r})))},Es=e=>`\n0% {transform: translate3d(0,${-200*e}%,0) scale(.6); opacity:.5;}\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\n`,Rs=e=>`\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${-150*e}%,-1px) scale(.6); opacity:0;}\n`,Ds=es("div")` 148 148 display: flex; 149 149 align-items: center; … … 157 157 padding: 8px 10px; 158 158 border-radius: 8px; 159 `, Ds=Qr("div")`159 `,Ms=es("div")` 160 160 display: flex; 161 161 justify-content: center; … … 164 164 flex: 1 1 auto; 165 165 white-space: pre-line; 166 `, Ms=o.memo(({toast:e,position:t,style:a,children:r})=>{let s=e.height?((e,t)=>{let a=e.includes("top")?1:-1,[r,s]=as()?["0%{opacity:0;} 100%{opacity:1;}","0%{opacity:1;} 100%{opacity:0;}"]:[Ss(a),Es(a)];return{animation:t?`${Xr(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${Xr(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}})(e.position||t||"top-center",e.visible):{opacity:0},n=o.createElement(Cs,{toast:e}),d=o.createElement(Ds,{...e.ariaProps},es(e.message,e));return o.createElement(Rs,{className:e.className,style:{...s,...a,...e.style}},"function"==typeof r?r({icon:n,message:d}):o.createElement(o.Fragment,null,n,d))});!function(e){Vr.p=void 0,Yr=e,Jr=void 0,Zr=void 0}(o.createElement);var Ts=({id:e,className:t,style:a,onHeightUpdate:r,children:s})=>{let n=o.useCallback(t=>{if(t){let a=()=>{let a=t.getBoundingClientRect().height;r(e,a)};a(),new MutationObserver(a).observe(t,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return o.createElement("div",{ref:n,className:t,style:a},s)},Ps=Gr`166 `,Ts=o.memo(({toast:e,position:t,style:a,children:r})=>{let s=e.height?((e,t)=>{let a=e.includes("top")?1:-1,[r,s]=rs()?["0%{opacity:0;} 100%{opacity:1;}","0%{opacity:1;} 100%{opacity:0;}"]:[Es(a),Rs(a)];return{animation:t?`${Qr(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${Qr(s)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}})(e.position||t||"top-center",e.visible):{opacity:0},n=o.createElement(Ss,{toast:e}),d=o.createElement(Ms,{...e.ariaProps},ts(e.message,e));return o.createElement(Ds,{className:e.className,style:{...s,...a,...e.style}},"function"==typeof r?r({icon:n,message:d}):o.createElement(o.Fragment,null,n,d))});!function(e){qr.p=void 0,Jr=e,Zr=void 0,Xr=void 0}(o.createElement);var Ps=({id:e,className:t,style:a,onHeightUpdate:r,children:s})=>{let n=o.useCallback(t=>{if(t){let a=()=>{let a=t.getBoundingClientRect().height;r(e,a)};a(),new MutationObserver(a).observe(t,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return o.createElement("div",{ref:n,className:t,style:a},s)},Ls=Yr` 167 167 z-index: 9999; 168 168 > * { 169 169 pointer-events: auto; 170 170 } 171 `, Ls=({reverseOrder:e,position:t="top-center",toastOptions:a,gutter:r,children:s,containerStyle:n,containerClassName:d})=>{let{toasts:i,handlers:l}=(e=>{let{toasts:t,pausedAt:a}=((e={})=>{let[t,a]=(0,o.useState)(ns),r=(0,o.useRef)(ns);(0,o.useEffect)(()=>(r.current!==ns&&a(ns),ss.push(a),()=>{let e=ss.indexOf(a);e>-1&&ss.splice(e,1)}),[]);let s=t.toasts.map(t=>{var a,r,s;return{...e,...e[t.type],...t,removeDelay:t.removeDelay||(null==(a=e[t.type])?void 0:a.removeDelay)||(null==e?void 0:e.removeDelay),duration:t.duration||(null==(r=e[t.type])?void 0:r.duration)||(null==e?void 0:e.duration)||ds[t.type],style:{...e.style,...null==(s=e[t.type])?void 0:s.style,...t.style}}});return{...t,toasts:s}})(e);(0,o.useEffect)(()=>{if(a)return;let e=Date.now(),r=t.map(t=>{if(t.duration===1/0)return;let a=(t.duration||0)+t.pauseDuration-(e-t.createdAt);if(!(a<0))return setTimeout(()=>ls.dismiss(t.id),a);t.visible&&ls.dismiss(t.id)});return()=>{r.forEach(e=>e&&clearTimeout(e))}},[t,a]);let r=(0,o.useCallback)(()=>{a&&os({type:6,time:Date.now()})},[a]),s=(0,o.useCallback)((e,a)=>{let{reverseOrder:r=!1,gutter:s=8,defaultPosition:n}=a||{},o=t.filter(t=>(t.position||n)===(e.position||n)&&t.height),d=o.findIndex(t=>t.id===e.id),i=o.filter((e,t)=>t<d&&e.visible).length;return o.filter(e=>e.visible).slice(...r?[i+1]:[0,i]).reduce((e,t)=>e+(t.height||0)+s,0)},[t]);return(0,o.useEffect)(()=>{t.forEach(e=>{if(e.dismissed)((e,t=1e3)=>{if(ks.has(e))return;let a=setTimeout(()=>{ks.delete(e),os({type:4,toastId:e})},t);ks.set(e,a)})(e.id,e.removeDelay);else{let t=ks.get(e.id);t&&(clearTimeout(t),ks.delete(e.id))}})},[t]),{toasts:t,handlers:{updateHeight:cs,startPause:us,endPause:r,calculateOffset:s}}})(a);return o.createElement("div",{id:"_rht_toaster",style:{position:"fixed",zIndex:9999,top:16,left:16,right:16,bottom:16,pointerEvents:"none",...n},className:d,onMouseEnter:l.startPause,onMouseLeave:l.endPause},i.map(a=>{let n=a.position||t,d=((e,t)=>{let a=e.includes("top"),r=a?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:as()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(a?1:-1)}px)`,...r,...s}})(n,l.calculateOffset(a,{reverseOrder:e,gutter:r,defaultPosition:t}));return o.createElement(Ts,{id:a.id,key:a.id,onHeightUpdate:l.updateHeight,className:a.visible?Ps:"",style:d},"custom"===a.type?es(a.message,a):s?s(a):o.createElement(Ms,{toast:a,position:n}))}))},zs=ls;const As=xa("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]),$s=({t:e,message:t,type:a,onClose:r,showCloseButton:s=!0})=>{const n={success:(0,zr.jsx)(As,{className:"dk-w-wp-5 dk-h-wp-5 dk-text-primary-600"}),error:(0,zr.jsx)(wa,{className:"dk-w-wp-5 dk-h-wp-5 dk-text-red-500"}),warning:(0,zr.jsx)(ga,{className:"dk-w-wp-5 dk-h-wp-5 dk-text-yellow-500"}),info:(0,zr.jsx)(va,{className:"dk-w-wp-5 dk-h-wp-5 dk-text-blue-500"})};return(0,zr.jsxs)("div",{className:Lr("dk-flex dk-items-start dk-p-wp-4 dk-rounded-md dk-border dk-shadow-wp-card dk-min-w-[320px] dk-max-w-md","dk-transform dk-transition-all dk-duration-300 dk-ease-in-out",{success:"dk-border-primary-200 dk-bg-primary-50",error:"dk-border-red-200 dk-bg-red-50",warning:"dk-border-yellow-200 dk-bg-yellow-50",info:"dk-border-blue-200 dk-bg-blue-50"}[a],e.visible?"dk-animate-in dk-slide-in-from-top-2 dk-fade-in":"dk-animate-out dk-slide-out-to-top-2 dk-fade-out"),children:[(0,zr.jsx)("div",{className:"dk-flex-shrink-0 dk-mr-wp-3",children:n[a]}),(0,zr.jsx)("div",{className:"dk-flex-1 dk-min-w-0",children:(0,zr.jsx)("div",{className:Lr("dk-text-admin-sm dk-font-medium dk-leading-5",{success:"dk-text-primary-800",error:"dk-text-red-800",warning:"dk-text-yellow-800",info:"dk-text-blue-800"}[a]),children:t})}),s&&(0,zr.jsx)("div",{className:"dk-flex-shrink-0 dk-ml-wp-4",children:(0,zr.jsx)("button",{type:"button",className:Lr("dk-inline-flex dk-rounded-md dk-p-1.5 dk-transition-colors dk-focus:outline-none dk-focus:ring-2 dk-focus:ring-offset-2",{success:"dk-text-primary-400 hover:dk-text-primary-500 dk-focus:ring-primary-600",error:"dk-text-red-400 hover:dk-text-red-500 dk-focus:ring-red-600",warning:"dk-text-yellow-400 hover:dk-text-yellow-500 dk-focus:ring-yellow-600",info:"dk-text-blue-400 hover:dk-text-blue-500 dk-focus:ring-blue-600"}[a]),onClick:r,"aria-label":(0,ua.__)("Dismiss notification","dokan-kits"),children:(0,zr.jsx)(ba,{className:"dk-w-wp-4 dk-h-wp-4"})})})]})},Os="success",Fs="error",Bs=(0,s.createContext)({notices:[],addNotice:()=>{},removeNotice:()=>{},clearNotices:()=>{}}),Is=({children:e})=>{const[t,a]=(0,s.useState)([]),r=(0,s.useCallback)((e,t="info",r={})=>{const s=`notice-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,{isDismissible:n=!0,duration:o=5e3,position:d="top-right"}=r,i={id:s,message:e,type:t,isDismissible:n,duration:o,position:d,timestamp:Date.now()};return a(a=>{const r=a.find(a=>a.message===e&&a.type===t);return r?a:[...a,i]}),s},[]),n={notices:t,addNotice:r,removeNotice:(0,s.useCallback)(e=>{a(t=>t.filter(t=>t.id!==e))},[]),clearNotices:(0,s.useCallback)(()=>{a([])},[])};return(0,zr.jsx)(Bs.Provider,{value:n,children:e})},Us=()=>{const e=(0,s.useContext)(Bs);if(void 0===e)throw new Error("useNotices must be used within a NoticesProvider");return e},Hs=()=>{const{notices:e,removeNotice:t}=Us(),a=(0,s.useRef)(new Set);return(0,s.useEffect)(()=>{e.forEach(e=>{if(a.current.has(e.id))return;a.current.add(e.id);let r=e.duration||5e3;"error"===e.type&&(r=e.duration||8e3),e.isDismissible||(r=1/0),zs.custom(r=>(0,zr.jsx)($s,{t:r,message:e.message,type:e.type,onClose:()=>{zs.dismiss(r.id),t(e.id),a.current.delete(e.id)}}),{id:e.id,duration:r,position:e.position||"top-right"}),e.isDismissible&&r!==1/0&&setTimeout(()=>{t(e.id),a.current.delete(e.id)},r)});const r=new Set(e.map(e=>e.id));for(const e of a.current)r.has(e)||a.current.delete(e)},[e,t]),(0,s.useEffect)(()=>()=>{a.current.clear()},[]),(0,zr.jsx)(Ls,{position:"top-right",gutter:12,containerClassName:"dk-toast-container",containerStyle:{top:"var(--wp-admin--admin-bar--height, 46px)"},toastOptions:{className:"dk-toast",duration:5e3,style:{background:"transparent",boxShadow:"none",padding:0}}})},Vs=e.p+"images/dokan-kits-logo.png",qs=xa("crown",[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]]),Ws=xa("settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),Ks=xa("palette",[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]),Gs=()=>{const e=lt(),t="loading"===wt("useNavigation").navigation.state,a=window.Dokan_Kits||{};(0,s.useEffect)(()=>{const t={"/":(0,ua.__)("Dashboard","dokan-kits"),"/features":(0,ua.__)("Features","dokan-kits"),"/about":(0,ua.__)("About","dokan-kits"),"/tools":(0,ua.__)("Tools","dokan-kits"),"/tailwind-demo":(0,ua.__)("Tailwind Merge Demo","dokan-kits")}[e.pathname];if(document.title=(0,ua.sprintf)(/* translators: %s: Page title */ /* translators: %s: Page title */172 (0, ua.__)("%s - Dokan Kits","dokan-kits"),null!=t?t:(0,ua.__)("Dashboard","dokan-kits")),"undefined"!=typeof document){const t=document.querySelectorAll("#toplevel_page_dokan-kits .wp-submenu li");t.forEach(e=>{e.classList.remove("current")});const a={"/":1,"/features":2,"/about":3,"/tools":4,"/tailwind-demo":5}[e.pathname];void 0!==a&&t[a]&&t[a].classList.add("current")}},[e]);const r=({isActive:e})=>Lr("dk-inline-flex dk-items-center dk-px-wp-1 dk-py-wp-4 dk-text-sm dk-font-medium dk-border-b-2 !dk-shadow-none !dk-outline-none",e?"dk-border-primary-500 dk-text-primary-600":"dk-border-transparent dk-text-gray-500 hover:dk-text-gray-700 hover:dk-border-gray-300");return(0,zr.jsxs)("div",{className:"dokan-kits-app-wrapper",children:[(0,zr.jsx)("div",{className:"dokan-kits-app-header dk-bg-white dk-border-b dk-border-gray-200 dk-mb-wp-6",children:(0,zr.jsxs)("div",{className:"dk-container dk-mx-auto dk-px-wp-4",children:[(0,zr.jsxs)("div",{className:"dk-flex dk-items-center dk-justify-between dk-pt-wp-4",children:[(0,zr.jsxs)("div",{className:"dk-flex dk-items-center",children:[(0,zr.jsx)("img",{src:Vs,alt:"Dokan Kits",className:"dk-h-20 dk-w-auto dk-mr-wp-3"}),(0,zr.jsx)("h1",{className:"dk-text-xl dk-font-medium dk-text-gray-900",children:(0,ua.__)("Dokan Kits","dokan-kits")})]}),(0,zr.jsxs)("div",{className:"dk-flex dk-items-center dk-space-x-wp-2",children:[(0,zr.jsxs)("a",{href:a.pageUrls.add_ons,target:"_self",rel:"noopener noreferrer",className:"dk-admin-button dk-gap-2",children:[(0,zr.jsx)(qs,{className:"dk-h-4 dk-w-4"}),(0,zr.jsx)("span",{className:"dk-text-sm",children:(0,ua.__)("Get Add-Ons","dokan-kits")})]}),(0,zr.jsx)("a",{href:"https://wordpress.org/support/plugin/dokan-kits/#new-topic-0",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-secondary dk-text-sm",children:(0,ua.__)("Support","dokan-kits")}),(0,zr.jsx)("a",{href:"https://wordpress.org/plugins/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-secondary dk-text-sm",children:(0,ua.__)("Documentation","dokan-kits")})]})]}),(0,zr.jsxs)("nav",{className:"dk-flex dk-space-x-wp-6 dk--mb-px",children:[(0,zr.jsxs)(na,{to:"/",end:!0,className:r,children:[(0,zr.jsx)(_a,{className:"dk-h-4 dk-w-4 dk-mr-wp-2"}),(0,ua.__)("Dashboard","dokan-kits")]}),(0,zr.jsxs)(na,{to:"/features",className:r,children:[(0,zr.jsx)(Ws,{className:"dk-h-4 dk-w-4 dk-mr-wp-2"}),(0,ua.__)("Features","dokan-kits")]}),(0,zr.jsxs)(na,{to:"/about",className:r,children:[(0,zr.jsx)(va,{className:"dk-h-4 dk-w-4 dk-mr-wp-2"}),(0,ua.__)("About","dokan-kits")]}),(0,zr.jsxs)(na,{to:"/tools",className:r,children:[(0,zr.jsx)(ja,{className:"dk-h-4 dk-w-4 dk-mr-wp-2"}),(0,ua.__)("Tools","dokan-kits")]}),window.Dokan_Kits?.isDebugMode&&(0,zr.jsxs)(na,{to:"/tailwind-demo",className:r,children:[(0,zr.jsx)(Ks,{className:"dk-h-4 dk-w-4 dk-mr-wp-2"}),(0,ua.__)("Tailwind Demo","dokan-kits")]})]})]})}),(0,zr.jsxs)("div",{className:"dokan-kits-app-content dk-container dk-mx-auto dk-px-wp-4 dk-pb-wp-8 dk-space-y-wp-4",children:[(0,zr.jsx)(Hs,{}),window.Dokan_Kits?.isDebugMode&&(0,zr.jsx)("div",{className:Lr("dk-p-wp-4","dk-border","dk-rounded-md","dk-bg-yellow-50","dk-border-yellow-200"),children:(0,zr.jsxs)("p",{className:"dk-flex dk-items-center dk-gap-2 dk-text-yellow-800",children:[(0,zr.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"dk-w-5 dk-h-5",children:(0,zr.jsx)("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})}),(0,ua.__)("Debug Mode is active. Additional developer features and settings are enabled.","dokan-kits")]})}),(0,zr.jsx)("div",{className:"dk-route-transition",children:t?(0,zr.jsx)(Or,{message:(0,ua.__)("Loading content…","dokan-kits")}):(0,zr.jsx)(Pt,{})})]}),(0,zr.jsx)("div",{className:"dokan-kits-app-footer dk-mt-wp-12 dk-py-wp-6 dk-border-t dk-border-gray-200 dk-text-center dk-text-sm dk-text-gray-500",children:(0,zr.jsxs)("p",{children:[(0,ua.__)("Dokan Kits","dokan-kits")," ",a.version||"3.0.0"," | ",(0,ua.__)("Made with","dokan-kits")," ❤️ ",(0,ua.__)("by","dokan-kits"),(0,zr.jsx)("a",{href:"https://profiles.wordpress.org/wpintegrity/",target:"_blank",rel:"noopener noreferrer",className:"dk-text-primary-600 hover:dk-text-primary-800 dk-ml-wp-1",children:"WPIntegrity"})]})})]})},Ys=xa("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]),Js=xa("chart-no-axes-column",[["line",{x1:"18",x2:"18",y1:"20",y2:"10",key:"1xfpm4"}],["line",{x1:"12",x2:"12",y1:"20",y2:"4",key:"be30l9"}],["line",{x1:"6",x2:"6",y1:"20",y2:"14",key:"1r4le6"}]]),Zs=xa("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]),Xs=xa("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),Qs=xa("headset",[["path",{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",key:"12oyoe"}],["path",{d:"M21 16v2a4 4 0 0 1-4 4h-5",key:"1x7m43"}]]),en=xa("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]),tn=xa("video",[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]),an=()=>{const e=({className:e})=>(0,zr.jsx)("div",{className:`dk-animate-pulse dk-bg-gray-200 dk-rounded ${e}`}),a=()=>(0,zr.jsx)(t.Card,{className:"dk-mb-wp-6",children:(0,zr.jsxs)(t.CardBody,{className:"dk-text-center dk-py-wp-8",children:[(0,zr.jsx)(e,{className:"dk-mx-auto dk-h-24 dk-w-24 dk-mb-wp-4"}),(0,zr.jsx)(e,{className:"dk-mx-auto dk-h-10 dk-w-1/2 dk-mb-wp-3"}),(0,zr.jsx)(e,{className:"dk-mx-auto dk-h-5 dk-w-3/4 dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-mx-auto dk-h-5 dk-w-2/3 dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-mx-auto dk-h-5 dk-w-1/2 dk-mb-wp-6"}),(0,zr.jsxs)("div",{className:"dk-flex dk-flex-wrap dk-justify-center dk-gap-wp-4",children:[(0,zr.jsx)(e,{className:"dk-h-8 dk-w-28"}),(0,zr.jsx)(e,{className:"dk-h-8 dk-w-36"}),(0,zr.jsx)(e,{className:"dk-h-8 dk-w-32"})]})]})}),r=()=>(0,zr.jsxs)(zr.Fragment,{children:[(0,zr.jsx)(e,{className:"dk-h-8 dk-w-1/4 dk-mb-wp-4"}),(0,zr.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6 dk-mb-wp-8",children:Array(2).fill().map((a,r)=>(0,zr.jsxs)(t.Card,{children:[(0,zr.jsx)(t.CardBody,{className:"dk-p-6",children:(0,zr.jsxs)("div",{className:"dk-flex dk-flex-col md:dk-flex-row dk-items-start",children:[(0,zr.jsx)(e,{className:"dk-h-16 dk-w-16 dk-mb-wp-4 md:dk-mb-0 md:dk-mr-wp-5"}),(0,zr.jsxs)("div",{className:"dk-flex-grow dk-w-full",children:[(0,zr.jsx)(e,{className:"dk-h-7 dk-w-3/4 dk-mb-wp-3"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-3/4"})]})]})}),(0,zr.jsx)(t.CardFooter,{className:"dk-p-5 dk-bg-gray-50 dk-border-t dk-border-gray-200 dk-flex dk-justify-end",children:(0,zr.jsx)(e,{className:"dk-h-10 dk-w-32"})})]},r))})]}),s=()=>(0,zr.jsxs)(zr.Fragment,{children:[(0,zr.jsx)(e,{className:"dk-h-8 dk-w-1/4 dk-mb-wp-4"}),(0,zr.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6 dk-mb-wp-8",children:Array(4).fill().map((a,r)=>(0,zr.jsxs)(t.Card,{children:[(0,zr.jsx)(t.CardHeader,{children:(0,zr.jsx)(e,{className:"dk-h-6 dk-w-1/2"})}),(0,zr.jsxs)(t.CardBody,{children:[(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-3/4 dk-mb-wp-4"}),(0,zr.jsx)(e,{className:"dk-h-10 dk-w-36"})]})]},r))})]}),n=()=>(0,zr.jsxs)(zr.Fragment,{children:[(0,zr.jsx)(e,{className:"dk-h-8 dk-w-1/4 dk-mb-wp-4"}),(0,zr.jsxs)(t.Card,{children:[(0,zr.jsx)(t.CardHeader,{children:(0,zr.jsx)(e,{className:"dk-h-6 dk-w-1/4"})}),(0,zr.jsxs)(t.CardBody,{children:[(0,zr.jsx)("div",{className:"dk-space-y-wp-4",children:Array(3).fill().map((t,a)=>(0,zr.jsxs)("div",{className:"dk-mb-wp-6",children:[(0,zr.jsx)(e,{className:"dk-h-6 dk-w-1/3 dk-mb-wp-3"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-3/4"})]},a))}),(0,zr.jsx)("div",{className:"dk-mt-wp-4 dk-pt-wp-4 dk-border-t dk-border-gray-200",children:(0,zr.jsx)(e,{className:"dk-h-6 dk-w-1/4"})})]})]})]});return(0,zr.jsxs)("div",{className:"dokan-kits-about-page-skeleton dk-p-6",children:[(0,zr.jsx)(a,{}),(0,zr.jsx)(r,{}),(0,zr.jsx)(s,{}),(0,zr.jsx)(n,{})]})},rn=()=>{const[e,a]=(0,s.useState)(!0);if((0,s.useEffect)(()=>{const e=setTimeout(()=>{a(!1)},300);return()=>clearTimeout(e)},[]),e)return(0,zr.jsx)(an,{});const r=[],n=[{title:(0,ua.__)("Vendor Product Video Gallery","dokan-kits"),description:(0,ua.__)("Allow vendors to upload product videos to showcase their products better in your Dokan marketplace. Support multiple video formats and customize playback options.","dokan-kits"),icon:"format-video",image:"https://wpintegrity.com/wp-content/uploads/2025/06/Dokan-Kits-Vendor-Product-Video-Gallery_big.png",status:(0,ua.__)("Live","dokan-kits"),url:"https://wpintegrity.com/dokan-kits-vendor-product-video-gallery/"},{title:(0,ua.__)("Vendor Product Image Upload Limit","dokan-kits"),description:(0,ua.__)("Control and limit product image uploads for vendors in your Dokan marketplace. Set image dimensions, file sizes, and maximum upload limits to maintain quality and performance.","dokan-kits"),icon:"format-gallery",image:"https://wpintegrity.com/wp-content/uploads/2025/06/Dokan-Kits-Vendor-Product-Image-Upload-Limit_big-1.png",status:(0,ua.__)("Live","dokan-kits"),url:"https://wpintegrity.com/dokan-kits-vendor-product-image-upload-limit/"},{title:(0,ua.__)("Vendor Product Bundles","dokan-kits"),description:(0,ua.__)("Allow vendors to add and sell bundle products from their frontend vendor dashboard.","dokan-kits"),icon:"format-gallery",image:"https://wpintegrity.com/wp-content/uploads/2025/06/dokan-product-bundle@2x-768x593-1-300x295.png",status:(0,ua.__)("Live","dokan-kits"),url:"https://wpintegrity.com/products/dokan-kits-vendor-product-bundles/"},{title:(0,ua.__)("Vendor Smart Coupons Display","dokan-kits"),description:(0,ua.__)("Display existing vendor coupons beautifully on product and cart pages with interactive application and customizable display options.","dokan-kits"),icon:"tag",image:"https://wpintegrity.com/wp-content/uploads/2025/07/dokan-kits-vendor-smart-coupons-display-feature.png",status:(0,ua.__)("Live","dokan-kits"),url:"https://wpintegrity.com/dokan-kits-vendor-smart-coupons-display/"}],o=[{title:(0,ua.__)("Support","dokan-kits"),description:(0,ua.__)("Need help with Dokan Kits? Visit our support forum to get assistance from our team and community.","dokan-kits"),buttonText:(0,ua.__)("Visit Support Forum","dokan-kits"),buttonUrl:"https://wordpress.org/support/plugin/dokan-kits/",icon:"sos"},{title:(0,ua.__)("Documentation","dokan-kits"),description:(0,ua.__)("Check our documentation for detailed guides, tutorials, and reference materials.","dokan-kits"),buttonText:(0,ua.__)("View Documentation","dokan-kits"),buttonUrl:"https://wordpress.org/plugins/dokan-kits/",icon:"book"},{title:(0,ua.__)("Feature Requests","dokan-kits"),description:(0,ua.__)("Have ideas to improve Dokan Kits? Submit your feature requests and help us make the plugin better.","dokan-kits"),buttonText:(0,ua.__)("Submit Request","dokan-kits"),buttonUrl:"https://github.com/wpintegrity/feedback/issues/new",icon:"lightbulb"},{title:(0,ua.__)("Video Tutorials","dokan-kits"),description:(0,ua.__)("Learn how to use Dokan Kits effectively with our step-by-step video tutorials and guides.","dokan-kits"),buttonText:(0,ua.__)("Watch Tutorials","dokan-kits"),buttonUrl:"#",icon:"video-alt3"}],d=[{version:"3.0.4",releaseDate:"Jul 03, 2025",changes:[(0,ua.__)("Add a new CTA button to dokan kit dashboard to explore premium add-ons.","dokan-kits")]},{version:"3.0.3",releaseDate:"Jul 02, 2025",changes:[(0,ua.__)("Fixed settings save and retrieval issues","dokan-kits")]},{version:"3.0.2",releaseDate:"June 30, 2025",changes:[(0,ua.__)("Improved UI for ErrorBoundary: centered Dashicon error icon, modern layout","dokan-kits"),(0,ua.__)("Refactored Not Found page for consistent, professional UI","dokan-kits"),(0,ua.__)("Updated Tools page with hero/title section and card-based layout","dokan-kits"),(0,ua.__)("Ensured Tools REST controller is registered and follows best practices","dokan-kits"),(0,ua.__)("General UI/UX consistency improvements across admin pages","dokan-kits")]},{version:"3.0.1",releaseDate:"June 24, 2025",changes:[(0,ua.__)("Fixed a critical issue with setting data store","dokan-kits")]},{version:"3.0.0",releaseDate:"June 23, 2025",changes:[(0,ua.__)("Complete plugin restructuring with modern architecture","dokan-kits"),(0,ua.__)("New React-based admin interface with Tailwind CSS","dokan-kits"),(0,ua.__)("Improved REST API for features management","dokan-kits"),(0,ua.__)("Enhanced extensibility with service providers","dokan-kits"),(0,ua.__)("Added React Router for better admin navigation","dokan-kits")]}],i=()=>(0,zr.jsx)(t.Card,{className:"dk-mb-wp-6",children:(0,zr.jsxs)(t.CardBody,{className:"dk-text-center dk-py-wp-8",children:[(0,zr.jsx)("img",{src:Vs,alt:"Dokan Kits",className:"dk-mx-auto dk-h-24 dk-w-auto dk-mb-wp-4"}),(0,zr.jsx)("h1",{className:"dk-text-3xl dk-font-bold dk-text-gray-900 dk-mb-wp-3",children:(0,ua.__)("Welcome to Dokan Kits","dokan-kits")}),(0,zr.jsx)("p",{className:"dk-max-w-2xl dk-mx-auto dk-text-lg dk-text-gray-600 dk-mb-wp-3",children:(0,ua.__)("The essential toolkit to supercharge your Dokan-powered marketplace with advanced features for vendors and administrators.","dokan-kits")}),(0,zr.jsx)("p",{className:"dk-max-w-2xl dk-mx-auto dk-text-base dk-text-gray-500",children:(0,ua.__)("Enhance product management, streamline vendor operations, and improve the overall marketplace experience with our carefully crafted extensions.","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-mt-wp-6 dk-flex dk-flex-wrap dk-justify-center dk-gap-wp-4",children:[(0,zr.jsxs)("span",{className:"dk-inline-flex dk-items-center dk-px-wp-3 dk-py-wp-1 dk-rounded-full dk-text-sm dk-font-medium dk-bg-primary-100 dk-text-primary-800",children:[(0,zr.jsx)(Ys,{className:"dk-w-4 dk-h-4 dk-mr-wp-1"}),(0,ua.__)("Version","dokan-kits"),": ",Dokan_Kits?.version||"3.0.0"]}),(0,zr.jsxs)("span",{className:"dk-inline-flex dk-items-center dk-px-wp-3 dk-py-wp-1 dk-rounded-full dk-text-sm dk-font-medium dk-bg-green-100 dk-text-green-800",children:[(0,zr.jsx)(Js,{className:"dk-w-4 dk-h-4 dk-mr-wp-1"}),(0,ua.__)("Active Installations","dokan-kits"),": 500+"]}),(0,zr.jsxs)("span",{className:"dk-inline-flex dk-items-center dk-px-wp-3 dk-py-wp-1 dk-rounded-full dk-text-sm dk-font-medium dk-bg-blue-100 dk-text-blue-800",children:[(0,zr.jsx)(Zs,{className:"dk-w-4 dk-h-4 dk-mr-wp-1"}),(0,ua.__)("Last Updated","dokan-kits"),": ",d[0]?.releaseDate||"June 23, 2025"]})]})]})}),l=()=>(0,zr.jsxs)(zr.Fragment,{children:[(0,zr.jsx)("h2",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-4",children:(0,ua.__)("Advanced Features","dokan-kits")}),(0,zr.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6 dk-mb-wp-8",children:n.map((e,a)=>(0,zr.jsxs)(t.Card,{className:"dk-transition dk-duration-300 dk-ease-in-out hover:dk-shadow-lg",children:[(0,zr.jsx)(t.CardBody,{className:"w-full dk-p-6",children:(0,zr.jsxs)("div",{className:"dk-flex dk-flex-col md:dk-flex-row dk-items-start",children:[(0,zr.jsx)("img",{src:e.image,alt:e.title,className:"dk-h-16 dk-w-16 dk-rounded-lg dk-mb-wp-4 md:dk-mb-0 md:dk-mr-wp-5"}),(0,zr.jsxs)("div",{className:"dk-flex-grow",children:[(0,zr.jsx)("h3",{className:"dk-text-xl dk-font-semibold dk-text-gray-900 dk-mb-wp-3",children:e.title}),(0,zr.jsx)("p",{className:"dk-text-gray-600 dk-leading-relaxed",children:e.description})]})]})}),(0,zr.jsx)(t.CardFooter,{className:"dk-p-5 dk-bg-gray-50 dk-border-t dk-border-gray-200 dk-flex dk-flex-col md:dk-flex-row md:dk-justify-end md:dk-items-center",children:(0,zr.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button",children:[(0,ua.__)("Explore Now","dokan-kits"),(0,zr.jsx)(Xs,{className:"dk-w-4 dk-h-4 dk-ml-wp-1"})]})})]},a))})]}),c=()=>(0,zr.jsxs)(zr.Fragment,{children:[(0,zr.jsx)("h2",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-4",children:(0,ua.__)("Contributors","dokan-kits")}),(0,zr.jsx)(t.Card,{className:"dk-mb-wp-8",children:(0,zr.jsx)(t.CardBody,{children:(0,zr.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 lg:dk-grid-cols-3 dk-gap-wp-6",children:r.map((e,t)=>(0,zr.jsxs)("div",{className:"dk-flex dk-items-center dk-space-x-wp-4",children:[(0,zr.jsx)("img",{src:e.avatar,alt:e.name,className:"dk-h-14 dk-w-14 dk-rounded-full"}),(0,zr.jsxs)("div",{children:[(0,zr.jsx)("h3",{className:"dk-text-lg dk-font-medium dk-text-gray-900",children:e.name}),(0,zr.jsx)("p",{className:"dk-text-sm dk-text-gray-600 dk-mb-wp-1",children:e.role}),(0,zr.jsx)("a",{href:e.profile,target:"_blank",rel:"noopener noreferrer",className:"dk-text-sm dk-text-primary-600 hover:dk-text-primary-800",children:(0,ua.__)("WordPress.org Profile","dokan-kits")})]})]},t))})})})]}),u=()=>(0,zr.jsxs)(zr.Fragment,{children:[(0,zr.jsx)("h2",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-4",children:(0,ua.__)("Getting Help","dokan-kits")}),(0,zr.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6 dk-mb-wp-8",children:o.map((e,a)=>(0,zr.jsxs)(t.Card,{children:[(0,zr.jsx)(t.CardHeader,{children:(0,zr.jsxs)("h3",{className:"dk-text-lg dk-font-medium dk-text-gray-900 dk-flex dk-items-center",children:[e.icon&&"sos"===e.icon&&(0,zr.jsx)(Qs,{className:"dk-w-5 dk-h-5 dk-mr-wp-2 dk-text-primary-600"}),e.icon&&"book"===e.icon&&(0,zr.jsx)(Sa,{className:"dk-w-5 dk-h-5 dk-mr-wp-2 dk-text-primary-600"}),e.icon&&"lightbulb"===e.icon&&(0,zr.jsx)(en,{className:"dk-w-5 dk-h-5 dk-mr-wp-2 dk-text-primary-600"}),e.icon&&"video-alt3"===e.icon&&(0,zr.jsx)(tn,{className:"dk-w-5 dk-h-5 dk-mr-wp-2 dk-text-primary-600"}),e.title]})}),(0,zr.jsxs)(t.CardBody,{children:[(0,zr.jsx)("p",{className:"dk-text-gray-600 dk-mb-wp-4",children:e.description}),(0,zr.jsx)("a",{href:e.buttonUrl,target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button",children:e.buttonText})]})]},a))})]}),k=()=>(0,zr.jsxs)(zr.Fragment,{children:[(0,zr.jsx)("h2",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-4",children:(0,ua.__)("Latest Changes","dokan-kits")}),(0,zr.jsxs)(t.Card,{children:[(0,zr.jsx)(t.CardHeader,{children:(0,zr.jsx)("h3",{className:"dk-text-lg dk-font-medium dk-text-gray-900",children:(0,ua.__)("Changelog","dokan-kits")})}),(0,zr.jsxs)(t.CardBody,{children:[(0,zr.jsx)("div",{className:"dk-space-y-wp-4",children:d.map((e,t)=>(0,zr.jsxs)("div",{children:[(0,zr.jsxs)("h4",{className:"dk-text-md dk-font-medium dk-text-gray-900",children:[(0,ua.__)("Version","dokan-kits")," ",e.version,(0,zr.jsxs)("span",{className:"dk-ml-wp-2 dk-text-sm dk-text-gray-500",children:["- ",(0,ua.__)("Released on","dokan-kits")," ",e.releaseDate]})]}),(0,zr.jsx)("ul",{className:"dk-list-disc dk-list-inside dk-text-gray-600 dk-mt-wp-2 dk-space-y-wp-1",children:e.changes.map((e,t)=>(0,zr.jsx)("li",{children:e},t))})]},t))}),(0,zr.jsx)("div",{className:"dk-mt-wp-4 dk-pt-wp-4 dk-border-t dk-border-gray-200",children:(0,zr.jsxs)("a",{href:"https://wordpress.org/plugins/dokan-kits/changelog/",target:"_blank",rel:"noopener noreferrer",className:"dk-text-primary-600 hover:dk-text-primary-800 dk-inline-flex dk-items-center",children:[(0,ua.__)("View full changelog","dokan-kits"),(0,zr.jsx)(Xs,{className:"dk-w-4 dk-h-4 dk-ml-wp-1"})]})})]})]})]});return(0,zr.jsxs)("div",{className:"dokan-kits-about-page",children:[(0,zr.jsx)(i,{}),(0,zr.jsx)(l,{}),r.length>0&&(0,zr.jsx)(c,{}),(0,zr.jsx)(u,{}),(0,zr.jsx)(k,{})]})},sn=window.wp.apiFetch;var nn=e.n(sn);const on=xa("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]),dn=xa("tool-case",[["path",{d:"M10 15h4",key:"192ueg"}],["path",{d:"m14.817 10.995-.971-1.45 1.034-1.232a2 2 0 0 0-2.025-3.238l-1.82.364L9.91 3.885a2 2 0 0 0-3.625.748L6.141 6.55l-1.725.426a2 2 0 0 0-.19 3.756l.657.27",key:"xbnumr"}],["path",{d:"m18.822 10.995 2.26-5.38a1 1 0 0 0-.557-1.318L16.954 2.9a1 1 0 0 0-1.281.533l-.924 2.122",key:"eaw7gc"}],["path",{d:"M4 12.006A1 1 0 0 1 4.994 11H19a1 1 0 0 1 1 1v7a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z",key:"1vaooh"}]]),ln=xa("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),cn=xa("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]),un=xa("message-square",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]),kn=xa("message-circle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]),mn=()=>{const e=({className:e})=>(0,zr.jsx)("div",{className:`dk-animate-pulse dk-bg-gray-200 dk-rounded ${e}`}),t=()=>(0,zr.jsx)("div",{className:"dk-admin-card dk-bg-gradient-to-r dk-from-primary-50 dk-to-secondary-50 dk-border-l-4 dk-border-primary-500 dk-mb-wp-6",children:(0,zr.jsxs)("div",{className:"dk-flex dk-items-center",children:[(0,zr.jsx)("div",{className:"dk-flex-shrink-0 dk-mr-wp-4",children:(0,zr.jsx)(e,{className:"dk-w-16 dk-h-16 dk-rounded"})}),(0,zr.jsxs)("div",{className:"dk-flex-grow",children:[(0,zr.jsx)(e,{className:"dk-h-7 dk-w-64 dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-max-w-2xl"})]})]})}),a=()=>(0,zr.jsx)("div",{className:"dk-grid dk-grid-cols-1 dk-gap-wp-6",children:(0,zr.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-3 dk-gap-wp-4",children:Array(3).fill().map((t,a)=>(0,zr.jsx)("div",{className:"dk-admin-card dk-border-t-4 dk-border-primary-500 dk-bg-primary-50",children:(0,zr.jsxs)("div",{className:"dk-flex dk-justify-between dk-items-center",children:[(0,zr.jsxs)("div",{children:[(0,zr.jsx)(e,{className:"dk-h-6 dk-w-32 dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-h-8 dk-w-16"})]}),(0,zr.jsx)("div",{className:"dk-rounded-full dk-w-12 dk-h-12 dk-flex dk-items-center dk-justify-center dk-bg-white dk-border dk-border-gray-200",children:(0,zr.jsx)(e,{className:"dk-w-6 dk-h-6 dk-rounded"})})]})},a))})}),r=()=>(0,zr.jsxs)("div",{className:"dk-admin-card",children:[(0,zr.jsx)(e,{className:"dk-h-7 dk-w-48 dk-border-b dk-border-gray-200 dk-pb-wp-3 dk-mb-wp-4"}),(0,zr.jsxs)("div",{children:[(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-4"}),(0,zr.jsx)("div",{className:"dk-space-y-wp-3",children:Array(4).fill().map((t,a)=>(0,zr.jsx)(e,{className:"dk-h-9 dk-w-full dk-rounded-md"},a))})]})]}),s=()=>(0,zr.jsxs)("div",{className:"dk-admin-card",children:[(0,zr.jsx)(e,{className:"dk-h-7 dk-w-64 dk-border-b dk-border-gray-200 dk-pb-wp-3 dk-mb-wp-4"}),(0,zr.jsxs)("div",{children:[(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-4"}),(0,zr.jsx)("ul",{className:"dk-space-y-wp-3",children:Array(3).fill().map((t,a)=>(0,zr.jsx)("li",{children:(0,zr.jsxs)("div",{className:"dk-flex dk-items-center",children:[(0,zr.jsx)("div",{className:"dk-w-8 dk-h-8 dk-rounded-full dk-bg-primary-100 dk-flex dk-items-center dk-justify-center dk-mr-wp-2",children:(0,zr.jsx)(e,{className:"dk-w-4 dk-h-4 dk-rounded"})}),(0,zr.jsx)(e,{className:"dk-h-5 dk-w-32"})]})},a))}),(0,zr.jsxs)("div",{className:"dk-mt-wp-6 dk-p-wp-3 dk-bg-yellow-50 dk-rounded-md dk-border dk-border-yellow-200",children:[(0,zr.jsx)(e,{className:"dk-h-6 dk-flex dk-items-center dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-3"}),(0,zr.jsx)(e,{className:"dk-h-10 dk-w-full dk-rounded-md"})]})]})]}),n=()=>(0,zr.jsx)("div",{className:"dk-fixed dk-inset-0 dk-bg-black dk-bg-opacity-50 dk-flex dk-items-center dk-justify-center",style:{display:"none"},children:(0,zr.jsx)("div",{className:"dk-bg-white dk-rounded-lg dk-max-w-xl dk-w-full dk-mx-4",children:(0,zr.jsxs)("div",{className:"dk-p-6",children:[(0,zr.jsxs)("div",{className:"dk-flex dk-justify-between dk-items-center dk-mb-4",children:[(0,zr.jsx)(e,{className:"dk-h-7 dk-w-48"}),(0,zr.jsx)("div",{className:"dk-w-8 dk-h-8 dk-rounded-full dk-bg-gray-100 dk-flex dk-items-center dk-justify-center",children:(0,zr.jsx)(e,{className:"dk-w-4 dk-h-4 dk-rounded"})})]}),(0,zr.jsxs)("div",{className:"dk-mb-6",children:[(0,zr.jsx)("div",{className:"dk-flex dk-justify-center dk-mb-4",children:(0,zr.jsx)(e,{className:"dk-w-16 dk-h-16 dk-rounded-full"})}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-4"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-2"}),(0,zr.jsx)(e,{className:"dk-h-10 dk-w-full dk-rounded dk-mb-2"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-3/4"})]}),(0,zr.jsxs)("div",{className:"dk-flex dk-justify-end dk-space-x-3",children:[(0,zr.jsx)(e,{className:"dk-h-10 dk-w-24 dk-rounded"}),(0,zr.jsx)(e,{className:"dk-h-10 dk-w-24 dk-rounded"})]})]})})});return(0,zr.jsxs)("div",{className:"dokan-kits-admin-page dk-p-6",children:[(0,zr.jsx)(t,{}),(0,zr.jsx)(a,{}),(0,zr.jsxs)("div",{className:"dk-grid dk-grid-cols-1 lg:dk-grid-cols-3 dk-gap-wp-6 dk-mt-wp-6",children:[(0,zr.jsx)(r,{}),(0,zr.jsx)("div",{className:"lg:dk-col-span-2",children:(0,zr.jsx)(s,{})})]}),(0,zr.jsx)(n,{})]})},hn=()=>{const[e,a]=(0,s.useState)(!0),[r,n]=(0,s.useState)(!1),[o,d]=(0,s.useState)(!1),[i,l]=(0,s.useState)(!1),[c,u]=(0,s.useState)(!1),[k,m]=(0,s.useState)(!1),[h,p]=(0,s.useState)("all"),[f,x]=(0,s.useState)(null),g=(0,s.useRef)(null),[b,y]=(0,s.useState)({active_features_count:0,total_settings_count:0,dokan_version:"",url:""}),{addNotice:w}=Us();if((0,s.useEffect)(()=>{(async()=>{try{a(!0);const e=await nn()({path:"/dokan-kits/v1/dashboard"});if(!e.success)throw new Error(e.message||(0,ua.__)("Invalid response from the server","dokan-kits"));const t=e.data?.statistics||{};y({active_features_count:t.active_features?.value||0,total_settings_count:t.total_features?.value||0,dokan_version:t.dokan_version?.value||(0,ua.__)("Not Detected","dokan-kits"),url:window.location.href})}catch(e){w(e.message||(0,ua.__)("Failed to fetch dashboard data","dokan-kits"),"error")}finally{a(!1)}})()},[]),e)return(0,zr.jsx)(mn,{});const v=()=>{m(!1),x(null),g.current&&(g.current.value="")},j=()=>{u(!1)};return e?(0,zr.jsx)(mn,{}):(0,zr.jsxs)("div",{className:"dokan-kits-admin-page",children:[(0,zr.jsx)("div",{className:"dk-admin-card dk-bg-gradient-to-r dk-from-primary-50 dk-to-secondary-50 dk-border-l-4 dk-border-primary-500 dk-mb-wp-6",children:(0,zr.jsxs)("div",{className:"dk-flex dk-items-center",children:[(0,zr.jsx)("div",{className:"dk-flex-shrink-0 dk-mr-wp-4",children:(0,zr.jsx)("img",{src:Vs,alt:"Dokan Kits",className:"dk-w-16 dk-h-16"})}),(0,zr.jsxs)("div",{children:[(0,zr.jsx)("h2",{className:"dk-text-xl dk-font-medium dk-text-gray-900",children:(0,ua.__)("Welcome to Dokan Kits","dokan-kits")}),(0,zr.jsxs)("p",{className:"dk-mt-1 dk-text-sm dk-text-gray-600",children:[(0,ua.__)("You are running version","dokan-kits")," ",(0,zr.jsx)("span",{className:"dk-font-medium",children:Dokan_Kits.version}),".",(0,ua.__)("Enhance your Dokan-powered marketplace with powerful tools and customizations.","dokan-kits")]})]})]})}),(0,zr.jsxs)("div",{className:"dk-grid dk-grid-cols-1 dk-gap-wp-6",children:[(0,zr.jsxs)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-3 dk-gap-wp-4",children:[(0,zr.jsx)("div",{className:"dk-admin-card dk-border-t-4 dk-border-primary-500 dk-bg-primary-50",children:(0,zr.jsxs)("div",{className:"dk-flex dk-justify-between dk-items-center",children:[(0,zr.jsxs)("div",{children:[(0,zr.jsx)("h3",{className:"dk-text-lg dk-font-medium",children:(0,ua.__)("Total Features","dokan-kits")}),(0,zr.jsx)("p",{className:"dk-text-2xl dk-font-bold dk-mt-1",children:b.total_settings_count})]}),(0,zr.jsx)("div",{className:"dk-rounded-full dk-w-12 dk-h-12 dk-flex dk-items-center dk-justify-center dk-bg-white dk-border dk-border-gray-200",children:(0,zr.jsx)(on,{className:"dk-w-6 dk-h-6 dk-text-primary-500"})})]})}),(0,zr.jsx)("div",{className:"dk-admin-card dk-border-t-4 dk-border-secondary-500 dk-bg-secondary-50",children:(0,zr.jsxs)("div",{className:"dk-flex dk-justify-between dk-items-center",children:[(0,zr.jsxs)("div",{children:[(0,zr.jsx)("h3",{className:"dk-text-lg dk-font-medium",children:(0,ua.__)("Total Active Features","dokan-kits")}),(0,zr.jsx)("p",{className:"dk-text-2xl dk-font-bold dk-mt-1",children:b.active_features_count})]}),(0,zr.jsx)("div",{className:"dk-rounded-full dk-w-12 dk-h-12 dk-flex dk-items-center dk-justify-center dk-bg-white dk-border dk-border-gray-200",children:(0,zr.jsx)(Ws,{className:"dk-w-6 dk-h-6 dk-text-secondary-500"})})]})}),(0,zr.jsx)("div",{className:"dk-admin-card dk-border-t-4 dk-border-green-500 dk-bg-green-50",children:(0,zr.jsxs)("div",{className:"dk-flex dk-justify-between dk-items-center",children:[(0,zr.jsxs)("div",{children:[(0,zr.jsx)("h3",{className:"dk-text-lg dk-font-medium",children:(0,ua.__)("Dokan Version","dokan-kits")}),(0,zr.jsx)("p",{className:"dk-text-2xl dk-font-bold dk-mt-1",children:b.dokan_version})]}),(0,zr.jsx)("div",{className:"dk-rounded-full dk-w-12 dk-h-12 dk-flex dk-items-center dk-justify-center dk-bg-white dk-border dk-border-gray-200",children:(0,zr.jsx)(dn,{className:"dk-w-6 dk-h-6 dk-text-green-500"})})]})})]}),(0,zr.jsxs)("div",{className:"dk-grid dk-grid-cols-1 lg:dk-grid-cols-3 dk-gap-wp-6",children:[(0,zr.jsxs)("div",{className:"dk-admin-card",children:[(0,zr.jsx)("h2",{className:"dk-text-lg dk-font-medium dk-border-b dk-border-gray-200 dk-pb-wp-3 dk-mb-wp-4",children:(0,ua.__)("Settings Management","dokan-kits")}),(0,zr.jsxs)("div",{children:[(0,zr.jsx)("p",{className:"dk-text-sm dk-text-gray-600 dk-mb-wp-4",children:(0,ua.__)("Manage your Dokan Kits features with these options:","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-space-y-wp-3",children:[(0,zr.jsxs)(t.Button,{href:`${Dokan_Kits.adminUrl}?page=dokan-kits#/features`,variant:"primary",className:"dk-admin-button dk-w-full dk-justify-center dk-h-9",children:[(0,zr.jsx)(Ws,{className:"dk-w-5 dk-h-5 dk-mr-2"}),(0,ua.__)("Configure Settings","dokan-kits")]}),(0,zr.jsxs)(t.Button,{variant:"secondary",onClick:async()=>{try{l(!0),w((0,ua.__)("Preparing export file…","dokan-kits"),"info");const e=await nn()({path:"/dokan-kits/v1/dashboard/export",method:"GET"});if(!e||!e.data)throw new Error((0,ua.__)("No data received from the server.","dokan-kits"));{const t=new Blob([JSON.stringify(e.data.data,null,2)],{type:"application/json"}),a=window.URL.createObjectURL(t),r=document.createElement("a");r.href=a;const s=(new Date).toISOString().split("T")[0];r.download=`dokan-kits-settings-${s}.json`,document.body.appendChild(r),r.click(),window.URL.revokeObjectURL(a),document.body.removeChild(r),w((0,ua.__)("Settings exported successfully.","dokan-kits"),"success")}}catch(e){w(e.message||(0,ua.__)("Failed to export settings. Please try again.","dokan-kits"),"error")}finally{l(!1)}},disabled:i,className:"dk-admin-button dk-admin-button-secondary dk-w-full dk-justify-center dk-h-9",children:[(0,zr.jsx)(ln,{className:"dk-w-5 dk-h-5 dk-mr-2"}),i?(0,ua.__)("Exporting…","dokan-kits"):(0,ua.__)("Export Settings","dokan-kits")]}),(0,zr.jsxs)(t.Button,{variant:"secondary",onClick:()=>{m(!0)},className:"dk-admin-button dk-admin-button-secondary dk-w-full dk-justify-center dk-h-9",children:[(0,zr.jsx)(cn,{className:"dk-w-5 dk-h-5 dk-mr-2"}),(0,ua.__)("Import Settings","dokan-kits")]}),(0,zr.jsxs)(t.Button,{variant:"secondary",onClick:()=>{u(!0)},className:"dk-admin-button dk-admin-button-danger dk-w-full dk-justify-center dk-h-9",children:[(0,zr.jsx)(Na,{className:"dk-w-5 dk-h-5 dk-mr-2"}),(0,ua.__)("Reset Settings","dokan-kits")]})]})]})]}),(0,zr.jsxs)("div",{className:"dk-admin-card",children:[(0,zr.jsx)("h2",{className:"dk-text-lg dk-font-medium dk-border-b dk-border-gray-200 dk-pb-wp-3 dk-mb-wp-4",children:(0,ua.__)("Documentation & Support","dokan-kits")}),(0,zr.jsxs)("div",{children:[(0,zr.jsx)("p",{className:"dk-text-sm dk-text-gray-600 dk-mb-wp-4",children:(0,ua.__)("Need help with Dokan Kits? Check out these resources:","dokan-kits")}),(0,zr.jsxs)("ul",{className:"dk-space-y-wp-3",children:[(0,zr.jsx)("li",{children:(0,zr.jsxs)("a",{href:"https://wordpress.org/support/plugin/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:"dk-flex dk-items-center dk-text-primary-600 dk-hover:text-primary-800",children:[(0,zr.jsx)("span",{className:"dk-w-8 dk-h-8 dk-rounded-full dk-bg-primary-100 dk-flex dk-items-center dk-justify-center dk-mr-wp-2",children:(0,zr.jsx)(Ca,{className:"dk-w-5 dk-h-5 dk-text-primary-600"})}),(0,ua.__)("Support Forum","dokan-kits")]})}),(0,zr.jsx)("li",{children:(0,zr.jsxs)("a",{href:"https://wordpress.org/support/plugin/dokan-kits/reviews/#new-post",target:"_blank",rel:"noopener noreferrer",className:"dk-flex dk-items-center dk-text-primary-600 dk-hover:text-primary-800",children:[(0,zr.jsx)("span",{className:"dk-w-8 dk-h-8 dk-rounded-full dk-bg-primary-100 dk-flex dk-items-center dk-justify-center dk-mr-wp-2",children:(0,zr.jsx)(un,{className:"dk-w-5 dk-h-5 dk-text-primary-600"})}),(0,ua.__)("Submit your feedback","dokan-kits")]})}),(0,zr.jsx)("li",{children:(0,zr.jsxs)("a",{href:"https://github.com/wpintegrity/feedback/issues",target:"_blank",rel:"noopener noreferrer",className:"dk-flex dk-items-center dk-text-primary-600 dk-hover:text-primary-800",children:[(0,zr.jsx)("span",{className:"dk-w-8 dk-h-8 dk-rounded-full dk-bg-primary-100 dk-flex dk-items-center dk-justify-center dk-mr-wp-2",children:(0,zr.jsx)(kn,{className:"dk-w-5 dk-h-5 dk-text-primary-600"})}),(0,ua.__)("Feature Idea or Bug Report","dokan-kits")]})})]}),(0,zr.jsxs)("div",{className:"dk-mt-wp-6 dk-p-wp-3 dk-bg-yellow-50 dk-rounded-md dk-border dk-border-yellow-200",children:[(0,zr.jsxs)("h3",{className:"dk-text-md dk-font-medium dk-text-yellow-800 dk-mb-wp-2",children:[(0,zr.jsx)(ga,{className:"dk-w-5 dk-h-5 dk-mr-1 dk-text-yellow-800"}),(0,ua.__)("Need Help?","dokan-kits")]}),(0,zr.jsx)("p",{className:"dk-text-sm dk-text-yellow-700 dk-mb-wp-3",children:(0,ua.__)("If you need support or have a feature request, please visit our support forum.","dokan-kits")}),(0,zr.jsx)(t.Button,{href:"https://wordpress.org/support/plugin/dokan-kits/#new-topic-0",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-warning dk-w-full dk-justify-center",children:(0,ua.__)("Get Support","dokan-kits")})]})]})]})]})]}),k&&(0,zr.jsx)(t.Modal,{title:(0,ua.__)("Import Settings","dokan-kits"),onRequestClose:v,className:"dokan-kits-admin-page dokan-kits-admin-modal dokan-kits-import-modal",children:(0,zr.jsxs)("div",{className:"dk-modal-content",children:[(0,zr.jsxs)("div",{className:"dk-modal-header",children:[(0,zr.jsx)("h2",{className:"dk-modal-title",children:(0,ua.__)("Import Settings","dokan-kits")}),(0,zr.jsx)("button",{type:"button",className:"dk-modal-close",onClick:v,"aria-label":(0,ua.__)("Close modal","dokan-kits"),children:(0,zr.jsx)(ba,{className:"dk-w-5 dk-h-5"})})]}),(0,zr.jsxs)("div",{className:"dk-modal-body",children:[(0,zr.jsx)("div",{className:"dk-modal-icon dk-bg-primary-50 dk-text-primary-500",children:(0,zr.jsx)(cn,{className:"dk-w-6 dk-h-6"})}),(0,zr.jsx)("p",{className:"dk-modal-description",children:(0,ua.__)("Select a Dokan Kits settings file to import. This will overwrite your current settings.","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-form-field",children:[(0,zr.jsx)("label",{htmlFor:"import-file",className:"dk-form-label",children:(0,ua.__)("Settings File","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-file-input-wrapper",children:[(0,zr.jsx)("input",{type:"file",id:"import-file",ref:g,accept:".json",onChange:e=>{const t=e.target.files[0];x(t)},className:"dk-file-input"}),(0,zr.jsx)("div",{className:"dk-file-input-info",children:f?(0,zr.jsx)("span",{className:"dk-file-name",children:f.name}):(0,zr.jsx)("span",{className:"dk-file-placeholder",children:(0,ua.__)("Choose a file or drag it here","dokan-kits")})})]}),(0,zr.jsx)("p",{className:"dk-form-help",children:(0,ua.__)("Only .json files exported from Dokan Kits are supported.","dokan-kits")})]})]}),(0,zr.jsxs)("div",{className:"dk-modal-footer",children:[(0,zr.jsx)(t.Button,{variant:"secondary",onClick:v,className:"dk-admin-button dk-admin-button-secondary",children:(0,ua.__)("Cancel","dokan-kits")}),(0,zr.jsx)(t.Button,{variant:"primary",isBusy:o,disabled:o||!f,onClick:async()=>{if(f)if(f.name.endsWith(".json"))try{d(!0);const e=new window.FileReader;e.onload=async e=>{try{const t=JSON.parse(e.target.result),a=await nn()({path:"/dokan-kits/v1/dashboard/import",method:"POST",data:{settings:t}});if(!a.success)throw new Error(a.message||(0,ua.__)("Failed to import settings.","dokan-kits"));{w(a.message||(0,ua.__)("Settings imported successfully.","dokan-kits"),"success");const e=await nn()({path:"/dokan-kits/v1/dashboard"});if(e.success){const t=e.data?.statistics||{};y({active_features_count:t.active_features?.value||0,total_settings_count:t.total_features?.value||0,dokan_version:t.dokan_version?.value||(0,ua.__)("Not Detected","dokan-kits"),url:window.location.href})}}d(!1),v()}catch(e){w(e.message||(0,ua.__)("Failed to import settings. Please try again.","dokan-kits"),"error"),d(!1)}},e.onerror=()=>{w((0,ua.__)("Failed to read the file. Please try again.","dokan-kits"),"error"),d(!1)},e.readAsText(f)}catch(e){w(e.message||(0,ua.__)("Failed to import settings. Please try again.","dokan-kits"),"error"),d(!1)}else w((0,ua.__)("Please select a valid JSON file.","dokan-kits"),"error");else w((0,ua.__)("Please select a file to import.","dokan-kits"),"error")},className:"dk-admin-button",children:o?(0,ua.__)("Importing…","dokan-kits"):(0,ua.__)("Import","dokan-kits")})]})]})}),c&&(0,zr.jsx)(t.Modal,{title:(0,ua.__)("Reset Settings","dokan-kits"),onRequestClose:j,className:"dokan-kits-admin-page dokan-kits-admin-modal dokan-kits-reset-modal",children:(0,zr.jsxs)("div",{className:"dk-modal-content",children:[(0,zr.jsxs)("div",{className:"dk-modal-header",children:[(0,zr.jsx)("h2",{className:"dk-modal-title",children:(0,ua.__)("Reset Settings","dokan-kits")}),(0,zr.jsx)("button",{type:"button",className:"dk-modal-close",onClick:j,"aria-label":(0,ua.__)("Close modal","dokan-kits"),children:(0,zr.jsx)(ba,{className:"dk-w-5 dk-h-5"})})]}),(0,zr.jsxs)("div",{className:"dk-modal-body",children:[(0,zr.jsx)("div",{className:"dk-modal-icon dk-bg-red-50 dk-text-red-500",children:(0,zr.jsx)(ga,{className:"dk-w-6 dk-h-6"})}),(0,zr.jsx)("p",{className:"dk-modal-description dk-text-red-700",children:(0,ua.__)("Are you sure you want to reset Dokan Kits settings? This action cannot be undone.","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-form-field",children:[(0,zr.jsx)("label",{htmlFor:"reset-scope",className:"dk-form-label",children:(0,ua.__)("Reset Scope","dokan-kits")}),(0,zr.jsxs)("select",{id:"reset-scope",className:"dk-form-select",value:h,onChange:e=>p(e.target.value),children:[(0,zr.jsx)("option",{value:"all",children:(0,ua.__)("All Settings","dokan-kits")}),b.setting_names&&b.setting_names.map((e,t)=>(0,zr.jsx)("option",{value:e.toLowerCase(),children:e},t))]})]}),b.setting_names&&b.setting_names.length>0&&(0,zr.jsxs)("div",{className:"dk-mt-wp-4",children:[(0,zr.jsx)("p",{className:"dk-form-label dk-mb-wp-2",children:(0,ua.__)("Available Settings:","dokan-kits")}),(0,zr.jsx)("div",{className:"dk-p-wp-3 dk-bg-gray-50 dk-rounded-md dk-border dk-border-gray-200 dk-max-h-60 dk-overflow-y-auto",children:(0,zr.jsx)("div",{className:"dk-flex dk-flex-wrap dk-gap-wp-2",children:b.setting_names.map((e,t)=>(0,zr.jsx)("span",{className:"dk-text-sm dk-text-gray-700 dk-bg-white dk-px-wp-2 dk-py-wp-1 dk-rounded dk-border dk-border-gray-200",children:e},t))})})]})]}),(0,zr.jsxs)("div",{className:"dk-modal-footer",children:[(0,zr.jsx)(t.Button,{variant:"secondary",onClick:j,className:"dk-admin-button dk-admin-button-secondary",children:(0,ua.__)("Cancel","dokan-kits")}),(0,zr.jsx)(t.Button,{variant:"primary",isBusy:r,disabled:r,onClick:async()=>{try{n(!0);const e=await nn()({path:"/dokan-kits/v1/dashboard/reset",method:"POST",data:{scope:h,confirm:!0}});if(!e.success)throw new Error(e.message||(0,ua.__)("Failed to reset settings.","dokan-kits"));{w(e.message||(0,ua.__)("Settings reset successfully.","dokan-kits"),"success");const t=await nn()({path:"/dokan-kits/v1/dashboard"});if(t.success){const e=t.data?.statistics||{};y({active_features_count:e.active_features?.value||0,total_settings_count:e.total_features?.value||0,dokan_version:e.dokan_version?.value||(0,ua.__)("Not Detected","dokan-kits"),url:window.location.href})}}}catch(e){w(e.message||(0,ua.__)("Failed to reset settings. Please try again.","dokan-kits"),"error")}finally{n(!1),j()}},className:"dk-admin-button dk-admin-button-danger",children:r?(0,ua.__)("Resetting…","dokan-kits"):(0,ua.__)("Reset","dokan-kits")})]})]})})]})},pn=window.wp.htmlEntities,fn=(e,t,a="=")=>{switch("string"!=typeof t||"true"!==t&&"false"!==t||(t="true"===t),"string"!=typeof t||isNaN(Number(t))||("number"==typeof e||"string"==typeof e&&!isNaN(Number(e)))&&(e=Number(e),t=Number(t)),a){case"=":default:return e===t;case"!=":return e!==t;case">":return e>t;case"<":return e<t;case">=":return e>=t;case"<=":return e<=t;case"contains":return String(e).includes(String(t));case"not_contains":return!String(e).includes(String(t));case"is_empty":return""===e||null==e;case"is_not_empty":return""!==e&&null!=e}},xn=(e,t)=>{if(!e?.dependencies?.length)return!0;for(const a of e.dependencies){if(a.key&&void 0===t[a.key])return!1;const e=t[a.key];if(!fn(e,a.value,a.comparison))return!1}return!0},gn=(e,t)=>{const a={};let r=!0;return((e,t)=>{const a=[];for(const r in e){const s=e[r];for(const e in s.sections){const n=s.sections[e];for(const s in n.fields){const o=n.fields[s];o.id||(o.id=s);const d=o.dependency_key||`${r}.${e}.${s}`;void 0===t[d]&&void 0!==o.value&&(t[d]=o.value),xn(o,t)&&a.push({field:o,path:{tabId:r,sectionId:e,fieldId:s},key:d})}}}return a})(e,t).forEach(({field:e,key:s})=>{const n=((e,t)=>{if(!e)return{isValid:!1,message:"Field not found"};if(e.required&&(""===t||null==t))return{isValid:!1,message:e.title+" is required"};switch(e.variant){case"number":if(""===t&&!e.required)return{isValid:!0,message:""};const a=parseFloat(t);if(isNaN(a))return{isValid:!1,message:e.title+" must be a valid number"};if(void 0!==e.minimum&&a<e.minimum)return{isValid:!1,message:e.title+" must be at least "+e.minimum};if(void 0!==e.maximum&&a>e.maximum)return{isValid:!1,message:e.title+" must be at most "+e.maximum};break;case"select":if(e.options&&e.options.length>0&&!e.options.map(e=>e.value).includes(t))return{isValid:!1,message:e.title+" has an invalid selection"};break;case"card-select":if(e.options){let a=[];if(Array.isArray(e.options)?a=e.options.map(e=>e.value):"object"==typeof e.options&&(a=Object.keys(e.options)),a.length>0)if(e.multiple){if(!Array.isArray(t))return{isValid:!1,message:e.title+" must be an array for multiple selection"};for(const r of t)if(!a.includes(r))return{isValid:!1,message:e.title+" contains an invalid selection"}}else{if(Array.isArray(t))return{isValid:!1,message:e.title+" should not be an array for single selection"};if(t&&!a.includes(t))return{isValid:!1,message:e.title+" has an invalid selection"}}}}return{isValid:!0,message:""}})(e,t[s]);n.isValid||(a[s]=n.message,r=!1)}),{isValid:r,errors:a}},bn=e=>{const t={};for(const a in e){const r=e[a];for(const e in r.sections){const s=r.sections[e];for(const r in s.fields){const n=s.fields[r],o=n.dependency_key||`${a}.${e}.${r}`;let d=n.value;if(null==d&&(d=void 0!==n.default?n.default:""),["toggle","checkbox"].includes(n.variant))d=Boolean(!0===d||"true"===d||"1"===d||1===d);else if("number"===n.variant&&""!==d){const e=parseFloat(d);isNaN(e)||(d=e)}else"multi-select"!==n.variant||Array.isArray(d)?"card-select"===n.variant&&(n.multiple?Array.isArray(d)||(d=d?[d]:[]):Array.isArray(d)&&(d=d.length>0?d[0]:"")):d=d?[d]:[];t[o]=d}}}return t},yn=window.wp.blockEditor,wn={toggle:({field:e,value:a,onChange:r})=>{const s=!0===a||"true"===a||"1"===a||1===a;return(0,zr.jsx)(t.ToggleControl,{label:e.label,help:e.description,checked:s,onChange:e=>{r(e)},disabled:e.disabled||e.readonly})},text:({field:e,value:a,onChange:r})=>{const s=e.inputType||"text",n=null!=a?String(a):"";return(0,zr.jsx)(t.TextControl,{label:e.label,help:e.description,value:n,onChange:r,disabled:e.disabled,readOnly:e.readonly,placeholder:e.placeholder||"",type:s,required:e.required,size:e.size})},select:({field:e,value:a,onChange:r})=>{const s=e.options||[],n=Array.isArray(s)?s.map(e=>"object"==typeof e&&void 0!==e.value?e:{value:e,label:e}):Object.entries(s).map(([e,t])=>({value:e,label:t}));return(0,zr.jsx)(t.SelectControl,{label:e.label,help:e.description,value:a||"",options:n,onChange:r,disabled:e.disabled,multiple:e.multiple})},"card-select":({field:e,value:t,onChange:a})=>{const r=e.options||[],s=Array.isArray(r)?r.map(e=>"object"==typeof e&&void 0!==e.value?e:{value:e,label:e,description:"",icon:""}):Object.entries(r).map(([e,t])=>({value:e,label:"object"==typeof t&&t.label||t,description:"object"==typeof t&&t.description||"",icon:"object"==typeof t&&t.icon||""})),n=r=>{if(e.multiple){let e=[];Array.isArray(t)?e=t:t&&(e=[t]);const s=e.includes(r)?e.filter(e=>e!==r):[...e,r];a(s)}else a(r===t?"":r)};return(0,zr.jsxs)("div",{className:"dokan-kits-card-select-field",children:[e.label&&(0,zr.jsx)("div",{className:"dk-block dk-text-sm dk-font-medium dk-text-gray-700 dk-mb-2",children:e.label}),e.description&&(0,zr.jsx)("p",{className:"dk-text-sm dk-text-gray-600 dk-mb-3",children:e.description}),(0,zr.jsx)("div",{className:"dk-grid dk-gap-3 "+(o=e.columns,1===o?"dk-grid-cols-1":2===o?"dk-grid-cols-1 md:dk-grid-cols-2":4===o?"dk-grid-cols-1 md:dk-grid-cols-2 lg:dk-grid-cols-4":"dk-grid-cols-1 md:dk-grid-cols-2 lg:dk-grid-cols-3"),children:s.map(a=>{const r=(a=>{if(e.multiple){let e=[];return Array.isArray(t)?e=t:t&&(e=[t]),e.includes(a)}return t===a})(a.value);return(0,zr.jsxs)("div",{className:`dk-relative dk-border-2 dk-rounded-lg dk-p-4 dk-cursor-pointer dk-transition-all dk-duration-200 ${r?"dk-border-blue-500 dk-bg-blue-50":"dk-border-gray-200 dk-bg-white hover:dk-border-gray-300 hover:dk-bg-gray-50"} ${e.disabled?"dk-opacity-50 dk-cursor-not-allowed":""}`,onClick:()=>!e.disabled&&n(a.value),role:"button",tabIndex:e.disabled?-1:0,onKeyDown:t=>{e.disabled||"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),n(a.value))},children:[r&&(0,zr.jsx)("div",{className:"dk-absolute dk-top-2 dk-right-2",children:(0,zr.jsx)("div",{className:"dk-w-5 dk-h-5 dk-bg-blue-500 dk-rounded-full dk-flex dk-items-center dk-justify-center",children:(0,zr.jsx)("svg",{className:"dk-w-3 dk-h-3 dk-text-white",fill:"currentColor",viewBox:"0 0 20 20",children:(0,zr.jsx)("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})})})}),a.icon&&(0,zr.jsx)("div",{className:"dk-mb-3",children:"string"==typeof a.icon&&a.icon.startsWith("dashicons-")?(0,zr.jsx)("span",{className:`dashicons ${a.icon} dk-text-2xl dk-text-gray-600`}):(0,zr.jsx)("div",{className:"dk-text-2xl",children:a.icon})}),(0,zr.jsx)("h3",{className:"dk-text-base dk-font-medium dk-text-gray-900 dk-mb-1",children:a.label}),a.description&&(0,zr.jsx)("p",{className:"dk-text-sm dk-text-gray-600",children:a.description})]},a.value)})}),e.multiple&&(0,zr.jsx)("p",{className:"dk-text-xs dk-text-gray-500 dk-mt-2",children:(0,ua.__)("You can select multiple options.","dokan-kits")})]});var o},"multi-select":({field:e,value:a,onChange:r})=>{const s=e.options||[],n=Array.isArray(s)?s.map(e=>"object"==typeof e&&void 0!==e.value?e:{value:e,label:e}):Object.entries(s).map(([e,t])=>({value:e,label:t}));let o=[];Array.isArray(a)?o=a:a&&(o=[a]);const d=o.map(e=>n.find(t=>t.value===e)||{value:e,label:e});return(0,zr.jsx)(t.CustomSelectControl,{label:e.label,help:e.description,options:n,onChange:({selectedItems:e})=>r(e.map(e=>e.value)),value:d,isMultiple:!0,__next40pxDefaultSize:!0,className:"dokan-kits-multi-select-field",disabled:e.disabled})},number:({field:e,value:a,onChange:r})=>{const s=void 0!==e.min?e.min:e.minimum,n=void 0!==e.max?e.max:e.maximum,o=e.step||1,d=null!=a?String(a):"";return(0,zr.jsx)(t.TextControl,{type:"number",label:e.label,help:e.description,value:d,onChange:e=>{if(""===e)return void r("");const t=parseFloat(e);if(isNaN(t))return;let a=t;void 0!==s&&t<s&&(a=s),void 0!==n&&t>n&&(a=n),r(a)},min:s,max:n,step:o,disabled:e.disabled,readOnly:e.readonly,placeholder:e.placeholder,className:e.hasError?"dk-has-error":""})},range:({field:e,value:a,onChange:r})=>{const s=void 0!==e.min?e.min:e.minimum,n=void 0!==e.max?e.max:e.maximum,o=e.step||1,d=null!=a?Number(a):"";return(0,zr.jsx)(t.RangeControl,{label:e.label,help:e.description,value:d,onChange:r,min:s,max:n,step:o,allowReset:e.allowReset||!1,resetFallbackValue:e.default||s,disabled:e.disabled,withInputField:!0,showTooltip:!0,railColor:e.railColor||void 0,trackColor:e.trackColor||void 0,marks:e.marks||!1,className:e.hasError?"dk-has-error":""})},color:({field:e,value:a,onChange:r})=>{const n=(0,s.useId)(),o=`dokan-kits-color-${e.id||n}`;return(0,zr.jsxs)("div",{className:"dokan-kits-color-field",children:[(0,zr.jsx)("div",{className:"dokan-kits-color-field-label",children:e.label&&(0,zr.jsx)("label",{htmlFor:o,children:e.label})}),(0,zr.jsx)(t.ColorPicker,{id:o,color:a||e.default||"#000000",onChangeComplete:e=>{let t;t="string"==typeof e.hex?e.hex:`rgba(${e.rgb.r}, ${e.rgb.g}, ${e.rgb.b}, ${e.rgb.a})`,r(t)},disableAlpha:!0===e.disableAlpha}),e.description&&(0,zr.jsx)("p",{className:"dokan-kits-color-field-description",children:e.description})]})},textarea:({field:e,value:a,onChange:r})=>(0,zr.jsx)(t.TextareaControl,{label:e.label,help:e.description,value:a||"",onChange:r,disabled:e.disabled,placeholder:e.placeholder||"",rows:e.rows||4}),radio:({field:e,value:a,onChange:r})=>(0,zr.jsx)(t.RadioControl,{label:e.label,help:e.description,selected:a||e.default||"",options:e.options||[],onChange:r,disabled:e.disabled}),checkbox:({field:e,value:a,onChange:r})=>{const s=!0===a||"true"===a||"1"===a||1===a;return(0,zr.jsx)(t.CheckboxControl,{label:e.label,help:e.description,checked:s,onChange:e=>{r(e)},disabled:e.disabled||e.readonly})},media:({field:e,value:a,onChange:r})=>{const n=e.allowedTypes||["image"],o=(0,s.useId)(),d=`dokan-kits-media-${e.id||o}`,i=`${d}-label`;return(0,zr.jsxs)("div",{className:"dokan-kits-media-field",children:[(0,zr.jsx)("div",{className:"dokan-kits-media-field-label",children:e.label&&(0,zr.jsx)("label",{id:i,htmlFor:d,children:e.label})}),(0,zr.jsx)(yn.MediaUploadCheck,{children:(0,zr.jsx)(yn.MediaUpload,{onSelect:e=>{r(e.id)},allowedTypes:n,value:a,render:({open:s})=>(0,zr.jsx)("div",{className:"dokan-kits-media-upload",id:d,children:a?(0,zr.jsxs)("div",{className:"dokan-kits-media-preview",children:[n.includes("image")&&(0,zr.jsx)("img",{src:`${e.mediaBaseUrl||""}?id=${a}&size=medium`,alt:""}),(0,zr.jsxs)("div",{className:"dokan-kits-media-actions",children:[(0,zr.jsx)(t.Button,{onClick:s,variant:"secondary",isSmall:!0,children:(0,ua.__)("Replace","dokan-kits")}),(0,zr.jsx)(t.Button,{onClick:()=>r(""),variant:"link",isDestructive:!0,isSmall:!0,children:(0,ua.__)("Remove","dokan-kits")})]})]}):(0,zr.jsx)(t.Button,{onClick:s,variant:"secondary","aria-labelledby":i,children:e.buttonText||(0,ua.__)("Choose Media","dokan-kits")})})})}),e.description&&(0,zr.jsx)("p",{className:"dokan-kits-media-field-description",children:e.description})]})},code:({field:e,value:t,onChange:a})=>{const r=(0,s.useId)(),n=`dokan-kits-code-${e.id||r}`;return(0,zr.jsxs)("div",{className:"dokan-kits-code-field",children:[e.label&&(0,zr.jsx)("label",{htmlFor:n,className:"dokan-kits-code-field-label",children:e.label}),(0,zr.jsx)("div",{className:"dokan-kits-code-editor",children:(0,zr.jsx)("textarea",{id:n,className:"dokan-kits-code-textarea",value:t||"",onChange:e=>a(e.target.value),disabled:e.disabled,placeholder:e.placeholder||"",rows:e.rows||10,spellCheck:"false"})}),e.description&&(0,zr.jsx)("p",{className:"dokan-kits-code-field-description",children:e.description})]})},button:({field:e})=>{const[a,r]=(0,s.useState)(!1);return(0,zr.jsx)(t.Button,{variant:(()=>{switch(e.button_type){case"primary":default:return"primary";case"secondary":return"secondary";case"tertiary":return"tertiary";case"link":return"link"}})(),size:e.button_size,className:Lr("dk-admin-button dk-w-full dk-justify-center",e.classes),icon:e.icon||null,isDestructive:"destructive"===e.button_type,isBusy:a,disabled:e.disabled||a,onClick:()=>{if(!e.confirm_message||e.skipConfirmation||window.confirm(e.confirm_message))switch(e.action){case"ajax":e.ajax_action&&(r(!0),window.jQuery.ajax({url:window.ajaxurl,method:"POST",data:{action:e.ajax_action,nonce:window.Dokan_Kits?.nonce||"",button_id:e.id}}).done(e=>{e.success&&"function"==typeof window.Dokan_Kits?.notify?window.Dokan_Kits.notify({type:"success",message:e.data?.message||"Action completed successfully",isDismissible:!0}):e.success||"function"!=typeof window.Dokan_Kits?.notify||window.Dokan_Kits.notify({type:"error",message:e.data?.message||"Action failed",isDismissible:!0})}).fail(()=>{"function"==typeof window.Dokan_Kits?.notify&&window.Dokan_Kits.notify({type:"error",message:"Failed to complete the action",isDismissible:!0})}).always(()=>{r(!1)}));break;case"link":e.url&&(window.location.href=e.url);break;default:"function"==typeof e.onClick&&e.onClick()}},children:e.button_text||e.label||"Button"})}},vn={text:"text",textarea:"textarea",select:"select","card-select":"card-select","multi-select":"multi-select",number:"number",checkbox:"checkbox",radio:"radio",color:"color",media:"media",code:"code",toggle:"toggle",button:"button"},jn=({field:e,value:t,onChange:a})=>{let r=e.type;e.variant&&(r=vn[e.variant]||"text","number"===e.variant&&"range"===e.display&&(r="range"));const s=wn[r];if(!s)return(0,zr.jsx)("div",{className:"dokan-kits-field-error",children:(0,zr.jsxs)("p",{children:[(0,ua.__)("Unknown field type:","dokan-kits"),(0,zr.jsx)("code",{children:r})]})});const n={...e,label:e.label||e.title||"",options:e.options||[],placeholder:e.placeholder||"",readonly:e.readonly||!1,disabled:e.disabled||!1,min:e.minimum,max:e.maximum,step:e.step};return(0,zr.jsx)(s,{field:n,value:t,onChange:a})},Nn={text:"text",textarea:"textarea",select:"select","card-select":"card-select","multi-select":"multi-select",number:"number",checkbox:"checkbox",radio:"radio",color:"color",media:"media",code:"code",toggle:"toggle"},Cn=({tabId:e,sectionId:t,fields:a,settings:r,validationErrors:n={},onSettingChange:o})=>{const[d,i]=(0,s.useState)({}),l=(0,s.useRef)({}),c=(0,s.useRef)({}),u=(0,s.useMemo)(()=>Object.values(a).map(a=>{const s=a.dependency_key||`${e}.${t}.${a.id}`;return{field:a,settingKey:s,value:r[s],isVisible:xn(a,r),hasError:void 0!==n[s],errorMessage:n[s]}}),[a,r,e,t,n]);return(0,s.useEffect)(()=>{const e={},t={};if(u.forEach(({field:a,isVisible:r})=>{r&&(t[a.id]=!0,l.current[a.id]||(e[a.id]="animate-field-enter"))}),Object.keys(e).length>0){i(t=>({...t,...e}));const t=Object.keys(e);setTimeout(()=>{i(e=>{const a={...e};return t.forEach(e=>{delete a[e]}),a})},500)}l.current=t},[u]),(0,s.useEffect)(()=>{const e={};if(u.forEach(({field:t,settingKey:a,hasError:r})=>{r&&!c.current[a]&&(e[t.id]="dk-shake")}),Object.keys(e).length>0){i(t=>({...t,...e}));const t=Object.keys(e);setTimeout(()=>{i(e=>{const a={...e};return t.forEach(e=>{delete a[e]}),a})},800)}const t={};Object.entries(n).forEach(([e,a])=>{t[e]=a}),c.current=t},[n,u]),a&&0!==Object.keys(a).length?(0,zr.jsx)("div",{className:"dokan-kits-settings-fields",children:u.map(({field:e,settingKey:t,value:a,isVisible:r,hasError:s,errorMessage:n})=>{if(!r)return null;const i=(l=e.variant,Nn[l]||"text");var l;const c=d[e.id]||"";return(0,zr.jsxs)("div",{className:`dokan-kits-field-container ${s?"dk-has-error":""} ${c}`,children:[(0,zr.jsx)(jn,{field:{...e,type:i,label:(0,pn.decodeEntities)(e.title),description:(0,pn.decodeEntities)(e.description),hasError:s,errorMessage:n},value:a,onChange:e=>{((e,t)=>{o(e,t)})(t,e)}}),s&&(0,zr.jsx)("div",{className:"dk-text-red-500 dk-text-sm dk-mt-1",children:n})]},e.id)})}):(0,zr.jsx)("p",{children:(0,ua.__)("No fields in this section.","dokan-kits")})},Sn=({tabId:e,structure:a,settings:r,validationErrors:s={},onSettingChange:n,className:o="",emptyMessage:d=null})=>a?a.sections&&Object.keys(a.sections).length>0?(0,zr.jsx)("div",{className:Lr(`dokan-kits-tab-content dokan-kits-tab-${e}`,o,"dk-mt-1"),children:Object.keys(a.sections).map(o=>{const d=a.sections[o],i=Object.keys(s).some(t=>t.startsWith(`${e}.${o}.`)||Object.values(d.fields).some(e=>e.dependency_key&&s[e.dependency_key]));return(0,zr.jsxs)(t.Card,{className:Lr("dokan-kits-settings-section dk-mb-wp-6 last:dk-mb-0",{"dk-border-red-300":i}),children:[(0,zr.jsxs)(t.CardHeader,{className:"dk-block dk-p-4 dk-bg-white dk-border-b dk-border-gray-200",children:[(0,zr.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-2",children:[(0,zr.jsx)("h3",{className:"dk-text-base dk-font-medium",children:(0,pn.decodeEntities)(d.title)}),d.badge&&(0,zr.jsx)("span",{className:"dk-text-xs dk-px-2 dk-py-0.5 dk-rounded-full dk-font-medium "+("primary"===d.badge.type?"dk-bg-blue-100 dk-text-blue-800":"success"===d.badge.type?"dk-bg-green-100 dk-text-green-800":"warning"===d.badge.type?"dk-bg-yellow-100 dk-text-yellow-800":"danger"===d.badge.type?"dk-bg-red-100 dk-text-red-800":"info"===d.badge.type?"dk-bg-indigo-100 dk-text-indigo-800":"dk-bg-gray-100 dk-text-gray-800"),children:(0,pn.decodeEntities)(d.badge.text)})]}),d.description&&(0,zr.jsx)("p",{className:"dk-text-sm dk-text-gray-600 dk-mt-1",children:(0,pn.decodeEntities)(d.description)})]}),(0,zr.jsx)(t.CardBody,{children:(0,zr.jsx)(Cn,{tabId:e,sectionId:o,fields:d.fields,settings:r,validationErrors:s,onSettingChange:n})})]},o)})}):(0,zr.jsx)(t.Card,{className:"dk-bg-gray-50",children:(0,zr.jsx)(t.CardBody,{children:(0,zr.jsx)("p",{className:"dk-text-center dk-text-gray-500",children:d||(0,ua.__)("No features available for this tab.","dokan-kits")})})}):(0,zr.jsx)(t.Card,{className:"dk-bg-gray-50",children:(0,zr.jsx)(t.CardBody,{children:(0,zr.jsx)("p",{className:"dk-text-center dk-text-gray-500",children:(0,ua.__)("Tab structure not found.","dokan-kits")})})}),En=()=>{const e=({className:e})=>(0,zr.jsx)("div",{className:`dk-animate-pulse dk-bg-gray-200 dk-rounded ${e}`}),a=()=>(0,zr.jsx)("div",{className:"dk-flex dk-border-b dk-border-gray-200 dk-mb-wp-4",children:(0,zr.jsx)("div",{className:"dk-flex dk-overflow-x-auto dk-no-scrollbar",children:Array(3).fill().map((t,a)=>(0,zr.jsx)("div",{className:"dk-pb-wp-3 dk-px-wp-4 dk-whitespace-nowrap "+(0===a?"dk-border-b-2 dk-border-primary-500":""),children:(0,zr.jsx)(e,{className:"dk-h-6 dk-w-32"})},a))})}),r=()=>(0,zr.jsx)("div",{className:"dk-border-b dk-border-gray-200 dk-py-wp-4",children:(0,zr.jsxs)("div",{className:"dk-flex dk-flex-col md:dk-flex-row dk-items-start md:dk-items-center dk-justify-between",children:[(0,zr.jsxs)("div",{className:"dk-flex-grow",children:[(0,zr.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-wp-3",children:[(0,zr.jsx)(e,{className:"dk-h-6 dk-w-40 dk-mb-wp-1"}),(0,zr.jsx)(e,{className:"dk-h-5 dk-w-16 dk-rounded-full"})]}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-max-w-2xl dk-mt-wp-1"})]}),(0,zr.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-wp-2 dk-mt-wp-2 md:dk-mt-0",children:[(0,zr.jsx)(e,{className:"dk-h-6 dk-w-12 dk-rounded-full"}),(0,zr.jsx)(e,{className:"dk-h-8 dk-w-8 dk-rounded-full"})]})]})}),s=()=>(0,zr.jsxs)(t.Card,{className:"dk-mt-wp-4",children:[(0,zr.jsx)(t.CardHeader,{children:(0,zr.jsx)(e,{className:"dk-h-7 dk-w-64"})}),(0,zr.jsxs)(t.CardBody,{children:[(0,zr.jsx)("div",{className:"dk-space-y-wp-6",children:Array(3).fill().map((t,a)=>(0,zr.jsxs)("div",{className:"dk-space-y-wp-4",children:[(0,zr.jsx)(e,{className:"dk-h-6 dk-w-48"}),Array(2).fill().map((t,a)=>(0,zr.jsxs)("div",{className:"dk-mb-wp-4",children:[(0,zr.jsx)(e,{className:"dk-h-5 dk-w-40 dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-h-10 dk-w-full dk-rounded"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-3/4 dk-mt-wp-1"})]},a))]},a))}),(0,zr.jsxs)("div",{className:"dk-flex dk-justify-end dk-gap-wp-2 dk-mt-wp-6 dk-pt-wp-4 dk-border-t dk-border-gray-200",children:[(0,zr.jsx)(e,{className:"dk-h-10 dk-w-24 dk-rounded"}),(0,zr.jsx)(e,{className:"dk-h-10 dk-w-24 dk-rounded"})]})]})]}),n=()=>(0,zr.jsxs)("div",{className:"dk-mb-wp-6",children:[(0,zr.jsx)(t.Card,{className:"dk-mb-wp-6",children:(0,zr.jsx)(t.CardBody,{children:(0,zr.jsxs)("div",{className:"dk-flex dk-flex-col md:dk-flex-row dk-items-start md:dk-items-center dk-justify-between dk-gap-wp-4",children:[(0,zr.jsxs)("div",{children:[(0,zr.jsx)(e,{className:"dk-h-7 dk-w-64 dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-max-w-2xl"})]}),(0,zr.jsxs)("div",{className:"dk-flex dk-gap-wp-2",children:[(0,zr.jsx)(e,{className:"dk-h-10 dk-w-32 dk-rounded"}),(0,zr.jsx)(e,{className:"dk-h-10 dk-w-32 dk-rounded"})]})]})})}),(0,zr.jsx)("div",{className:"dk-mb-wp-6",children:(0,zr.jsx)(t.Card,{children:(0,zr.jsx)(t.CardBody,{children:Array(5).fill().map((e,t)=>(0,zr.jsx)(r,{},t))})})}),(0,zr.jsx)(s,{})]});return(0,zr.jsxs)("div",{className:"dokan-kits-features-page dk-p-6",children:[(0,zr.jsx)("div",{className:"dk-mb-wp-6",children:(0,zr.jsx)(e,{className:"dk-h-12 dk-w-full dk-rounded"})}),(0,zr.jsx)(a,{}),(0,zr.jsx)(n,{})]})},Rn=e=>{let t=void 0!==e.value?e.value:void 0!==e.default?e.default:"";t=((e,t,a="",r=null)=>{if(null==e&&(e=a),["toggle","checkbox"].includes(t))return Boolean(!0===e||"true"===e||"1"===e||1===e);if("number"===t){if(""===e||null==e)return"";const t=parseFloat(e);if(!isNaN(t))return t;if(""!==a&&null!=a){const e=parseFloat(a);return isNaN(e)?"":e}return""}return"multi-select"!==t||Array.isArray(e)?"card-select"===t?r&&r.multiple?Array.isArray(e)?e:e?[e]:[]:Array.isArray(e)?e.length>0?e[0]:"":e||"":e:e?[e]:[]})(t,e.variant,e.default);const a=[];return e.dependencies&&Array.isArray(e.dependencies)&&e.dependencies.forEach(e=>{const t=(e=>{if(!e||!e.key)return null;const t={...e};return t.comparison||(t.comparison="="),"string"==typeof t.value&&("true"===t.value?t.value=!0:"false"===t.value?t.value=!1:isNaN(Number(t.value))||[">","<",">=","<="].includes(t.comparison)&&(t.value=Number(t.value))),t})(e);t&&a.push(t)}),{id:e.id,title:e.title||"",description:e.description||"",variant:e.variant||"text",value:t,default:e.default||"",placeholder:e.placeholder||"",readonly:e.readonly||!1,disabled:e.disabled||!1,dependencies:a,dependency_key:e.dependency_key||"",required:e.required||!1,options:e.options||[],minimum:e.minimum,maximum:e.maximum,step:e.step,size:e.size}},Dn=(e,t,a)=>{if(!e||!t)return e;const r={...e},s=((e,t)=>{if(!e||!t)return null;for(const a in e){const r=e[a];for(const e in r.sections){const s=r.sections[e];for(const r in s.fields){const n=s.fields[r];if((n.dependency_key||`${a}.${e}.${r}`)===t)return{field:n,path:{tabId:a,sectionId:e,fieldId:r}}}}}return null})(r,t);if(s){const{path:e}=s;r[e.tabId].sections[e.sectionId].fields[e.fieldId]={...r[e.tabId].sections[e.sectionId].fields[e.fieldId],value:a}}return r},Mn=(e=null,t=()=>{})=>{const[a,r]=(0,s.useState)({}),[n,o]=(0,s.useState)({}),[d,i]=(0,s.useState)(!0),l=(0,s.useCallback)((e,a)=>{o(t=>({...t,[e]:a})),"function"==typeof t&&t(e,a),r(t=>Dn(t,e,a))},[t]),c=(0,s.useCallback)(e=>{e&&"object"==typeof e&&(o(t=>({...t,...e})),"function"==typeof t&&Object.entries(e).forEach(([e,a])=>{t(e,a)}),r(t=>((e,t)=>{if(!e||!t||"object"!=typeof t)return e;let a={...e};return Object.entries(t).forEach(([e,t])=>{a=Dn(a,e,t)}),a})(t,e)))},[t]);return(0,s.useEffect)(()=>{(()=>{if(void 0===window.Dokan_Kits)return void i(!1);const t=(e=>{const t={};if(!e?.children?.length)return console.warn("Invalid structure data: missing children"),t;try{e.children.forEach(e=>{e.id&&"section"===e.type&&e.display&&(t[e.id]={id:e.id,title:e.title||"",icon:e.icon||"",description:e.description||"",sections:{}},e.children?.length&&e.children.forEach(a=>{a.id&&"subsection"===a.type&&a.display&&(t[e.id].sections[a.id]={id:a.id,title:a.title||"",description:a.description||"",badge:a.badge||null,fields:{}},a.children?.length&&a.children.forEach(r=>{r.id&&"field"===r.type&&r.display&&(t[e.id].sections[a.id].fields[r.id]=Rn(r))}))}))})}catch(e){console.error("Error parsing structure:",e)}return t})(window.Dokan_Kits.features||{});r(t);const a=bn(t);if(e&&Object.keys(e).length>0){const a=((e,t)=>{const a=bn(e);if(!t||!t.data)return a;const r={...a},s=t.data;for(const t in e){const a=e[t];if(!s[t])continue;const n=s[t];for(const e in a.sections){const s=a.sections[e];for(const a in s.fields){if(!n[e])continue;const o=s.fields[a],d=o.dependency_key||`${t}.${e}.${a}`;if(!n[e][a])continue;let i=n[e][a];if(["toggle","checkbox"].includes(o.variant))i=Boolean(!0===i||"true"===i||"1"===i||1===i);else if("number"===o.variant&&""!==i){const e=parseFloat(i);isNaN(e)||(i=e)}else"multi-select"!==o.variant||Array.isArray(i)?"card-select"===o.variant&&(o.multiple?Array.isArray(i)||(i=i?[i]:[]):Array.isArray(i)&&(i=i.length>0?i[0]:"")):i=i?[i]:[];r[d]=i}}}return r})(t,{data:e});o(a)}else o(a);i(!1)})()},[e]),{structure:a,settings:n,isLoading:d,updateSetting:l,updateSettings:c}},Tn={duration:5e3,position:"top-right",style:{background:"transparent",boxShadow:"none",padding:0}},Pn=(e,t,a=Os,r={})=>{const s={...Tn,...r,id:e};let n=s.duration||5e3;return a===Fs&&(n=s.duration||8e3),zs.custom(e=>(0,zr.jsx)($s,{t:e,message:t,type:a,onClose:()=>zs.dismiss(e.id)}),{...s,duration:n})},Ln={},zn=({tab:e,structure:t,settings:a,validationErrors:r,onSettingChange:s})=>{const n=e.name;if(Ln[n]){const e=Ln[n];return(0,zr.jsx)(e,{structure:t[n],settings:a,validationErrors:r,onSettingChange:s})}return(0,zr.jsx)(Sn,{tabId:n,structure:t[n],settings:a,validationErrors:r,onSettingChange:s})},An=()=>{const{addNotice:e,clearNotices:a}=Us(),[r,n]=(0,s.useState)(null),[o,d]=(0,s.useState)(!0),[i,l]=(0,s.useState)({});(0,s.useEffect)(()=>{(async()=>{try{const e=await nn()({path:"/dokan-kits/v1/settings"});e.data&&e.data.settings&&n(e.data.settings),d(!1)}catch(t){e(t.message||(0,ua.__)("Failed to load settings. Please refresh the page.","dokan-kits"),Fs),d(!1)}})()},[e]);const c=(0,s.useCallback)((e,t)=>{l(a=>({...a,[e]:t}))},[]),u=(0,s.useCallback)(async()=>{try{const e=await nn()({path:"/dokan-kits/v1/settings",method:"POST",data:{settings:i}});if(e.success)return e;throw new Error(e.message||(0,ua.__)("Failed to save settings","dokan-kits"))}catch(e){throw e}},[i]),{structure:k,settings:m,isLoading:h,updateSetting:p}=Mn(r,c),{isSaving:f,validationErrors:x,saveForm:g}=((e,t,a)=>{const[r,n]=(0,s.useState)(t||{}),[o,d]=(0,s.useState)(!1),[i,l]=(0,s.useState)(null),[c,u]=(0,s.useState)(!1),[k,m]=(0,s.useState)({}),h=(0,s.useCallback)((e,t)=>{n(a=>({...a,[e]:t}))},[]),p=(0,s.useCallback)(e=>{e&&"object"==typeof e&&n(t=>({...t,...e}))},[]),f=(0,s.useCallback)(()=>{n(t||{}),m({}),l(null),u(!1)},[t]),x=(0,s.useCallback)(()=>{l(null),u(!1)},[]),g=(0,s.useCallback)(()=>{if(!e)return!0;const{isValid:t,errors:a}=gn(e,r);return m(a),t||(l((0,ua.__)("Please fix the validation errors before saving.","dokan-kits")),u(!0)),t},[e,r]),b=(0,s.useCallback)(async()=>{if(!g())return!1;m({}),d(!0),l(null),u(!1);try{const e=await a(r);return d(!1),l(e.message),u(!e.success),setTimeout(()=>{l(null)},3e3),e.success}catch(e){return d(!1),l((0,ua.__)("Failed to save form data.","dokan-kits")),u(!0),!1}},[g,a,r]);return{values:r,isSaving:o,message:i,isError:c,validationErrors:k,updateValue:h,updateValues:p,saveForm:b,resetForm:f,clearNotifications:x,validateForm:g}})(k,m,u),b=(0,s.useCallback)(async()=>{if(a(),Object.keys(x).length>0)return e((0,ua.__)("Please fix the validation errors before saving.","dokan-kits"),Fs,{duration:8e3}),Object.values(x).forEach((t,a)=>{setTimeout(()=>{e(t,Fs,{duration:6e3})},500*(a+1))}),!1;const t=((e,t={})=>zs.custom(t=>(0,zr.jsx)($s,{t,message:e,type:"info",onClose:()=>zs.dismiss(t.id),showCloseButton:!1}),{...Tn,duration:1/0,...t,id:t.id||`loading-${Date.now()}`}))((0,ua.__)("Saving your changes…","dokan-kits"));try{const e=await g();return e?Pn(t,(0,ua.__)("Settings saved successfully!","dokan-kits"),Os):Pn(t,(0,ua.__)("Failed to save settings. Please try again.","dokan-kits"),Fs),e}catch(e){return Pn(t,e.message||(0,ua.__)("An unexpected error occurred while saving.","dokan-kits"),Fs),!1}},[e,a,x,g]);if(h||o)return(0,zr.jsx)(En,{});const y=Object.keys(k).map(e=>({name:e,title:(0,pn.decodeEntities)(k[e].title),className:`dokan-kits-tab-${e}`}));return(0,zr.jsx)("div",{className:"dk-max-w-full dk-mx-auto dk-py-wp-5",children:(0,zr.jsxs)(t.Card,{className:"dk-shadow-sm",children:[(0,zr.jsx)(t.CardHeader,{className:"dk-border-b dk-border-gray-200",children:(0,zr.jsx)("h2",{className:"dk-text-xl dk-font-semibold dk-m-0",children:(0,ua.__)("Manage Features","dokan-kits")})}),(0,zr.jsx)(t.CardBody,{children:(0,zr.jsx)(t.TabPanel,{activeClass:"dk-text-primary-600 dk-border dk-border-solid dk-border-b-2 dk-border-primary-500 dk-bg-gray-50",tabs:y,children:e=>(0,zr.jsx)(zn,{tab:e,structure:k,settings:m,validationErrors:x,onSettingChange:p})})}),(0,zr.jsx)(t.CardFooter,{className:"dk-sticky dk-bottom-0 dk-border-t dk-border-gray-200 dk-bg-gray-50",children:(0,zr.jsx)(t.Button,{variant:"primary",isBusy:f,onClick:b,disabled:h||f,className:"dk-w-full dk-justify-center hover:!dk-bg-primary-800 focus-visible:!dk-bg-primary-800 focus:!dk-ring-primary-800",children:f?(0,ua.__)("Saving Changes…","dokan-kits"):(0,ua.__)("Save Changes","dokan-kits")})})]})})},$n=({className:e})=>(0,zr.jsxs)("div",{className:Lr("dk-min-h-[400px] dk-flex dk-flex-col dk-items-center dk-justify-center dk-p-wp-8 dk-text-center",e),children:[(0,zr.jsx)("div",{className:"dk-flex dk-justify-center dk-mb-wp-6",children:(0,zr.jsxs)("div",{className:"dk-inline-flex dk-flex-col dk-items-center dk-justify-center",children:[(0,zr.jsx)("div",{className:"dk-text-8xl dk-font-bold dk-text-primary-200 dk-mb-wp-4",children:"404"}),(0,zr.jsx)("div",{className:"dk-inline-flex dk-items-center dk-justify-center dk-w-20 dk-h-20 dk-rounded-full dk-bg-blue-100 dk-border-4 dk-border-blue-200 dk-shadow-inner",children:(0,zr.jsx)("span",{className:"dashicons dashicons-marker dk-text-4xl dk-text-blue-600"})})]})}),(0,zr.jsx)("h1",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-3",children:(0,ua.__)("Page Not Found","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-max-w-lg dk-text-gray-600 dk-mb-wp-6",children:[(0,zr.jsx)("p",{className:"dk-mb-wp-3",children:(0,ua.__)("We couldn't find the page you're looking for.","dokan-kits")}),(0,zr.jsx)("p",{children:(0,ua.__)("It might have been moved, deleted, or perhaps you entered an incorrect URL.","dokan-kits")})]}),(0,zr.jsxs)("div",{className:"dk-flex dk-flex-col md:dk-flex-row dk-items-center dk-space-y-wp-4 md:dk-space-y-0 md:dk-space-x-wp-4",children:[(0,zr.jsxs)(sa,{to:"/",className:Lr("dk-admin-button dk-bg-primary-600 hover:dk-bg-primary-700 dk-text-white dk-shadow-md hover:dk-shadow-lg dk-transition dk-duration-200 dk-flex dk-items-center"),children:[(0,zr.jsx)("span",{className:"dashicons dashicons-dashboard dk-mr-wp-2"}),(0,ua.__)("Go to Dashboard","dokan-kits")]}),(0,zr.jsxs)(sa,{to:"/features",className:Lr("dk-admin-button dk-admin-button-secondary dk-shadow-md hover:dk-shadow-lg dk-transition dk-duration-200 dk-flex dk-items-center"),children:[(0,zr.jsx)("span",{className:"dashicons dashicons-admin-settings dk-mr-wp-2"}),(0,ua.__)("Go to Features","dokan-kits")]})]}),(0,zr.jsx)("div",{className:"dk-mt-wp-8 dk-pt-wp-6 dk-border-t dk-border-gray-200 dk-max-w-md",children:(0,zr.jsxs)("div",{className:"dk-flex dk-justify-center dk-space-x-wp-6",children:[(0,zr.jsxs)("a",{href:"https://wordpress.org/support/plugin/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:Lr("dk-text-primary-600 hover:dk-text-primary-800 dk-flex dk-flex-col dk-items-center"),children:[(0,zr.jsx)("span",{className:"dashicons dashicons-sos dk-text-xl dk-mb-wp-1"}),(0,zr.jsx)("span",{className:"dk-text-sm",children:(0,ua.__)("Support","dokan-kits")})]}),(0,zr.jsxs)("a",{href:"https://wordpress.org/plugins/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:Lr("dk-text-primary-600 hover:dk-text-primary-800 dk-flex dk-flex-col dk-items-center"),children:[(0,zr.jsx)("span",{className:"dashicons dashicons-book dk-text-xl dk-mb-wp-1"}),(0,zr.jsx)("span",{className:"dk-text-sm",children:(0,ua.__)("Documentation","dokan-kits")})]}),(0,zr.jsxs)("a",{href:"https://wordpress.org/plugins/dokan-kits/#developers",target:"_blank",rel:"noopener noreferrer",className:Lr("dk-text-primary-600 hover:dk-text-primary-800 dk-flex dk-flex-col dk-items-center"),children:[(0,zr.jsx)("span",{className:"dashicons dashicons-admin-plugins dk-text-xl dk-mb-wp-1"}),(0,zr.jsx)("span",{className:"dk-text-sm",children:(0,ua.__)("Plugin Info","dokan-kits")})]})]})})]}),On=(()=>{const{base:e="",variants:t={},defaults:a={}}={base:"dk-inline-flex dk-items-center dk-rounded-full dk-font-medium",variants:{variant:{default:"dk-bg-primary-100 dk-text-primary-800",secondary:"dk-bg-gray-100 dk-text-gray-800",success:"dk-bg-green-100 dk-text-green-800",danger:"dk-bg-red-100 dk-text-red-800",warning:"dk-bg-yellow-100 dk-text-yellow-800",info:"dk-bg-blue-100 dk-text-blue-800",outline:"dk-bg-transparent dk-border dk-border-gray-200 dk-text-gray-800"},size:{default:"dk-px-wp-2 dk-py-wp-1 dk-text-xs",sm:"dk-px-wp-1.5 dk-py-wp-0.5 dk-text-xs",lg:"dk-px-wp-3 dk-py-wp-1.5 dk-text-sm"}},defaults:{variant:"default",size:"default"}};return(r={})=>{const s=Object.entries(t).reduce((e,[t,s])=>{const n=r[t]||a[t];return n&&s[n]&&e.push(s[n]),e},[]);return Lr(e,...s,r.className||"")}})(),Fn=(0,s.forwardRef)(({variant:e="default",size:t="default",children:a,className:r,...s},n)=>(0,zr.jsx)("span",{className:On({variant:e,size:t,className:r}),ref:n,...s,children:a})),Bn={default:"dk-bg-primary-600 dk-text-white hover:dk-bg-primary-700 dk-border dk-border-primary-600",destructive:"dk-bg-red-600 dk-text-white hover:dk-bg-red-700 dk-border dk-border-red-600",outline:"dk-bg-transparent dk-text-gray-700 hover:dk-bg-gray-100 dk-border dk-border-gray-300",secondary:"dk-bg-gray-100 dk-text-gray-700 hover:dk-bg-gray-200 dk-border dk-border-gray-200",ghost:"dk-bg-transparent dk-text-gray-700 hover:dk-bg-gray-100 dk-border dk-border-transparent",link:"dk-bg-transparent dk-text-primary-600 hover:dk-underline dk-border-none dk-p-0"},In={default:"dk-h-9 dk-px-4 dk-py-2",sm:"dk-h-8 dk-px-3 dk-text-sm",lg:"dk-h-10 dk-px-8",icon:"dk-h-9 dk-w-9"},Un=(0,s.forwardRef)(({variant:e="default",size:t="default",isLoading:a=!1,disabled:r=!1,className:s,children:n,...o},d)=>(0,zr.jsxs)("button",{className:Lr("dk-inline-flex dk-items-center dk-justify-center dk-rounded-md dk-font-medium dk-transition-colors dk-focus-visible:dk-outline-none dk-focus-visible:dk-ring-2 dk-focus-visible:dk-ring-primary-500 dk-focus-visible:dk-ring-offset-2 disabled:dk-opacity-50 disabled:dk-pointer-events-none",Bn[e],In[t],a&&"dk-opacity-70 dk-cursor-wait",s),disabled:r||a,ref:d,...o,children:[a&&(0,zr.jsx)($r,{className:"dk-mr-2 dk-h-4 dk-w-4 dk-animate-spin"}),n]})),Hn={default:"dk-bg-white dk-border dk-border-gray-200 dk-rounded-lg dk-shadow-sm",flat:"dk-bg-white dk-border dk-border-gray-200 dk-rounded-lg",elevated:"dk-bg-white dk-border dk-border-gray-200 dk-rounded-lg dk-shadow-md",outline:"dk-bg-transparent dk-border dk-border-gray-200 dk-rounded-lg"},Vn=(0,s.forwardRef)(({variant:e="default",children:t,className:a,header:r,footer:s,...n},o)=>(0,zr.jsxs)("div",{className:Lr(Hn[e]||Hn.default,a),ref:o,...n,children:[r&&(0,zr.jsx)("div",{className:"dk-border-b dk-border-gray-200 dk-p-wp-4",children:r}),(0,zr.jsx)("div",{className:"dk-p-wp-4",children:t}),s&&(0,zr.jsx)("div",{className:"dk-border-t dk-border-gray-200 dk-p-wp-4",children:s})]})),qn=(0,s.forwardRef)(({children:e,className:t,...a},r)=>(0,zr.jsx)("div",{className:Lr("dk-flex dk-flex-col dk-space-y-wp-1.5",t),ref:r,...a,children:e})),Wn=(0,s.forwardRef)(({children:e,className:t,...a},r)=>(0,zr.jsx)("h3",{className:Lr("dk-text-lg dk-font-medium dk-text-gray-900",t),ref:r,...a,children:e})),Kn=(0,s.forwardRef)(({children:e,className:t,...a},r)=>(0,zr.jsx)("p",{className:Lr("dk-text-sm dk-text-gray-500",t),ref:r,...a,children:e})),Gn=(0,s.forwardRef)(({children:e,className:t,...a},r)=>(0,zr.jsx)("div",{className:Lr("dk-py-wp-2",t),ref:r,...a,children:e})),Yn=(0,s.forwardRef)(({children:e,className:t,...a},r)=>(0,zr.jsx)("div",{className:Lr("dk-flex dk-items-center dk-justify-end dk-space-x-wp-2",t),ref:r,...a,children:e})),Jn=()=>{const[e,a]=(0,s.useState)(!1),r=()=>{a(!0),setTimeout(()=>{a(!1)},2e3)};return(0,zr.jsxs)("div",{className:"dk-p-wp-4",children:[(0,zr.jsx)("h1",{className:"dk-text-2xl dk-font-bold dk-mb-wp-6",children:(0,ua.__)("Tailwind Merge Demo","dokan-kits")}),(0,zr.jsxs)("div",{className:Lr("dk-bg-white","dk-border dk-border-gray-200","dk-shadow-md","dk-rounded-lg","dk-mb-wp-8 dk-p-wp-4"),children:[(0,zr.jsx)(t.CardHeader,{children:(0,zr.jsx)("h2",{className:"dk-text-lg dk-font-medium",children:(0,ua.__)("Button Variants with Tailwind Merge","dokan-kits")})}),(0,zr.jsxs)(t.CardBody,{children:[(0,zr.jsxs)("div",{className:"dk-flex dk-flex-wrap dk-gap-wp-4",children:[(0,zr.jsx)(Un,{onClick:r,isLoading:e,children:(0,ua.__)("Default Button","dokan-kits")}),(0,zr.jsx)(Un,{variant:"destructive",onClick:r,isLoading:e,children:(0,ua.__)("Destructive","dokan-kits")}),(0,zr.jsx)(Un,{variant:"outline",onClick:r,isLoading:e,children:(0,ua.__)("Outline","dokan-kits")}),(0,zr.jsx)(Un,{variant:"secondary",onClick:r,isLoading:e,children:(0,ua.__)("Secondary","dokan-kits")}),(0,zr.jsx)(Un,{variant:"ghost",onClick:r,isLoading:e,children:(0,ua.__)("Ghost","dokan-kits")}),(0,zr.jsx)(Un,{variant:"link",onClick:r,isLoading:e,children:(0,ua.__)("Link","dokan-kits")})]}),(0,zr.jsxs)("div",{className:"dk-mt-wp-8",children:[(0,zr.jsx)("h3",{className:"dk-text-md dk-font-medium dk-mb-wp-4",children:(0,ua.__)("Button Sizes","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-wp-4",children:[(0,zr.jsx)(Un,{size:"sm",children:(0,ua.__)("Small","dokan-kits")}),(0,zr.jsx)(Un,{children:(0,ua.__)("Default","dokan-kits")}),(0,zr.jsx)(Un,{size:"lg",children:(0,ua.__)("Large","dokan-kits")})]})]}),(0,zr.jsxs)("div",{className:"dk-mt-wp-8",children:[(0,zr.jsx)("h3",{className:"dk-text-md dk-font-medium dk-mb-wp-4",children:(0,ua.__)("Class Overrides with Tailwind Merge","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-flex dk-gap-wp-4",children:[(0,zr.jsx)(Un,{className:"dk-bg-purple-600 dk-border-purple-600 hover:dk-bg-purple-700",children:(0,ua.__)("Custom Purple","dokan-kits")}),(0,zr.jsx)(Un,{variant:"outline",className:"dk-text-amber-600 dk-border-amber-300 hover:dk-bg-amber-50",children:(0,ua.__)("Custom Amber","dokan-kits")})]})]})]})]}),(0,zr.jsxs)("div",{className:"dk-mb-wp-8",children:[(0,zr.jsx)(t.CardHeader,{children:(0,zr.jsx)("h2",{className:"dk-text-lg dk-font-medium",children:(0,ua.__)("Dynamic Class Composition","dokan-kits")})}),(0,zr.jsxs)(t.CardBody,{children:[(0,zr.jsx)("div",{className:Lr("dk-p-wp-4","dk-border","dk-rounded-md","dk-bg-gray-50","dk-border-gray-200"),children:(0,zr.jsx)("p",{className:"dk-text-gray-700",children:(0,ua.__)("This box uses tailwind-merge to combine multiple class strings.","dokan-kits")})}),(0,zr.jsx)("div",{className:"dk-mt-wp-4",children:(0,zr.jsx)("div",{className:Lr("dk-p-wp-4","dk-border","dk-rounded-md","dk-bg-blue-50","dk-bg-green-50","dk-border-green-200"),children:(0,zr.jsx)("p",{className:"dk-text-green-700",children:(0,ua.__)("This box demonstrates class conflicts being resolved (bg-blue-50 is overridden by bg-green-50).","dokan-kits")})})})]})]}),(0,zr.jsx)("h2",{className:"dk-text-xl dk-font-bold dk-mb-wp-4 dk-mt-wp-8",children:(0,ua.__)("Custom Card Component","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6 dk-mb-wp-8",children:[(0,zr.jsxs)(Vn,{children:[(0,zr.jsxs)(qn,{children:[(0,zr.jsx)(Wn,{children:(0,ua.__)("Default Card","dokan-kits")}),(0,zr.jsx)(Kn,{children:(0,ua.__)("This is a default card with header and content.","dokan-kits")})]}),(0,zr.jsx)(Gn,{children:(0,zr.jsx)("p",{className:"dk-text-gray-700",children:(0,ua.__)("Card content goes here. This card uses the default styling.","dokan-kits")})}),(0,zr.jsx)(Yn,{children:(0,zr.jsx)(Un,{size:"sm",children:(0,ua.__)("Action","dokan-kits")})})]}),(0,zr.jsxs)(Vn,{variant:"elevated",className:"dk-border-primary-100",children:[(0,zr.jsxs)(qn,{children:[(0,zr.jsx)(Wn,{className:"dk-text-primary-700",children:(0,ua.__)("Elevated Card","dokan-kits")}),(0,zr.jsx)(Kn,{children:(0,ua.__)("This card has elevated styling with custom classes.","dokan-kits")})]}),(0,zr.jsx)(Gn,{children:(0,zr.jsx)("p",{className:"dk-text-gray-700",children:(0,ua.__)("This card demonstrates how to override styles with tailwind-merge.","dokan-kits")})}),(0,zr.jsxs)(Yn,{children:[(0,zr.jsx)(Un,{size:"sm",variant:"outline",children:(0,ua.__)("Cancel","dokan-kits")}),(0,zr.jsx)(Un,{size:"sm",children:(0,ua.__)("Save","dokan-kits")})]})]}),(0,zr.jsxs)(Vn,{variant:"outline",className:"dk-border-dashed",children:[(0,zr.jsxs)(qn,{children:[(0,zr.jsx)(Wn,{children:(0,ua.__)("Outline Card","dokan-kits")}),(0,zr.jsx)(Kn,{children:(0,ua.__)("This card has outline styling with dashed border.","dokan-kits")})]}),(0,zr.jsx)(Gn,{children:(0,zr.jsx)("p",{className:"dk-text-gray-700",children:(0,ua.__)("The outline variant can be combined with other classes.","dokan-kits")})})]}),(0,zr.jsxs)(Vn,{variant:"flat",className:"dk-bg-gray-50",children:[(0,zr.jsxs)(qn,{children:[(0,zr.jsx)(Wn,{children:(0,ua.__)("Flat Card","dokan-kits")}),(0,zr.jsx)(Kn,{children:(0,ua.__)("This card has flat styling with gray background.","dokan-kits")})]}),(0,zr.jsx)(Gn,{children:(0,zr.jsx)("p",{className:"dk-text-gray-700",children:(0,ua.__)("The flat variant has no shadow and can have custom background.","dokan-kits")})})]})]}),(0,zr.jsx)("h2",{className:"dk-text-xl dk-font-bold dk-mb-wp-4 dk-mt-wp-8",children:(0,ua.__)("Badge Component","dokan-kits")}),(0,zr.jsxs)(Vn,{className:"dk-mb-wp-8",children:[(0,zr.jsxs)(qn,{children:[(0,zr.jsx)(Wn,{children:(0,ua.__)("Badge Variants","dokan-kits")}),(0,zr.jsx)(Kn,{children:(0,ua.__)("Different badge variants with tailwind-merge.","dokan-kits")})]}),(0,zr.jsxs)(Gn,{children:[(0,zr.jsxs)("div",{className:"dk-flex dk-flex-wrap dk-gap-wp-3",children:[(0,zr.jsx)(Fn,{children:(0,ua.__)("Default","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"secondary",children:(0,ua.__)("Secondary","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"success",children:(0,ua.__)("Success","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"danger",children:(0,ua.__)("Danger","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"warning",children:(0,ua.__)("Warning","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"info",children:(0,ua.__)("Info","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"outline",children:(0,ua.__)("Outline","dokan-kits")})]}),(0,zr.jsxs)("div",{className:"dk-mt-wp-6",children:[(0,zr.jsx)("h3",{className:"dk-text-md dk-font-medium dk-mb-wp-3",children:(0,ua.__)("Badge Sizes","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-wp-4",children:[(0,zr.jsx)(Fn,{size:"sm",children:(0,ua.__)("Small","dokan-kits")}),(0,zr.jsx)(Fn,{children:(0,ua.__)("Default","dokan-kits")}),(0,zr.jsx)(Fn,{size:"lg",children:(0,ua.__)("Large","dokan-kits")})]})]}),(0,zr.jsxs)("div",{className:"dk-mt-wp-6",children:[(0,zr.jsx)("h3",{className:"dk-text-md dk-font-medium dk-mb-wp-3",children:(0,ua.__)("Custom Badge Styles","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-wp-4",children:[(0,zr.jsx)(Fn,{className:"dk-bg-purple-100 dk-text-purple-800",children:(0,ua.__)("Custom Purple","dokan-kits")}),(0,zr.jsx)(Fn,{className:"dk-bg-gradient-to-r dk-from-blue-500 dk-to-purple-500 dk-text-white",children:(0,ua.__)("Gradient","dokan-kits")}),(0,zr.jsx)(Fn,{className:"dk-border-2 dk-border-dashed dk-border-amber-500 dk-bg-amber-50 dk-text-amber-700",children:(0,ua.__)("Dashed Border","dokan-kits")})]})]})]})]}),(0,zr.jsx)("h2",{className:"dk-text-xl dk-font-bold dk-mb-wp-4 dk-mt-wp-8",children:(0,ua.__)("BadgeCVA Component (with cva)","dokan-kits")}),(0,zr.jsxs)(Vn,{className:"dk-mb-wp-8",children:[(0,zr.jsxs)(qn,{children:[(0,zr.jsx)(Wn,{children:(0,ua.__)("BadgeCVA Variants","dokan-kits")}),(0,zr.jsx)(Kn,{children:(0,ua.__)("Badge component using the cva utility for variant handling.","dokan-kits")})]}),(0,zr.jsxs)(Gn,{children:[(0,zr.jsxs)("div",{className:"dk-flex dk-flex-wrap dk-gap-wp-3",children:[(0,zr.jsx)(Fn,{children:(0,ua.__)("Default","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"secondary",children:(0,ua.__)("Secondary","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"success",children:(0,ua.__)("Success","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"danger",children:(0,ua.__)("Danger","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"warning",children:(0,ua.__)("Warning","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"info",children:(0,ua.__)("Info","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"outline",children:(0,ua.__)("Outline","dokan-kits")})]}),(0,zr.jsxs)("div",{className:"dk-mt-wp-6",children:[(0,zr.jsx)("h3",{className:"dk-text-md dk-font-medium dk-mb-wp-3",children:(0,ua.__)("BadgeCVA with Multiple Variants","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-wp-4",children:[(0,zr.jsx)(Fn,{variant:"success",size:"sm",children:(0,ua.__)("Small Success","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"danger",children:(0,ua.__)("Default Danger","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"warning",size:"lg",children:(0,ua.__)("Large Warning","dokan-kits")})]})]}),(0,zr.jsxs)("div",{className:"dk-mt-wp-6",children:[(0,zr.jsx)("h3",{className:"dk-text-md dk-font-medium dk-mb-wp-3",children:(0,ua.__)("BadgeCVA with Custom Classes","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-wp-4",children:[(0,zr.jsx)(Fn,{className:"dk-bg-purple-100 dk-text-purple-800",children:(0,ua.__)("Custom Purple","dokan-kits")}),(0,zr.jsx)(Fn,{variant:"outline",className:"dk-border-dashed dk-border-blue-400 dk-text-blue-700",children:(0,ua.__)("Custom Outline","dokan-kits")}),(0,zr.jsx)(Fn,{className:"dk-bg-gradient-to-r dk-from-pink-500 dk-to-purple-500 dk-text-white",children:(0,ua.__)("Gradient","dokan-kits")})]})]})]})]})]})},Zn=xa("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]),Xn=xa("chart-no-axes-column-increasing",[["line",{x1:"12",x2:"12",y1:"20",y2:"10",key:"1vz5eb"}],["line",{x1:"18",x2:"18",y1:"20",y2:"4",key:"cun8e5"}],["line",{x1:"6",x2:"6",y1:"20",y2:"16",key:"hq0ia6"}]]),Qn=xa("file-text",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]),eo=xa("ticket",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"M13 5v2",key:"dyzc3o"}],["path",{d:"M13 17v2",key:"1ont0d"}],["path",{d:"M13 11v2",key:"1wjjxi"}]]),to=()=>{const e=({className:e})=>(0,zr.jsx)("div",{className:`dk-animate-pulse dk-bg-gray-200 dk-rounded ${e}`}),a=()=>(0,zr.jsxs)("div",{className:"dk-mb-wp-8 dk-text-center",children:[(0,zr.jsx)(e,{className:"dk-mx-auto dk-h-10 dk-w-1/4 dk-mb-wp-3"}),(0,zr.jsx)(e,{className:"dk-mx-auto dk-h-5 dk-w-2/3 dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-mx-auto dk-h-5 dk-w-1/2 dk-mb-wp-2"})]}),r=({cardCount:a=2})=>(0,zr.jsxs)("div",{className:"dk-mb-wp-8",children:[(0,zr.jsx)(e,{className:"dk-h-8 dk-w-1/4 dk-mb-wp-4"}),(0,zr.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6",children:Array(a).fill().map((a,r)=>(0,zr.jsxs)(t.Card,{className:"dk-flex-1 dk-flex dk-flex-col",children:[(0,zr.jsx)(t.CardHeader,{children:(0,zr.jsxs)("div",{className:"dk-flex dk-items-center",children:[(0,zr.jsx)(e,{className:"dk-h-6 dk-w-6 dk-mr-wp-2"}),(0,zr.jsx)(e,{className:"dk-h-6 dk-w-2/3"})]})}),(0,zr.jsxs)(t.CardBody,{children:[(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-3/4 dk-mb-wp-2"})]}),(0,zr.jsx)(t.CardFooter,{className:"dk-bg-gray-50 dk-border-t dk-border-gray-200",children:(0,zr.jsx)(e,{className:"dk-h-10 dk-w-36"})})]},r))})]}),s=()=>(0,zr.jsx)("div",{className:"dk-mt-wp-10 dk-p-wp-6 dk-bg-gray-100 dk-rounded-lg dk-border dk-border-gray-200",children:(0,zr.jsxs)("div",{className:"dk-flex dk-items-start",children:[(0,zr.jsx)(e,{className:"dk-h-8 dk-w-8 dk-mr-wp-4"}),(0,zr.jsxs)("div",{children:[(0,zr.jsx)(e,{className:"dk-h-6 dk-w-1/4 dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-2"}),(0,zr.jsx)(e,{className:"dk-h-4 dk-w-3/4 dk-mb-wp-3"}),(0,zr.jsxs)("div",{className:"dk-flex dk-gap-wp-4",children:[(0,zr.jsx)(e,{className:"dk-h-10 dk-w-32"}),(0,zr.jsx)(e,{className:"dk-h-10 dk-w-40"})]})]})]})});return(0,zr.jsxs)("div",{className:"dokan-kits-tools-page",children:[(0,zr.jsx)(a,{}),(0,zr.jsx)(r,{cardCount:2}),(0,zr.jsx)(r,{cardCount:1}),(0,zr.jsx)(r,{cardCount:1}),(0,zr.jsx)(r,{cardCount:2}),(0,zr.jsx)(s,{})]})},ao=()=>{const[e,a]=(0,s.useState)(!0),[r,n]=(0,s.useState)(null),[o,d]=(0,s.useState)(null),[i,l]=(0,s.useState)({}),[c,u]=(0,s.useState)(null),[k,m]=(0,s.useState)({recreateTables:!1,migrateSettings:!1,optimizeTables:!1,runDiagnostics:!1,downloadLogs:!1}),{addNotice:h}=Us(),p=(0,s.useCallback)(async()=>{try{const e=await nn()({path:"/dokan-kits/v1/tools/migration/status",method:"GET"});e.success&&n(e.data)}catch(e){}finally{a(!1)}},[]);(0,s.useEffect)(()=>{p()},[p]);const f=async(e,t,a=!1)=>{if(a||!["database/recreate","database/optimize"].includes(t)){m(t=>({...t,[e]:!0}));try{const a=await nn()({path:`/dokan-kits/v1/tools/${t}`,method:"POST"});if(!a.success){const e=a.data||{};throw{message:a.message||(0,ua.__)("Failed to complete operation.","dokan-kits"),code:e.code||"unknown_error",status:e.status||400,data:e}}l(t=>({...t,[e]:{success:!0,message:a.message,data:a.data,timestamp:(new Date).toISOString()}})),"runDiagnostics"===e&&a.data&&u(a.data),h(a.message||(0,ua.__)("Operation completed successfully.","dokan-kits"),"success"),"migrate-settings"===t&&p()}catch(t){const a=t.message||(0,ua.__)("An unexpected error occurred.","dokan-kits"),r=t.code||"unknown_error",s=t.data||{};l(t=>({...t,[e]:{success:!1,message:a,code:r,data:s,timestamp:(new Date).toISOString()}})),h(a,"error")}finally{m(t=>({...t,[e]:!1}))}}else d({tool:e,action:t})},x=e=>{const t=i[e];if(!t)return null;const a=t.success,r=new Date(t.timestamp).toLocaleString();return(0,zr.jsxs)("div",{className:"dk-mt-2 dk-p-3 dk-rounded dk-text-sm "+(a?"dk-bg-green-50 dk-text-green-700 dk-border dk-border-green-200":"dk-bg-red-50 dk-text-red-700 dk-border dk-border-red-200"),children:[(0,zr.jsxs)("div",{className:"dk-flex dk-items-center dk-justify-between dk-mb-2",children:[(0,zr.jsx)("span",{className:"dk-font-medium",children:a?"✓ "+(0,ua.__)("Success","dokan-kits"):"✗ "+(0,ua.__)("Failed","dokan-kits")}),(0,zr.jsx)("span",{className:"dk-text-xs dk-opacity-75",children:r})]}),!a&&t.code&&(0,zr.jsxs)("div",{className:"dk-text-xs dk-mb-2 dk-text-red-600",children:[(0,zr.jsx)("strong",{children:(0,ua.__)("Error Code:","dokan-kits")})," ",t.code]}),t.message&&(0,zr.jsxs)("div",{className:"dk-text-xs dk-mb-2",children:[(0,zr.jsx)("strong",{children:(0,ua.__)("Message:","dokan-kits")})," ",t.message]}),t.data&&t.data.tables&&(0,zr.jsxs)("div",{className:"dk-text-xs dk-mb-1",children:[(0,zr.jsx)("strong",{children:(0,ua.__)("Tables affected:","dokan-kits")})," ",t.data.tables.length,t.data.tables.length>0&&(0,zr.jsxs)("div",{className:"dk-mt-1 dk-text-xs dk-opacity-75",children:[t.data.tables.slice(0,3).join(", "),t.data.tables.length>3&&(0,ua.__)("and more…","dokan-kits")]})]}),t.data&&t.data.versions&&(0,zr.jsxs)("div",{className:"dk-text-xs dk-mb-1",children:[(0,zr.jsx)("strong",{children:(0,ua.__)("Migrations executed:","dokan-kits")})," ",t.data.versions.length]}),t.data&&t.data.optimized&&(0,zr.jsxs)("div",{className:"dk-text-xs dk-mb-1",children:[(0,zr.jsx)("strong",{children:(0,ua.__)("Tables optimized:","dokan-kits")})," ",t.data.optimized.length,t.data.failed&&t.data.failed.length>0&&(0,zr.jsxs)("div",{className:"dk-text-red-600",children:[(0,zr.jsx)("strong",{children:(0,ua.__)("Failed:","dokan-kits")})," ",t.data.failed.length]})]}),t.data&&t.data.file_name&&(0,zr.jsxs)("div",{className:"dk-text-xs dk-mb-1",children:[(0,zr.jsx)("strong",{children:(0,ua.__)("File:","dokan-kits")})," ",t.data.file_name," (",t.data.file_size,")"]}),!a&&t.data&&t.data.validation_errors&&(0,zr.jsxs)("div",{className:"dk-text-xs dk-mt-2 dk-p-2 dk-bg-red-100 dk-rounded",children:[(0,zr.jsx)("strong",{children:(0,ua.__)("Validation Errors:","dokan-kits")}),(0,zr.jsx)("ul",{className:"dk-list-disc dk-list-inside dk-mt-1",children:Object.entries(t.data.validation_errors).map(([e,t])=>(0,zr.jsxs)("li",{children:[(0,zr.jsxs)("strong",{children:[e,":"]})," ",t]},e))})]})]})};return e?(0,zr.jsx)(to,{}):(0,zr.jsxs)("div",{className:"dokan-kits-tools-page",children:[o&&(0,zr.jsx)(t.Modal,{title:(0,ua.__)("Confirm Database Operation","dokan-kits"),onRequestClose:()=>d(null),className:"dokan-kits-admin-page dokan-kits-admin-modal dokan-kits-tools-confirm-modal",children:(0,zr.jsxs)("div",{className:"dk-modal-content",children:[(0,zr.jsxs)("div",{className:"dk-modal-header",children:[(0,zr.jsx)("h2",{className:"dk-modal-title",children:(0,ua.__)("Confirm Database Operation","dokan-kits")}),(0,zr.jsx)("button",{type:"button",className:"dk-modal-close",onClick:()=>d(null),"aria-label":(0,ua.__)("Close modal","dokan-kits"),children:(0,zr.jsx)(ba,{className:"dk-h-5 dk-w-5"})})]}),(0,zr.jsxs)("div",{className:"dk-modal-body",children:[(0,zr.jsx)("div",{className:"dk-modal-icon dk-bg-red-50 dk-text-red-500",children:(0,zr.jsx)(ga,{className:"dk-h-6 dk-w-6"})}),(0,zr.jsx)("p",{className:"dk-modal-description dk-text-red-700",children:(0,ua.__)("This action will modify your database structure. Please ensure you have a backup before proceeding.","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-form-field",children:[(0,zr.jsx)("label",{htmlFor:"precautions-info",className:"dk-form-label",children:(0,ua.__)("Recommended precautions:","dokan-kits")}),(0,zr.jsx)("input",{type:"hidden",id:"precautions-info"}),(0,zr.jsx)("div",{className:"dk-p-wp-3 dk-bg-yellow-50 dk-rounded-md dk-border dk-border-yellow-200",children:(0,zr.jsxs)("ul",{className:"dk-text-sm dk-text-yellow-700 dk-list-disc dk-list-inside dk-space-y-1",children:[(0,zr.jsx)("li",{children:(0,ua.__)("Create a full database backup","dokan-kits")}),(0,zr.jsx)("li",{children:(0,ua.__)("Ensure no other processes are accessing the database","dokan-kits")}),(0,zr.jsx)("li",{children:(0,ua.__)("Run this operation during low-traffic periods","dokan-kits")}),(0,zr.jsx)("li",{children:(0,ua.__)("Monitor your site after the operation completes","dokan-kits")})]})})]}),(0,zr.jsxs)("div",{className:"dk-form-field",children:[(0,zr.jsx)("label",{htmlFor:"operation-details",className:"dk-form-label",children:(0,ua.__)("Operation Details:","dokan-kits")}),(0,zr.jsx)("input",{type:"hidden",id:"operation-details"}),(0,zr.jsxs)("div",{className:"dk-p-wp-3 dk-bg-gray-50 dk-rounded-md dk-border dk-border-gray-200",children:[(0,zr.jsxs)("p",{className:"dk-text-sm dk-text-gray-700",children:[(0,zr.jsx)("strong",{children:(0,ua.__)("Action:","dokan-kits")})," ",o.action.replace("-"," ").replace(/\b\w/g,e=>e.toUpperCase())]}),(0,zr.jsxs)("p",{className:"dk-text-sm dk-text-gray-700 dk-mt-1",children:[(0,zr.jsx)("strong",{children:(0,ua.__)("Risk Level:","dokan-kits")}),(0,zr.jsxs)("span",{className:"dk-text-red-600 dk-font-medium",children:[" ",(0,ua.__)("High - Database Structure Changes","dokan-kits")]})]})]})]})]}),(0,zr.jsxs)("div",{className:"dk-modal-footer",children:[(0,zr.jsx)(t.Button,{variant:"secondary",onClick:()=>d(null),className:"dk-admin-button dk-admin-button-secondary",children:(0,ua.__)("Cancel","dokan-kits")}),(0,zr.jsx)(t.Button,{variant:"primary",onClick:()=>{if(o){const{tool:e,action:t}=o;d(null),f(e,t,!0)}},className:"dk-admin-button dk-admin-button-danger",children:(0,ua.__)("Yes, I understand the risks","dokan-kits")})]})]})}),(0,zr.jsx)(t.Card,{className:"dk-mb-wp-6",children:(0,zr.jsxs)(t.CardBody,{className:"dk-text-center dk-py-wp-8",children:[(0,zr.jsx)("img",{src:Vs,alt:"Dokan Kits",className:"dk-mx-auto dk-h-24 dk-w-auto dk-mb-wp-4"}),(0,zr.jsx)("h1",{className:"dk-text-3xl dk-font-bold dk-text-gray-900 dk-mb-wp-3",children:(0,ua.__)("Tools & Utilities","dokan-kits")}),(0,zr.jsx)("p",{className:"dk-max-w-2xl dk-mx-auto dk-text-lg dk-text-gray-600 dk-mb-wp-3",children:(0,ua.__)("Manage advanced Dokan Kits maintenance and migration tasks. Use these tools for troubleshooting, database management, and data migration.","dokan-kits")}),(0,zr.jsx)("p",{className:"dk-max-w-2xl dk-mx-auto dk-text-base dk-text-gray-500",children:(0,ua.__)("These utilities help you maintain and optimize your Dokan Kits installation for better performance and reliability.","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-mt-wp-6 dk-flex dk-flex-wrap dk-justify-center dk-gap-wp-4",children:[(0,zr.jsxs)("span",{className:"dk-inline-flex dk-items-center dk-px-wp-3 dk-py-wp-1 dk-rounded-full dk-text-sm dk-font-medium dk-bg-blue-100 dk-text-blue-800",children:[(0,zr.jsx)(ja,{className:"dk-h-4 dk-w-4 dk-mr-wp-1"}),(0,ua.__)("Maintenance","dokan-kits")]}),(0,zr.jsxs)("span",{className:"dk-inline-flex dk-items-center dk-px-wp-3 dk-py-wp-1 dk-rounded-full dk-text-sm dk-font-medium dk-bg-green-100 dk-text-green-800",children:[(0,zr.jsx)(Zn,{className:"dk-h-4 dk-w-4 dk-mr-wp-1"}),(0,ua.__)("Database","dokan-kits")]}),(0,zr.jsxs)("span",{className:"dk-inline-flex dk-items-center dk-px-wp-3 dk-py-wp-1 dk-rounded-full dk-text-sm dk-font-medium dk-bg-purple-100 dk-text-purple-800",children:[(0,zr.jsx)(Xn,{className:"dk-h-4 dk-w-4 dk-mr-wp-1"}),(0,ua.__)("Optimization","dokan-kits")]})]})]})}),(()=>{if(!r)return null;const{needs_migration:e,is_running:a,migration_history:s}=r;return a?(0,zr.jsxs)(t.Notice,{status:"warning",isDismissible:!1,className:"dk-mb-4",children:[(0,zr.jsx)("strong",{children:(0,ua.__)("Migration in Progress","dokan-kits")}),(0,zr.jsx)("p",{children:(0,ua.__)("A migration is currently running. Please wait for it to complete before running other tools.","dokan-kits")})]}):e?(0,zr.jsxs)(t.Notice,{status:"info",isDismissible:!1,className:"dk-mb-4",children:[(0,zr.jsx)("strong",{children:(0,ua.__)("Migration Required","dokan-kits")}),(0,zr.jsx)("p",{children:(0,ua.__)("Your database needs to be migrated to the latest version. Please run the migration tool below.","dokan-kits")})]}):(0,zr.jsxs)(t.Notice,{status:"success",isDismissible:!1,className:"dk-mb-4",children:[(0,zr.jsx)("strong",{children:(0,ua.__)("Up to Date","dokan-kits")}),(0,zr.jsxs)("p",{children:[(0,ua.__)("All migrations are current.","dokan-kits"),s&&s.length>0&&(0,zr.jsx)("span",{className:"dk-ml-2 dk-text-sm",children:(0,ua.__)("Last migration completed successfully.","dokan-kits")})]})]})})(),(0,zr.jsxs)("div",{className:"dk-mb-wp-8",children:[(0,zr.jsx)("h2",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-4",children:(0,ua.__)("Database Tools","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6",children:[(0,zr.jsxs)(t.Card,{className:"dk-flex-1 dk-flex dk-flex-col dk-transition dk-duration-300 dk-ease-in-out hover:dk-shadow-md",children:[(0,zr.jsx)(t.CardHeader,{children:(0,zr.jsxs)("h3",{className:"dk-text-xl dk-font-semibold dk-text-gray-900 dk-flex dk-items-center",children:[(0,zr.jsx)(Zn,{className:"dk-h-5 dk-w-5 dk-mr-wp-2 dk-text-primary-600"}),(0,ua.__)("Database Tables","dokan-kits")]})}),(0,zr.jsxs)(t.CardBody,{children:[(0,zr.jsx)("p",{className:"dk-text-gray-600 dk-mb-wp-4",children:(0,ua.__)("Recreate missing or corrupted database tables. This will create new tables and verify their structure without affecting existing data.","dokan-kits")}),x("recreateTables")]}),(0,zr.jsx)(t.CardFooter,{className:"dk-bg-gray-50 dk-border-t dk-border-gray-200",children:(0,zr.jsx)(t.Button,{variant:"primary",className:"dk-admin-button",isBusy:k.recreateTables,disabled:k.recreateTables,onClick:()=>f("recreateTables","database/recreate"),children:k.recreateTables?(0,ua.__)("Processing…","dokan-kits"):(0,ua.__)("Recreate Tables","dokan-kits")})})]}),(0,zr.jsxs)(t.Card,{className:"dk-flex-1 dk-flex dk-flex-col dk-transition dk-duration-300 dk-ease-in-out hover:dk-shadow-md",children:[(0,zr.jsx)(t.CardHeader,{children:(0,zr.jsxs)("h3",{className:"dk-text-xl dk-font-semibold dk-text-gray-900 dk-flex dk-items-center",children:[(0,zr.jsx)(Xn,{className:"dk-h-5 dk-w-5 dk-mr-wp-2 dk-text-primary-600"}),(0,ua.__)("Optimize Tables","dokan-kits")]})}),(0,zr.jsxs)(t.CardBody,{children:[(0,zr.jsx)("p",{className:"dk-text-gray-600 dk-mb-wp-4",children:(0,ua.__)("Repair and optimize database tables to improve performance and fix potential data corruption issues. This may take several minutes.","dokan-kits")}),x("optimizeTables")]}),(0,zr.jsx)(t.CardFooter,{className:"dk-bg-gray-50 dk-border-t dk-border-gray-200",children:(0,zr.jsx)(t.Button,{variant:"primary",className:"dk-admin-button",isBusy:k.optimizeTables,disabled:k.optimizeTables,onClick:()=>f("optimizeTables","database/optimize"),children:k.optimizeTables?(0,ua.__)("Optimizing…","dokan-kits"):(0,ua.__)("Optimize Tables","dokan-kits")})})]})]})]}),(0,zr.jsxs)("div",{className:"dk-mb-wp-8",children:[(0,zr.jsx)("h2",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-4",children:(0,ua.__)("Data Migration","dokan-kits")}),(0,zr.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6",children:(0,zr.jsxs)(t.Card,{className:"dk-flex-1 dk-flex dk-flex-col dk-transition dk-duration-300 dk-ease-in-out hover:dk-shadow-md",children:[(0,zr.jsx)(t.CardHeader,{children:(0,zr.jsxs)("h3",{className:"dk-text-xl dk-font-semibold dk-text-gray-900 dk-flex dk-items-center",children:[(0,zr.jsx)("span",{className:"dashicons dashicons-migrate dk-mr-wp-2 dk-text-secondary-600"}),(0,ua.__)("Migrate Settings","dokan-kits")]})}),(0,zr.jsxs)(t.CardBody,{children:[(0,zr.jsx)("p",{className:"dk-text-gray-600 dk-mb-wp-4",children:(0,ua.__)("Migrate legacy Dokan Kits options to the new settings structure. This is required when upgrading from older versions.","dokan-kits")}),r&&r.needs_migration&&(0,zr.jsx)("div",{className:"dk-p-3 dk-bg-yellow-50 dk-border dk-border-yellow-200 dk-rounded dk-text-sm dk-text-yellow-800 dk-mb-4",children:(0,zr.jsxs)("div",{className:"dk-flex dk-items-center",children:[(0,zr.jsx)(ga,{className:"dk-h-5 dk-w-5 dk-mr-2"}),(0,zr.jsxs)("div",{children:[(0,zr.jsx)("strong",{children:(0,ua.__)("Migration Required","dokan-kits")}),(0,zr.jsx)("p",{className:"dk-mt-1",children:(0,ua.__)("Your database needs to be migrated to work with the current version.","dokan-kits")})]})]})}),x("migrateSettings")]}),(0,zr.jsx)(t.CardFooter,{className:"dk-bg-gray-50 dk-border-t dk-border-gray-200",children:(0,zr.jsx)(t.Button,{variant:r&&r.needs_migration?"primary":"secondary",className:r&&r.needs_migration?"dk-admin-button":"dk-admin-button dk-admin-button-secondary",isBusy:k.migrateSettings,disabled:k.migrateSettings||r&&r.is_running,onClick:()=>f("migrateSettings","migration/run"),children:k.migrateSettings?(0,ua.__)("Migrating…","dokan-kits"):(0,ua.__)("Run Migration","dokan-kits")})})]})})]}),(0,zr.jsxs)("div",{className:"dk-mb-wp-8",children:[(0,zr.jsx)("h2",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-4",children:(0,ua.__)("Troubleshooting","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6",children:[(0,zr.jsxs)(t.Card,{className:"dk-flex-1 dk-flex dk-flex-col dk-transition dk-duration-300 dk-ease-in-out hover:dk-shadow-md",children:[(0,zr.jsx)(t.CardHeader,{children:(0,zr.jsxs)("h3",{className:"dk-text-xl dk-font-semibold dk-text-gray-900 dk-flex dk-items-center",children:[(0,zr.jsx)(Xn,{className:"dk-h-5 dk-w-5 dk-mr-wp-2 dk-text-primary-600"}),(0,ua.__)("System Diagnostics","dokan-kits")]})}),(0,zr.jsxs)(t.CardBody,{children:[(0,zr.jsx)("p",{className:"dk-text-gray-600 dk-mb-wp-4",children:(0,ua.__)("Run comprehensive diagnostic tests to identify potential issues with your environment, dependencies, and configuration.","dokan-kits")}),x("runDiagnostics"),(()=>{if(!c)return null;const{wordpress:e,php:t,dokan_kits:a,system_check:r}=c;return(0,zr.jsxs)("div",{className:"dk-mt-2 dk-p-3 dk-bg-blue-50 dk-border dk-border-blue-200 dk-rounded dk-text-sm",children:[(0,zr.jsx)("div",{className:"dk-font-medium dk-text-blue-800 dk-mb-2",children:(0,ua.__)("System Status Overview","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-grid dk-grid-cols-2 dk-gap-2 dk-text-xs",children:[e&&(0,zr.jsxs)("div",{children:[(0,zr.jsx)("strong",{children:(0,ua.__)("WordPress:","dokan-kits")})," ",e.version]}),t&&(0,zr.jsxs)("div",{children:[(0,zr.jsx)("strong",{children:(0,ua.__)("PHP:","dokan-kits")})," ",t.version]}),a&&(0,zr.jsxs)("div",{children:[(0,zr.jsx)("strong",{children:(0,ua.__)("Plugin:","dokan-kits")})," ",a.version]}),r&&(0,zr.jsxs)("div",{className:r.pass?"dk-text-green-600":"dk-text-red-600",children:[(0,zr.jsx)("strong",{children:(0,ua.__)("System Check:","dokan-kits")})," ",r.pass?(0,ua.__)("Pass","dokan-kits"):(0,ua.__)("Fail","dokan-kits")]})]})]})})()]}),(0,zr.jsx)(t.CardFooter,{className:"dk-bg-gray-50 dk-border-t dk-border-gray-200",children:(0,zr.jsx)(t.Button,{variant:"primary",className:"dk-admin-button",isBusy:k.runDiagnostics,disabled:k.runDiagnostics,onClick:()=>f("runDiagnostics","diagnostics/run"),children:k.runDiagnostics?(0,ua.__)("Running Diagnostics…","dokan-kits"):(0,ua.__)("Run System Check","dokan-kits")})})]}),(0,zr.jsxs)(t.Card,{className:"dk-flex-1 dk-flex dk-flex-col dk-transition dk-duration-300 dk-ease-in-out hover:dk-shadow-md",children:[(0,zr.jsx)(t.CardHeader,{children:(0,zr.jsxs)("h3",{className:"dk-text-xl dk-font-semibold dk-text-gray-900 dk-flex dk-items-center",children:[(0,zr.jsx)(Qn,{className:"dk-h-5 dk-w-5 dk-mr-wp-2 dk-text-primary-600"}),(0,ua.__)("Debug Logs","dokan-kits")]})}),(0,zr.jsxs)(t.CardBody,{children:[(0,zr.jsx)("p",{className:"dk-text-gray-600 dk-mb-wp-4",children:(0,ua.__)("Generate and download comprehensive debug logs including system information, configuration, and error details for support purposes.","dokan-kits")}),x("downloadLogs")]}),(0,zr.jsx)(t.CardFooter,{className:"dk-bg-gray-50 dk-border-t dk-border-gray-200",children:(0,zr.jsx)(t.Button,{variant:"primary",className:"dk-admin-button",isBusy:k.downloadLogs,disabled:k.downloadLogs,onClick:async()=>{m(e=>({...e,downloadLogs:!0}));try{const e=await nn()({path:"/dokan-kits/v1/tools/download-logs",method:"POST"});if(!e.success||!e.data){const t=e.data||{};throw{message:e.message||(0,ua.__)("Failed to prepare log file.","dokan-kits"),code:t.code||"log_download_failed",status:t.status||400,data:t}}{const{file_url:t,file_name:a}=e.data,r=document.createElement("a");r.href=t,r.download=a,r.target="_blank",document.body.appendChild(r),r.click(),document.body.removeChild(r),l(t=>({...t,downloadLogs:{success:!0,message:e.message,data:e.data,timestamp:(new Date).toISOString()}})),h((0,ua.__)("Log file prepared for download successfully.","dokan-kits"),"success")}}catch(e){const t=e.message||(0,ua.__)("Failed to download logs.","dokan-kits"),a=e.code||"log_download_failed",r=e.data||{};l(e=>({...e,downloadLogs:{success:!1,message:t,code:a,data:r,timestamp:(new Date).toISOString()}})),h(t,"error")}finally{m(e=>({...e,downloadLogs:!1}))}},children:k.downloadLogs?(0,ua.__)("Preparing Download…","dokan-kits"):(0,ua.__)("Download Debug Logs","dokan-kits")})})]})]})]}),(0,zr.jsx)("div",{className:"dk-mt-wp-10 dk-p-wp-6 dk-bg-yellow-50 dk-rounded-lg dk-border dk-border-yellow-200",children:(0,zr.jsxs)("div",{className:"dk-flex dk-items-start",children:[(0,zr.jsx)("div",{className:"dk-flex-shrink-0 dk-mr-wp-4",children:(0,zr.jsx)(va,{className:"dk-h-6 dk-w-6 dk-text-yellow-600"})}),(0,zr.jsxs)("div",{children:[(0,zr.jsx)("h3",{className:"dk-text-lg dk-font-semibold dk-text-yellow-800 dk-mb-wp-2",children:(0,ua.__)("Need Help?","dokan-kits")}),(0,zr.jsx)("p",{className:"dk-text-yellow-700 dk-mb-wp-3",children:(0,ua.__)("If you encounter issues while using these tools or need additional support, please visit our support forum or documentation. When contacting support, include your debug logs for faster assistance.","dokan-kits")}),(0,zr.jsxs)("div",{className:"dk-flex dk-flex-wrap dk-gap-wp-3",children:[(0,zr.jsxs)("a",{href:"https://wordpress.org/support/plugin/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-warning dk-inline-flex dk-items-center",children:[(0,zr.jsx)(Qs,{className:"dk-h-4 dk-w-4 dk-mr-1"}),(0,ua.__)("Get Support","dokan-kits")]}),(0,zr.jsxs)("a",{href:"https://wordpress.org/plugins/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-secondary dk-inline-flex dk-items-center",children:[(0,zr.jsx)(Sa,{className:"dk-h-4 dk-w-4 dk-mr-1"}),(0,ua.__)("Documentation","dokan-kits")]}),(0,zr.jsxs)("a",{href:"https://github.com/getdokan/dokan-kits/issues",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-secondary dk-inline-flex dk-items-center",children:[(0,zr.jsx)(eo,{className:"dk-h-4 dk-w-4 dk-mr-1"}),(0,ua.__)("Report Issue","dokan-kits")]})]}),(0,zr.jsxs)("div",{className:"dk-mt-wp-4 dk-p-3 dk-bg-yellow-100 dk-rounded dk-border dk-border-yellow-300",children:[(0,zr.jsx)("h4",{className:"dk-font-medium dk-text-yellow-800 dk-mb-2",children:(0,ua.__)("Before contacting support:","dokan-kits")}),(0,zr.jsxs)("ul",{className:"dk-text-sm dk-text-yellow-700 dk-list-disc dk-list-inside dk-space-y-1",children:[(0,zr.jsx)("li",{children:(0,ua.__)("Run system diagnostics to identify common issues","dokan-kits")}),(0,zr.jsx)("li",{children:(0,ua.__)("Download debug logs to include with your support request","dokan-kits")}),(0,zr.jsx)("li",{children:(0,ua.__)("Check if migrations are up to date","dokan-kits")}),(0,zr.jsx)("li",{children:(0,ua.__)("Try recreating database tables if experiencing data issues","dokan-kits")})]})]})]})]})})]})};r()(()=>{const e=document.getElementById("dokan-kits-admin-root");if(!e)return;e.classList.add("dokan-kits-admin-page");const a=(0,s.createRoot)(e),r=window.Dokan_Kits?.initialPath||"/",d=(0,n.applyFilters)("dokan_kits_admin_route_pages",[{index:!0,element:(0,zr.jsx)(hn,{})},{path:"features",element:(0,zr.jsx)(An,{})},{path:"about",element:(0,zr.jsx)(rn,{})},{path:"tools",element:(0,zr.jsx)(ao,{})}]);window.Dokan_Kits?.isDebugMode&&d.push({path:"/tailwind-demo",element:(0,zr.jsx)(Jn,{})});const i=(l=(0,n.applyFilters)("dokan_kits_admin_routes",[{path:"/",element:(0,zr.jsx)(Gs,{}),errorElement:(0,zr.jsx)(Ar,{}),children:d},{path:"*",element:(0,zr.jsx)($n,{})}]),c={initialEntries:[r]},ce({basename:c?.basename,unstable_getContext:c?.unstable_getContext,future:c?.future,history:u({window:c?.window}),hydrationData:c?.hydrationData||ta(),routes:l,mapRouteProperties:Et,hydrationRouteProperties:Rt,dataStrategy:c?.dataStrategy,patchRoutesOnNavigation:c?.patchRoutesOnNavigation,window:c?.window}).initialize());var l,c;a.render((0,zr.jsx)(o.StrictMode,{children:(0,zr.jsx)(t.SlotFillProvider,{children:(0,zr.jsx)(Is,{children:(0,zr.jsx)(ca,{router:i})})})}))})})();171 `,zs=({reverseOrder:e,position:t="top-center",toastOptions:a,gutter:r,children:s,containerStyle:n,containerClassName:d})=>{let{toasts:i,handlers:l}=(e=>{let{toasts:t,pausedAt:a}=((e={})=>{let[t,a]=(0,o.useState)(os),r=(0,o.useRef)(os);(0,o.useEffect)(()=>(r.current!==os&&a(os),ns.push(a),()=>{let e=ns.indexOf(a);e>-1&&ns.splice(e,1)}),[]);let s=t.toasts.map(t=>{var a,r,s;return{...e,...e[t.type],...t,removeDelay:t.removeDelay||(null==(a=e[t.type])?void 0:a.removeDelay)||(null==e?void 0:e.removeDelay),duration:t.duration||(null==(r=e[t.type])?void 0:r.duration)||(null==e?void 0:e.duration)||is[t.type],style:{...e.style,...null==(s=e[t.type])?void 0:s.style,...t.style}}});return{...t,toasts:s}})(e);(0,o.useEffect)(()=>{if(a)return;let e=Date.now(),r=t.map(t=>{if(t.duration===1/0)return;let a=(t.duration||0)+t.pauseDuration-(e-t.createdAt);if(!(a<0))return setTimeout(()=>cs.dismiss(t.id),a);t.visible&&cs.dismiss(t.id)});return()=>{r.forEach(e=>e&&clearTimeout(e))}},[t,a]);let r=(0,o.useCallback)(()=>{a&&ds({type:6,time:Date.now()})},[a]),s=(0,o.useCallback)((e,a)=>{let{reverseOrder:r=!1,gutter:s=8,defaultPosition:n}=a||{},o=t.filter(t=>(t.position||n)===(e.position||n)&&t.height),d=o.findIndex(t=>t.id===e.id),i=o.filter((e,t)=>t<d&&e.visible).length;return o.filter(e=>e.visible).slice(...r?[i+1]:[0,i]).reduce((e,t)=>e+(t.height||0)+s,0)},[t]);return(0,o.useEffect)(()=>{t.forEach(e=>{if(e.dismissed)((e,t=1e3)=>{if(ms.has(e))return;let a=setTimeout(()=>{ms.delete(e),ds({type:4,toastId:e})},t);ms.set(e,a)})(e.id,e.removeDelay);else{let t=ms.get(e.id);t&&(clearTimeout(t),ms.delete(e.id))}})},[t]),{toasts:t,handlers:{updateHeight:us,startPause:ks,endPause:r,calculateOffset:s}}})(a);return o.createElement("div",{id:"_rht_toaster",style:{position:"fixed",zIndex:9999,top:16,left:16,right:16,bottom:16,pointerEvents:"none",...n},className:d,onMouseEnter:l.startPause,onMouseLeave:l.endPause},i.map(a=>{let n=a.position||t,d=((e,t)=>{let a=e.includes("top"),r=a?{top:0}:{bottom:0},s=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:rs()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(a?1:-1)}px)`,...r,...s}})(n,l.calculateOffset(a,{reverseOrder:e,gutter:r,defaultPosition:t}));return o.createElement(Ps,{id:a.id,key:a.id,onHeightUpdate:l.updateHeight,className:a.visible?Ls:"",style:d},"custom"===a.type?ts(a.message,a):s?s(a):o.createElement(Ts,{toast:a,position:n}))}))},As=cs;const $s=ga("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]),Os=({t:e,message:t,type:a,onClose:r,showCloseButton:s=!0})=>{const n={success:(0,Ar.jsx)($s,{className:"dk-w-wp-5 dk-h-wp-5 dk-text-primary-600"}),error:(0,Ar.jsx)(va,{className:"dk-w-wp-5 dk-h-wp-5 dk-text-red-500"}),warning:(0,Ar.jsx)(ba,{className:"dk-w-wp-5 dk-h-wp-5 dk-text-yellow-500"}),info:(0,Ar.jsx)(ja,{className:"dk-w-wp-5 dk-h-wp-5 dk-text-blue-500"})};return(0,Ar.jsxs)("div",{className:zr("dk-flex dk-items-start dk-p-wp-4 dk-rounded-md dk-border dk-shadow-wp-card dk-min-w-[320px] dk-max-w-md","dk-transform dk-transition-all dk-duration-300 dk-ease-in-out",{success:"dk-border-primary-200 dk-bg-primary-50",error:"dk-border-red-200 dk-bg-red-50",warning:"dk-border-yellow-200 dk-bg-yellow-50",info:"dk-border-blue-200 dk-bg-blue-50"}[a],e.visible?"dk-animate-in dk-slide-in-from-top-2 dk-fade-in":"dk-animate-out dk-slide-out-to-top-2 dk-fade-out"),children:[(0,Ar.jsx)("div",{className:"dk-flex-shrink-0 dk-mr-wp-3",children:n[a]}),(0,Ar.jsx)("div",{className:"dk-flex-1 dk-min-w-0",children:(0,Ar.jsx)("div",{className:zr("dk-text-admin-sm dk-font-medium dk-leading-5",{success:"dk-text-primary-800",error:"dk-text-red-800",warning:"dk-text-yellow-800",info:"dk-text-blue-800"}[a]),children:t})}),s&&(0,Ar.jsx)("div",{className:"dk-flex-shrink-0 dk-ml-wp-4",children:(0,Ar.jsx)("button",{type:"button",className:zr("dk-inline-flex dk-rounded-md dk-p-1.5 dk-transition-colors dk-focus:outline-none dk-focus:ring-2 dk-focus:ring-offset-2",{success:"dk-text-primary-400 hover:dk-text-primary-500 dk-focus:ring-primary-600",error:"dk-text-red-400 hover:dk-text-red-500 dk-focus:ring-red-600",warning:"dk-text-yellow-400 hover:dk-text-yellow-500 dk-focus:ring-yellow-600",info:"dk-text-blue-400 hover:dk-text-blue-500 dk-focus:ring-blue-600"}[a]),onClick:r,"aria-label":(0,ka.__)("Dismiss notification","dokan-kits"),children:(0,Ar.jsx)(ya,{className:"dk-w-wp-4 dk-h-wp-4"})})})]})},Fs="success",Bs="error",Is=(0,s.createContext)({notices:[],addNotice:()=>{},removeNotice:()=>{},clearNotices:()=>{}}),Us=({children:e})=>{const[t,a]=(0,s.useState)([]),r=(0,s.useCallback)((e,t="info",r={})=>{const s=`notice-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,{isDismissible:n=!0,duration:o=5e3,position:d="top-right"}=r,i={id:s,message:e,type:t,isDismissible:n,duration:o,position:d,timestamp:Date.now()};return a(a=>{const r=a.find(a=>a.message===e&&a.type===t);return r?a:[...a,i]}),s},[]),n={notices:t,addNotice:r,removeNotice:(0,s.useCallback)(e=>{a(t=>t.filter(t=>t.id!==e))},[]),clearNotices:(0,s.useCallback)(()=>{a([])},[])};return(0,Ar.jsx)(Is.Provider,{value:n,children:e})},Hs=()=>{const e=(0,s.useContext)(Is);if(void 0===e)throw new Error("useNotices must be used within a NoticesProvider");return e},Vs=()=>{const{notices:e,removeNotice:t}=Hs(),a=(0,s.useRef)(new Set);return(0,s.useEffect)(()=>{e.forEach(e=>{if(a.current.has(e.id))return;a.current.add(e.id);let r=e.duration||5e3;"error"===e.type&&(r=e.duration||8e3),e.isDismissible||(r=1/0),As.custom(r=>(0,Ar.jsx)(Os,{t:r,message:e.message,type:e.type,onClose:()=>{As.dismiss(r.id),t(e.id),a.current.delete(e.id)}}),{id:e.id,duration:r,position:e.position||"top-right"}),e.isDismissible&&r!==1/0&&setTimeout(()=>{t(e.id),a.current.delete(e.id)},r)});const r=new Set(e.map(e=>e.id));for(const e of a.current)r.has(e)||a.current.delete(e)},[e,t]),(0,s.useEffect)(()=>()=>{a.current.clear()},[]),(0,Ar.jsx)(zs,{position:"top-right",gutter:12,containerClassName:"dk-toast-container",containerStyle:{top:"var(--wp-admin--admin-bar--height, 46px)"},toastOptions:{className:"dk-toast",duration:5e3,style:{background:"transparent",boxShadow:"none",padding:0}}})},qs=e.p+"images/dokan-kits-logo.png",Ws=ga("crown",[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]]),Ks=ga("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),Gs=ga("palette",[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]),Ys=()=>{const e=ct(),t="loading"===vt("useNavigation").navigation.state,a=window.Dokan_Kits||{};(0,s.useEffect)(()=>{const t={"/":(0,ka.__)("Dashboard","dokan-kits"),"/features":(0,ka.__)("Features","dokan-kits"),"/about":(0,ka.__)("About","dokan-kits"),"/tools":(0,ka.__)("Tools","dokan-kits"),"/tailwind-demo":(0,ka.__)("Tailwind Merge Demo","dokan-kits")}[e.pathname];if(document.title=(0,ka.sprintf)(/* translators: %s: Page title */ /* translators: %s: Page title */ 172 (0,ka.__)("%s - Dokan Kits","dokan-kits"),null!=t?t:(0,ka.__)("Dashboard","dokan-kits")),"undefined"!=typeof document){const t=document.querySelectorAll("#toplevel_page_dokan-kits .wp-submenu li");t.forEach(e=>{e.classList.remove("current")});const a={"/":1,"/features":2,"/about":3,"/tools":4,"/tailwind-demo":5}[e.pathname];void 0!==a&&t[a]&&t[a].classList.add("current")}},[e]);const r=({isActive:e})=>zr("dk-inline-flex dk-items-center dk-px-wp-1 dk-py-wp-4 dk-text-sm dk-font-medium dk-border-b-2 !dk-shadow-none !dk-outline-none",e?"dk-border-primary-500 dk-text-primary-600":"dk-border-transparent dk-text-gray-500 hover:dk-text-gray-700 hover:dk-border-gray-300");return(0,Ar.jsxs)("div",{className:"dokan-kits-app-wrapper",children:[(0,Ar.jsx)("div",{className:"dokan-kits-app-header dk-bg-white dk-border-b dk-border-gray-200 dk-mb-wp-6",children:(0,Ar.jsxs)("div",{className:"dk-container dk-mx-auto dk-px-wp-4",children:[(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center dk-justify-between dk-pt-wp-4",children:[(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center",children:[(0,Ar.jsx)("img",{src:qs,alt:"Dokan Kits",className:"dk-h-20 dk-w-auto dk-mr-wp-3"}),(0,Ar.jsx)("h1",{className:"dk-text-xl dk-font-medium dk-text-gray-900",children:(0,ka.__)("Dokan Kits","dokan-kits")})]}),(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center dk-space-x-wp-2",children:[(0,Ar.jsxs)("a",{href:a.pageUrls.add_ons,target:"_self",rel:"noopener noreferrer",className:"dk-admin-button dk-gap-2",children:[(0,Ar.jsx)(Ws,{className:"dk-h-4 dk-w-4"}),(0,Ar.jsx)("span",{className:"dk-text-sm",children:(0,ka.__)("Get Add-Ons","dokan-kits")})]}),(0,Ar.jsx)("a",{href:"https://wordpress.org/support/plugin/dokan-kits/#new-topic-0",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-secondary dk-text-sm",children:(0,ka.__)("Support","dokan-kits")}),(0,Ar.jsx)("a",{href:"https://wordpress.org/plugins/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-secondary dk-text-sm",children:(0,ka.__)("Documentation","dokan-kits")})]})]}),(0,Ar.jsxs)("nav",{className:"dk-flex dk-space-x-wp-6 dk--mb-px",children:[(0,Ar.jsxs)(oa,{to:"/",end:!0,className:r,children:[(0,Ar.jsx)(Na,{className:"dk-h-4 dk-w-4 dk-mr-wp-2"}),(0,ka.__)("Dashboard","dokan-kits")]}),(0,Ar.jsxs)(oa,{to:"/features",className:r,children:[(0,Ar.jsx)(Ks,{className:"dk-h-4 dk-w-4 dk-mr-wp-2"}),(0,ka.__)("Features","dokan-kits")]}),(0,Ar.jsxs)(oa,{to:"/about",className:r,children:[(0,Ar.jsx)(ja,{className:"dk-h-4 dk-w-4 dk-mr-wp-2"}),(0,ka.__)("About","dokan-kits")]}),(0,Ar.jsxs)(oa,{to:"/tools",className:r,children:[(0,Ar.jsx)(_a,{className:"dk-h-4 dk-w-4 dk-mr-wp-2"}),(0,ka.__)("Tools","dokan-kits")]}),window.Dokan_Kits?.isDebugMode&&(0,Ar.jsxs)(oa,{to:"/tailwind-demo",className:r,children:[(0,Ar.jsx)(Gs,{className:"dk-h-4 dk-w-4 dk-mr-wp-2"}),(0,ka.__)("Tailwind Demo","dokan-kits")]})]})]})}),(0,Ar.jsxs)("div",{className:"dokan-kits-app-content dk-container dk-mx-auto dk-px-wp-4 dk-pb-wp-8 dk-space-y-wp-4",children:[(0,Ar.jsx)(Vs,{}),window.Dokan_Kits?.isDebugMode&&(0,Ar.jsx)("div",{className:zr("dk-p-wp-4","dk-border","dk-rounded-md","dk-bg-yellow-50","dk-border-yellow-200"),children:(0,Ar.jsxs)("p",{className:"dk-flex dk-items-center dk-gap-2 dk-text-yellow-800",children:[(0,Ar.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",className:"dk-w-5 dk-h-5",children:(0,Ar.jsx)("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})}),(0,ka.__)("Debug Mode is active. Additional developer features and settings are enabled.","dokan-kits")]})}),(0,Ar.jsx)("div",{className:"dk-route-transition",children:t?(0,Ar.jsx)(Fr,{message:(0,ka.__)("Loading content…","dokan-kits")}):(0,Ar.jsx)(Lt,{})})]}),(0,Ar.jsx)("div",{className:"dokan-kits-app-footer dk-mt-wp-12 dk-py-wp-6 dk-border-t dk-border-gray-200 dk-text-center dk-text-sm dk-text-gray-500",children:(0,Ar.jsxs)("p",{children:[(0,ka.__)("Dokan Kits","dokan-kits")," ",a.version||"3.0.0"," | ",(0,ka.__)("Made with","dokan-kits")," ❤️ ",(0,ka.__)("by","dokan-kits"),(0,Ar.jsx)("a",{href:"https://profiles.wordpress.org/wpintegrity/",target:"_blank",rel:"noopener noreferrer",className:"dk-text-primary-600 hover:dk-text-primary-800 dk-ml-wp-1",children:"WPIntegrity"})]})})]})},Js=ga("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]),Zs=ga("chart-no-axes-column",[["line",{x1:"18",x2:"18",y1:"20",y2:"10",key:"1xfpm4"}],["line",{x1:"12",x2:"12",y1:"20",y2:"4",key:"be30l9"}],["line",{x1:"6",x2:"6",y1:"20",y2:"14",key:"1r4le6"}]]),Xs=ga("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]),Qs=ga("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),en=ga("headset",[["path",{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",key:"12oyoe"}],["path",{d:"M21 16v2a4 4 0 0 1-4 4h-5",key:"1x7m43"}]]),tn=ga("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]),an=ga("video",[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]),rn=()=>{const e=({className:e})=>(0,Ar.jsx)("div",{className:`dk-animate-pulse dk-bg-gray-200 dk-rounded ${e}`}),a=()=>(0,Ar.jsx)(t.Card,{className:"dk-mb-wp-6",children:(0,Ar.jsxs)(t.CardBody,{className:"dk-text-center dk-py-wp-8",children:[(0,Ar.jsx)(e,{className:"dk-mx-auto dk-h-24 dk-w-24 dk-mb-wp-4"}),(0,Ar.jsx)(e,{className:"dk-mx-auto dk-h-10 dk-w-1/2 dk-mb-wp-3"}),(0,Ar.jsx)(e,{className:"dk-mx-auto dk-h-5 dk-w-3/4 dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-mx-auto dk-h-5 dk-w-2/3 dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-mx-auto dk-h-5 dk-w-1/2 dk-mb-wp-6"}),(0,Ar.jsxs)("div",{className:"dk-flex dk-flex-wrap dk-justify-center dk-gap-wp-4",children:[(0,Ar.jsx)(e,{className:"dk-h-8 dk-w-28"}),(0,Ar.jsx)(e,{className:"dk-h-8 dk-w-36"}),(0,Ar.jsx)(e,{className:"dk-h-8 dk-w-32"})]})]})}),r=()=>(0,Ar.jsxs)(Ar.Fragment,{children:[(0,Ar.jsx)(e,{className:"dk-h-8 dk-w-1/4 dk-mb-wp-4"}),(0,Ar.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6 dk-mb-wp-8",children:Array(2).fill().map((a,r)=>(0,Ar.jsxs)(t.Card,{children:[(0,Ar.jsx)(t.CardBody,{className:"dk-p-6",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-flex-col md:dk-flex-row dk-items-start",children:[(0,Ar.jsx)(e,{className:"dk-h-16 dk-w-16 dk-mb-wp-4 md:dk-mb-0 md:dk-mr-wp-5"}),(0,Ar.jsxs)("div",{className:"dk-flex-grow dk-w-full",children:[(0,Ar.jsx)(e,{className:"dk-h-7 dk-w-3/4 dk-mb-wp-3"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-3/4"})]})]})}),(0,Ar.jsx)(t.CardFooter,{className:"dk-p-5 dk-bg-gray-50 dk-border-t dk-border-gray-200 dk-flex dk-justify-end",children:(0,Ar.jsx)(e,{className:"dk-h-10 dk-w-32"})})]},r))})]}),s=()=>(0,Ar.jsxs)(Ar.Fragment,{children:[(0,Ar.jsx)(e,{className:"dk-h-8 dk-w-1/4 dk-mb-wp-4"}),(0,Ar.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6 dk-mb-wp-8",children:Array(4).fill().map((a,r)=>(0,Ar.jsxs)(t.Card,{children:[(0,Ar.jsx)(t.CardHeader,{children:(0,Ar.jsx)(e,{className:"dk-h-6 dk-w-1/2"})}),(0,Ar.jsxs)(t.CardBody,{children:[(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-3/4 dk-mb-wp-4"}),(0,Ar.jsx)(e,{className:"dk-h-10 dk-w-36"})]})]},r))})]}),n=()=>(0,Ar.jsxs)(Ar.Fragment,{children:[(0,Ar.jsx)(e,{className:"dk-h-8 dk-w-1/4 dk-mb-wp-4"}),(0,Ar.jsxs)(t.Card,{children:[(0,Ar.jsx)(t.CardHeader,{children:(0,Ar.jsx)(e,{className:"dk-h-6 dk-w-1/4"})}),(0,Ar.jsxs)(t.CardBody,{children:[(0,Ar.jsx)("div",{className:"dk-space-y-wp-4",children:Array(3).fill().map((t,a)=>(0,Ar.jsxs)("div",{className:"dk-mb-wp-6",children:[(0,Ar.jsx)(e,{className:"dk-h-6 dk-w-1/3 dk-mb-wp-3"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-3/4"})]},a))}),(0,Ar.jsx)("div",{className:"dk-mt-wp-4 dk-pt-wp-4 dk-border-t dk-border-gray-200",children:(0,Ar.jsx)(e,{className:"dk-h-6 dk-w-1/4"})})]})]})]});return(0,Ar.jsxs)("div",{className:"dokan-kits-about-page-skeleton dk-p-6",children:[(0,Ar.jsx)(a,{}),(0,Ar.jsx)(r,{}),(0,Ar.jsx)(s,{}),(0,Ar.jsx)(n,{})]})},sn=()=>{const[e,a]=(0,s.useState)(!0);if((0,s.useEffect)(()=>{const e=setTimeout(()=>{a(!1)},300);return()=>clearTimeout(e)},[]),e)return(0,Ar.jsx)(rn,{});const r=[],n=[{title:(0,ka.__)("Vendor Product Video Gallery","dokan-kits"),description:(0,ka.__)("Allow vendors to upload product videos to showcase their products better in your Dokan marketplace. Support multiple video formats and customize playback options.","dokan-kits"),icon:"format-video",image:"https://wpintegrity.com/wp-content/uploads/2025/06/Dokan-Kits-Vendor-Product-Video-Gallery_big.png",status:(0,ka.__)("Live","dokan-kits"),url:"https://wpintegrity.com/dokan-kits-vendor-product-video-gallery/"},{title:(0,ka.__)("Vendor Product Image Upload Limit","dokan-kits"),description:(0,ka.__)("Control and limit product image uploads for vendors in your Dokan marketplace. Set image dimensions, file sizes, and maximum upload limits to maintain quality and performance.","dokan-kits"),icon:"format-gallery",image:"https://wpintegrity.com/wp-content/uploads/2025/06/Dokan-Kits-Vendor-Product-Image-Upload-Limit_big-1.png",status:(0,ka.__)("Live","dokan-kits"),url:"https://wpintegrity.com/dokan-kits-vendor-product-image-upload-limit/"},{title:(0,ka.__)("Vendor Product Bundles","dokan-kits"),description:(0,ka.__)("Allow vendors to add and sell bundle products from their frontend vendor dashboard.","dokan-kits"),icon:"format-gallery",image:"https://wpintegrity.com/wp-content/uploads/2025/06/dokan-product-bundle@2x-768x593-1-300x295.png",status:(0,ka.__)("Live","dokan-kits"),url:"https://wpintegrity.com/products/dokan-kits-vendor-product-bundles/"},{title:(0,ka.__)("Vendor Smart Coupons Display","dokan-kits"),description:(0,ka.__)("Display existing vendor coupons beautifully on product and cart pages with interactive application and customizable display options.","dokan-kits"),icon:"tag",image:"https://wpintegrity.com/wp-content/uploads/2025/07/dokan-kits-vendor-smart-coupons-display-feature.png",status:(0,ka.__)("Live","dokan-kits"),url:"https://wpintegrity.com/dokan-kits-vendor-smart-coupons-display/"}],o=[{title:(0,ka.__)("Support","dokan-kits"),description:(0,ka.__)("Need help with Dokan Kits? Visit our support forum to get assistance from our team and community.","dokan-kits"),buttonText:(0,ka.__)("Visit Support Forum","dokan-kits"),buttonUrl:"https://wordpress.org/support/plugin/dokan-kits/",icon:"sos"},{title:(0,ka.__)("Documentation","dokan-kits"),description:(0,ka.__)("Check our documentation for detailed guides, tutorials, and reference materials.","dokan-kits"),buttonText:(0,ka.__)("View Documentation","dokan-kits"),buttonUrl:"https://wordpress.org/plugins/dokan-kits/",icon:"book"},{title:(0,ka.__)("Feature Requests","dokan-kits"),description:(0,ka.__)("Have ideas to improve Dokan Kits? Submit your feature requests and help us make the plugin better.","dokan-kits"),buttonText:(0,ka.__)("Submit Request","dokan-kits"),buttonUrl:"https://github.com/wpintegrity/feedback/issues/new",icon:"lightbulb"},{title:(0,ka.__)("Video Tutorials","dokan-kits"),description:(0,ka.__)("Learn how to use Dokan Kits effectively with our step-by-step video tutorials and guides.","dokan-kits"),buttonText:(0,ka.__)("Watch Tutorials","dokan-kits"),buttonUrl:"#",icon:"video-alt3"}],d=[{version:"3.0.4",releaseDate:"Jul 03, 2025",changes:[(0,ka.__)("Add a new CTA button to dokan kit dashboard to explore premium add-ons.","dokan-kits")]},{version:"3.0.3",releaseDate:"Jul 02, 2025",changes:[(0,ka.__)("Fixed settings save and retrieval issues","dokan-kits")]},{version:"3.0.2",releaseDate:"June 30, 2025",changes:[(0,ka.__)("Improved UI for ErrorBoundary: centered Dashicon error icon, modern layout","dokan-kits"),(0,ka.__)("Refactored Not Found page for consistent, professional UI","dokan-kits"),(0,ka.__)("Updated Tools page with hero/title section and card-based layout","dokan-kits"),(0,ka.__)("Ensured Tools REST controller is registered and follows best practices","dokan-kits"),(0,ka.__)("General UI/UX consistency improvements across admin pages","dokan-kits")]},{version:"3.0.1",releaseDate:"June 24, 2025",changes:[(0,ka.__)("Fixed a critical issue with setting data store","dokan-kits")]},{version:"3.0.0",releaseDate:"June 23, 2025",changes:[(0,ka.__)("Complete plugin restructuring with modern architecture","dokan-kits"),(0,ka.__)("New React-based admin interface with Tailwind CSS","dokan-kits"),(0,ka.__)("Improved REST API for features management","dokan-kits"),(0,ka.__)("Enhanced extensibility with service providers","dokan-kits"),(0,ka.__)("Added React Router for better admin navigation","dokan-kits")]}],i=()=>(0,Ar.jsx)(t.Card,{className:"dk-mb-wp-6",children:(0,Ar.jsxs)(t.CardBody,{className:"dk-text-center dk-py-wp-8",children:[(0,Ar.jsx)("img",{src:qs,alt:"Dokan Kits",className:"dk-mx-auto dk-h-24 dk-w-auto dk-mb-wp-4"}),(0,Ar.jsx)("h1",{className:"dk-text-3xl dk-font-bold dk-text-gray-900 dk-mb-wp-3",children:(0,ka.__)("Welcome to Dokan Kits","dokan-kits")}),(0,Ar.jsx)("p",{className:"dk-max-w-2xl dk-mx-auto dk-text-lg dk-text-gray-600 dk-mb-wp-3",children:(0,ka.__)("The essential toolkit to supercharge your Dokan-powered marketplace with advanced features for vendors and administrators.","dokan-kits")}),(0,Ar.jsx)("p",{className:"dk-max-w-2xl dk-mx-auto dk-text-base dk-text-gray-500",children:(0,ka.__)("Enhance product management, streamline vendor operations, and improve the overall marketplace experience with our carefully crafted extensions.","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-mt-wp-6 dk-flex dk-flex-wrap dk-justify-center dk-gap-wp-4",children:[(0,Ar.jsxs)("span",{className:"dk-inline-flex dk-items-center dk-px-wp-3 dk-py-wp-1 dk-rounded-full dk-text-sm dk-font-medium dk-bg-primary-100 dk-text-primary-800",children:[(0,Ar.jsx)(Js,{className:"dk-w-4 dk-h-4 dk-mr-wp-1"}),(0,ka.__)("Version","dokan-kits"),": ",Dokan_Kits?.version||"3.0.0"]}),(0,Ar.jsxs)("span",{className:"dk-inline-flex dk-items-center dk-px-wp-3 dk-py-wp-1 dk-rounded-full dk-text-sm dk-font-medium dk-bg-green-100 dk-text-green-800",children:[(0,Ar.jsx)(Zs,{className:"dk-w-4 dk-h-4 dk-mr-wp-1"}),(0,ka.__)("Active Installations","dokan-kits"),": 500+"]}),(0,Ar.jsxs)("span",{className:"dk-inline-flex dk-items-center dk-px-wp-3 dk-py-wp-1 dk-rounded-full dk-text-sm dk-font-medium dk-bg-blue-100 dk-text-blue-800",children:[(0,Ar.jsx)(Xs,{className:"dk-w-4 dk-h-4 dk-mr-wp-1"}),(0,ka.__)("Last Updated","dokan-kits"),": ",d[0]?.releaseDate||"June 23, 2025"]})]})]})}),l=()=>(0,Ar.jsxs)(Ar.Fragment,{children:[(0,Ar.jsx)("h2",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-4",children:(0,ka.__)("Advanced Features","dokan-kits")}),(0,Ar.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6 dk-mb-wp-8",children:n.map((e,a)=>(0,Ar.jsxs)(t.Card,{className:"dk-transition dk-duration-300 dk-ease-in-out hover:dk-shadow-lg",children:[(0,Ar.jsx)(t.CardBody,{className:"w-full dk-p-6",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-flex-col md:dk-flex-row dk-items-start",children:[(0,Ar.jsx)("img",{src:e.image,alt:e.title,className:"dk-h-16 dk-w-16 dk-rounded-lg dk-mb-wp-4 md:dk-mb-0 md:dk-mr-wp-5"}),(0,Ar.jsxs)("div",{className:"dk-flex-grow",children:[(0,Ar.jsx)("h3",{className:"dk-text-xl dk-font-semibold dk-text-gray-900 dk-mb-wp-3",children:e.title}),(0,Ar.jsx)("p",{className:"dk-text-gray-600 dk-leading-relaxed",children:e.description})]})]})}),(0,Ar.jsx)(t.CardFooter,{className:"dk-p-5 dk-bg-gray-50 dk-border-t dk-border-gray-200 dk-flex dk-flex-col md:dk-flex-row md:dk-justify-end md:dk-items-center",children:(0,Ar.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button",children:[(0,ka.__)("Explore Now","dokan-kits"),(0,Ar.jsx)(Qs,{className:"dk-w-4 dk-h-4 dk-ml-wp-1"})]})})]},a))})]}),c=()=>(0,Ar.jsxs)(Ar.Fragment,{children:[(0,Ar.jsx)("h2",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-4",children:(0,ka.__)("Contributors","dokan-kits")}),(0,Ar.jsx)(t.Card,{className:"dk-mb-wp-8",children:(0,Ar.jsx)(t.CardBody,{children:(0,Ar.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 lg:dk-grid-cols-3 dk-gap-wp-6",children:r.map((e,t)=>(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center dk-space-x-wp-4",children:[(0,Ar.jsx)("img",{src:e.avatar,alt:e.name,className:"dk-h-14 dk-w-14 dk-rounded-full"}),(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)("h3",{className:"dk-text-lg dk-font-medium dk-text-gray-900",children:e.name}),(0,Ar.jsx)("p",{className:"dk-text-sm dk-text-gray-600 dk-mb-wp-1",children:e.role}),(0,Ar.jsx)("a",{href:e.profile,target:"_blank",rel:"noopener noreferrer",className:"dk-text-sm dk-text-primary-600 hover:dk-text-primary-800",children:(0,ka.__)("WordPress.org Profile","dokan-kits")})]})]},t))})})})]}),u=()=>(0,Ar.jsxs)(Ar.Fragment,{children:[(0,Ar.jsx)("h2",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-4",children:(0,ka.__)("Getting Help","dokan-kits")}),(0,Ar.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6 dk-mb-wp-8",children:o.map((e,a)=>(0,Ar.jsxs)(t.Card,{children:[(0,Ar.jsx)(t.CardHeader,{children:(0,Ar.jsxs)("h3",{className:"dk-text-lg dk-font-medium dk-text-gray-900 dk-flex dk-items-center",children:[e.icon&&"sos"===e.icon&&(0,Ar.jsx)(en,{className:"dk-w-5 dk-h-5 dk-mr-wp-2 dk-text-primary-600"}),e.icon&&"book"===e.icon&&(0,Ar.jsx)(Ea,{className:"dk-w-5 dk-h-5 dk-mr-wp-2 dk-text-primary-600"}),e.icon&&"lightbulb"===e.icon&&(0,Ar.jsx)(tn,{className:"dk-w-5 dk-h-5 dk-mr-wp-2 dk-text-primary-600"}),e.icon&&"video-alt3"===e.icon&&(0,Ar.jsx)(an,{className:"dk-w-5 dk-h-5 dk-mr-wp-2 dk-text-primary-600"}),e.title]})}),(0,Ar.jsxs)(t.CardBody,{children:[(0,Ar.jsx)("p",{className:"dk-text-gray-600 dk-mb-wp-4",children:e.description}),(0,Ar.jsx)("a",{href:e.buttonUrl,target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button",children:e.buttonText})]})]},a))})]}),k=()=>(0,Ar.jsxs)(Ar.Fragment,{children:[(0,Ar.jsx)("h2",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-4",children:(0,ka.__)("Latest Changes","dokan-kits")}),(0,Ar.jsxs)(t.Card,{children:[(0,Ar.jsx)(t.CardHeader,{children:(0,Ar.jsx)("h3",{className:"dk-text-lg dk-font-medium dk-text-gray-900",children:(0,ka.__)("Changelog","dokan-kits")})}),(0,Ar.jsxs)(t.CardBody,{children:[(0,Ar.jsx)("div",{className:"dk-space-y-wp-4",children:d.map((e,t)=>(0,Ar.jsxs)("div",{children:[(0,Ar.jsxs)("h4",{className:"dk-text-md dk-font-medium dk-text-gray-900",children:[(0,ka.__)("Version","dokan-kits")," ",e.version,(0,Ar.jsxs)("span",{className:"dk-ml-wp-2 dk-text-sm dk-text-gray-500",children:["- ",(0,ka.__)("Released on","dokan-kits")," ",e.releaseDate]})]}),(0,Ar.jsx)("ul",{className:"dk-list-disc dk-list-inside dk-text-gray-600 dk-mt-wp-2 dk-space-y-wp-1",children:e.changes.map((e,t)=>(0,Ar.jsx)("li",{children:e},t))})]},t))}),(0,Ar.jsx)("div",{className:"dk-mt-wp-4 dk-pt-wp-4 dk-border-t dk-border-gray-200",children:(0,Ar.jsxs)("a",{href:"https://wordpress.org/plugins/dokan-kits/changelog/",target:"_blank",rel:"noopener noreferrer",className:"dk-text-primary-600 hover:dk-text-primary-800 dk-inline-flex dk-items-center",children:[(0,ka.__)("View full changelog","dokan-kits"),(0,Ar.jsx)(Qs,{className:"dk-w-4 dk-h-4 dk-ml-wp-1"})]})})]})]})]});return(0,Ar.jsxs)("div",{className:"dokan-kits-about-page",children:[(0,Ar.jsx)(i,{}),(0,Ar.jsx)(l,{}),r.length>0&&(0,Ar.jsx)(c,{}),(0,Ar.jsx)(u,{}),(0,Ar.jsx)(k,{})]})},nn=window.wp.apiFetch;var on=e.n(nn);const dn=ga("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]),ln=ga("tool-case",[["path",{d:"M10 15h4",key:"192ueg"}],["path",{d:"m14.817 10.995-.971-1.45 1.034-1.232a2 2 0 0 0-2.025-3.238l-1.82.364L9.91 3.885a2 2 0 0 0-3.625.748L6.141 6.55l-1.725.426a2 2 0 0 0-.19 3.756l.657.27",key:"xbnumr"}],["path",{d:"m18.822 10.995 2.26-5.38a1 1 0 0 0-.557-1.318L16.954 2.9a1 1 0 0 0-1.281.533l-.924 2.122",key:"eaw7gc"}],["path",{d:"M4 12.006A1 1 0 0 1 4.994 11H19a1 1 0 0 1 1 1v7a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z",key:"1vaooh"}]]),cn=ga("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),un=ga("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]),kn=ga("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]),mn=ga("message-circle",[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]]),hn=()=>{const e=({className:e})=>(0,Ar.jsx)("div",{className:`dk-animate-pulse dk-bg-gray-200 dk-rounded ${e}`}),t=()=>(0,Ar.jsx)("div",{className:"dk-admin-card dk-bg-gradient-to-r dk-from-primary-50 dk-to-secondary-50 dk-border-l-4 dk-border-primary-500 dk-mb-wp-6",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center",children:[(0,Ar.jsx)("div",{className:"dk-flex-shrink-0 dk-mr-wp-4",children:(0,Ar.jsx)(e,{className:"dk-w-16 dk-h-16 dk-rounded"})}),(0,Ar.jsxs)("div",{className:"dk-flex-grow",children:[(0,Ar.jsx)(e,{className:"dk-h-7 dk-w-64 dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-max-w-2xl"})]})]})}),a=()=>(0,Ar.jsx)("div",{className:"dk-grid dk-grid-cols-1 dk-gap-wp-6",children:(0,Ar.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-3 dk-gap-wp-4",children:Array(3).fill().map((t,a)=>(0,Ar.jsx)("div",{className:"dk-admin-card dk-border-t-4 dk-border-primary-500 dk-bg-primary-50",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-justify-between dk-items-center",children:[(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)(e,{className:"dk-h-6 dk-w-32 dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-h-8 dk-w-16"})]}),(0,Ar.jsx)("div",{className:"dk-rounded-full dk-w-12 dk-h-12 dk-flex dk-items-center dk-justify-center dk-bg-white dk-border dk-border-gray-200",children:(0,Ar.jsx)(e,{className:"dk-w-6 dk-h-6 dk-rounded"})})]})},a))})}),r=()=>(0,Ar.jsxs)("div",{className:"dk-admin-card",children:[(0,Ar.jsx)(e,{className:"dk-h-7 dk-w-48 dk-border-b dk-border-gray-200 dk-pb-wp-3 dk-mb-wp-4"}),(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-4"}),(0,Ar.jsx)("div",{className:"dk-space-y-wp-3",children:Array(4).fill().map((t,a)=>(0,Ar.jsx)(e,{className:"dk-h-9 dk-w-full dk-rounded-md"},a))})]})]}),s=()=>(0,Ar.jsxs)("div",{className:"dk-admin-card",children:[(0,Ar.jsx)(e,{className:"dk-h-7 dk-w-64 dk-border-b dk-border-gray-200 dk-pb-wp-3 dk-mb-wp-4"}),(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-4"}),(0,Ar.jsx)("ul",{className:"dk-space-y-wp-3",children:Array(3).fill().map((t,a)=>(0,Ar.jsx)("li",{children:(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center",children:[(0,Ar.jsx)("div",{className:"dk-w-8 dk-h-8 dk-rounded-full dk-bg-primary-100 dk-flex dk-items-center dk-justify-center dk-mr-wp-2",children:(0,Ar.jsx)(e,{className:"dk-w-4 dk-h-4 dk-rounded"})}),(0,Ar.jsx)(e,{className:"dk-h-5 dk-w-32"})]})},a))}),(0,Ar.jsxs)("div",{className:"dk-mt-wp-6 dk-p-wp-3 dk-bg-yellow-50 dk-rounded-md dk-border dk-border-yellow-200",children:[(0,Ar.jsx)(e,{className:"dk-h-6 dk-flex dk-items-center dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-3"}),(0,Ar.jsx)(e,{className:"dk-h-10 dk-w-full dk-rounded-md"})]})]})]}),n=()=>(0,Ar.jsx)("div",{className:"dk-fixed dk-inset-0 dk-bg-black dk-bg-opacity-50 dk-flex dk-items-center dk-justify-center",style:{display:"none"},children:(0,Ar.jsx)("div",{className:"dk-bg-white dk-rounded-lg dk-max-w-xl dk-w-full dk-mx-4",children:(0,Ar.jsxs)("div",{className:"dk-p-6",children:[(0,Ar.jsxs)("div",{className:"dk-flex dk-justify-between dk-items-center dk-mb-4",children:[(0,Ar.jsx)(e,{className:"dk-h-7 dk-w-48"}),(0,Ar.jsx)("div",{className:"dk-w-8 dk-h-8 dk-rounded-full dk-bg-gray-100 dk-flex dk-items-center dk-justify-center",children:(0,Ar.jsx)(e,{className:"dk-w-4 dk-h-4 dk-rounded"})})]}),(0,Ar.jsxs)("div",{className:"dk-mb-6",children:[(0,Ar.jsx)("div",{className:"dk-flex dk-justify-center dk-mb-4",children:(0,Ar.jsx)(e,{className:"dk-w-16 dk-h-16 dk-rounded-full"})}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-4"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-2"}),(0,Ar.jsx)(e,{className:"dk-h-10 dk-w-full dk-rounded dk-mb-2"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-3/4"})]}),(0,Ar.jsxs)("div",{className:"dk-flex dk-justify-end dk-space-x-3",children:[(0,Ar.jsx)(e,{className:"dk-h-10 dk-w-24 dk-rounded"}),(0,Ar.jsx)(e,{className:"dk-h-10 dk-w-24 dk-rounded"})]})]})})});return(0,Ar.jsxs)("div",{className:"dokan-kits-admin-page dk-p-6",children:[(0,Ar.jsx)(t,{}),(0,Ar.jsx)(a,{}),(0,Ar.jsxs)("div",{className:"dk-grid dk-grid-cols-1 lg:dk-grid-cols-3 dk-gap-wp-6 dk-mt-wp-6",children:[(0,Ar.jsx)(r,{}),(0,Ar.jsx)("div",{className:"lg:dk-col-span-2",children:(0,Ar.jsx)(s,{})})]}),(0,Ar.jsx)(n,{})]})},pn=()=>{const[e,a]=(0,s.useState)(!0),[r,n]=(0,s.useState)(!1),[o,d]=(0,s.useState)(!1),[i,l]=(0,s.useState)(!1),[c,u]=(0,s.useState)(!1),[k,m]=(0,s.useState)(!1),[h,p]=(0,s.useState)("all"),[f,x]=(0,s.useState)(null),g=(0,s.useRef)(null),[b,y]=(0,s.useState)({active_features_count:0,total_settings_count:0,dokan_version:"",url:""}),{addNotice:w}=Hs();if((0,s.useEffect)(()=>{(async()=>{try{a(!0);const e=await on()({path:"/dokan-kits/v1/dashboard"});if(!e.success)throw new Error(e.message||(0,ka.__)("Invalid response from the server","dokan-kits"));const t=e.data?.statistics||{};y({active_features_count:t.active_features?.value||0,total_settings_count:t.total_features?.value||0,dokan_version:t.dokan_version?.value||(0,ka.__)("Not Detected","dokan-kits"),url:window.location.href})}catch(e){w(e.message||(0,ka.__)("Failed to fetch dashboard data","dokan-kits"),"error")}finally{a(!1)}})()},[]),e)return(0,Ar.jsx)(hn,{});const v=()=>{m(!1),x(null),g.current&&(g.current.value="")},j=()=>{u(!1)};return e?(0,Ar.jsx)(hn,{}):(0,Ar.jsxs)("div",{className:"dokan-kits-admin-page",children:[(0,Ar.jsx)("div",{className:"dk-admin-card dk-bg-gradient-to-r dk-from-primary-50 dk-to-secondary-50 dk-border-l-4 dk-border-primary-500 dk-mb-wp-6",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center",children:[(0,Ar.jsx)("div",{className:"dk-flex-shrink-0 dk-mr-wp-4",children:(0,Ar.jsx)("img",{src:qs,alt:"Dokan Kits",className:"dk-w-16 dk-h-16"})}),(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)("h2",{className:"dk-text-xl dk-font-medium dk-text-gray-900",children:(0,ka.__)("Welcome to Dokan Kits","dokan-kits")}),(0,Ar.jsxs)("p",{className:"dk-mt-1 dk-text-sm dk-text-gray-600",children:[(0,ka.__)("You are running version","dokan-kits")," ",(0,Ar.jsx)("span",{className:"dk-font-medium",children:Dokan_Kits.version}),".",(0,ka.__)("Enhance your Dokan-powered marketplace with powerful tools and customizations.","dokan-kits")]})]})]})}),(0,Ar.jsxs)("div",{className:"dk-grid dk-grid-cols-1 dk-gap-wp-6",children:[(0,Ar.jsxs)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-3 dk-gap-wp-4",children:[(0,Ar.jsx)("div",{className:"dk-admin-card dk-border-t-4 dk-border-primary-500 dk-bg-primary-50",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-justify-between dk-items-center",children:[(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)("h3",{className:"dk-text-lg dk-font-medium",children:(0,ka.__)("Total Features","dokan-kits")}),(0,Ar.jsx)("p",{className:"dk-text-2xl dk-font-bold dk-mt-1",children:b.total_settings_count})]}),(0,Ar.jsx)("div",{className:"dk-rounded-full dk-w-12 dk-h-12 dk-flex dk-items-center dk-justify-center dk-bg-white dk-border dk-border-gray-200",children:(0,Ar.jsx)(dn,{className:"dk-w-6 dk-h-6 dk-text-primary-500"})})]})}),(0,Ar.jsx)("div",{className:"dk-admin-card dk-border-t-4 dk-border-secondary-500 dk-bg-secondary-50",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-justify-between dk-items-center",children:[(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)("h3",{className:"dk-text-lg dk-font-medium",children:(0,ka.__)("Total Active Features","dokan-kits")}),(0,Ar.jsx)("p",{className:"dk-text-2xl dk-font-bold dk-mt-1",children:b.active_features_count})]}),(0,Ar.jsx)("div",{className:"dk-rounded-full dk-w-12 dk-h-12 dk-flex dk-items-center dk-justify-center dk-bg-white dk-border dk-border-gray-200",children:(0,Ar.jsx)(Ks,{className:"dk-w-6 dk-h-6 dk-text-secondary-500"})})]})}),(0,Ar.jsx)("div",{className:"dk-admin-card dk-border-t-4 dk-border-green-500 dk-bg-green-50",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-justify-between dk-items-center",children:[(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)("h3",{className:"dk-text-lg dk-font-medium",children:(0,ka.__)("Dokan Version","dokan-kits")}),(0,Ar.jsx)("p",{className:"dk-text-2xl dk-font-bold dk-mt-1",children:b.dokan_version})]}),(0,Ar.jsx)("div",{className:"dk-rounded-full dk-w-12 dk-h-12 dk-flex dk-items-center dk-justify-center dk-bg-white dk-border dk-border-gray-200",children:(0,Ar.jsx)(ln,{className:"dk-w-6 dk-h-6 dk-text-green-500"})})]})})]}),(0,Ar.jsxs)("div",{className:"dk-grid dk-grid-cols-1 lg:dk-grid-cols-3 dk-gap-wp-6",children:[(0,Ar.jsxs)("div",{className:"dk-admin-card",children:[(0,Ar.jsx)("h2",{className:"dk-text-lg dk-font-medium dk-border-b dk-border-gray-200 dk-pb-wp-3 dk-mb-wp-4",children:(0,ka.__)("Settings Management","dokan-kits")}),(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)("p",{className:"dk-text-sm dk-text-gray-600 dk-mb-wp-4",children:(0,ka.__)("Manage your Dokan Kits features with these options:","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-space-y-wp-3",children:[(0,Ar.jsxs)(t.Button,{href:`${Dokan_Kits.adminUrl}?page=dokan-kits#/features`,variant:"primary",className:"dk-admin-button dk-w-full dk-justify-center dk-h-9",children:[(0,Ar.jsx)(Ks,{className:"dk-w-5 dk-h-5 dk-mr-2"}),(0,ka.__)("Configure Settings","dokan-kits")]}),(0,Ar.jsxs)(t.Button,{variant:"secondary",onClick:async()=>{try{l(!0),w((0,ka.__)("Preparing export file…","dokan-kits"),"info");const e=await on()({path:"/dokan-kits/v1/dashboard/export",method:"GET"});if(!e||!e.data)throw new Error((0,ka.__)("No data received from the server.","dokan-kits"));{const t=new Blob([JSON.stringify(e.data.data,null,2)],{type:"application/json"}),a=window.URL.createObjectURL(t),r=document.createElement("a");r.href=a;const s=(new Date).toISOString().split("T")[0];r.download=`dokan-kits-settings-${s}.json`,document.body.appendChild(r),r.click(),window.URL.revokeObjectURL(a),document.body.removeChild(r),w((0,ka.__)("Settings exported successfully.","dokan-kits"),"success")}}catch(e){w(e.message||(0,ka.__)("Failed to export settings. Please try again.","dokan-kits"),"error")}finally{l(!1)}},disabled:i,className:"dk-admin-button dk-admin-button-secondary dk-w-full dk-justify-center dk-h-9",children:[(0,Ar.jsx)(cn,{className:"dk-w-5 dk-h-5 dk-mr-2"}),i?(0,ka.__)("Exporting…","dokan-kits"):(0,ka.__)("Export Settings","dokan-kits")]}),(0,Ar.jsxs)(t.Button,{variant:"secondary",onClick:()=>{m(!0)},className:"dk-admin-button dk-admin-button-secondary dk-w-full dk-justify-center dk-h-9",children:[(0,Ar.jsx)(un,{className:"dk-w-5 dk-h-5 dk-mr-2"}),(0,ka.__)("Import Settings","dokan-kits")]}),(0,Ar.jsxs)(t.Button,{variant:"secondary",onClick:()=>{u(!0)},className:"dk-admin-button dk-admin-button-danger dk-w-full dk-justify-center dk-h-9",children:[(0,Ar.jsx)(Ca,{className:"dk-w-5 dk-h-5 dk-mr-2"}),(0,ka.__)("Reset Settings","dokan-kits")]})]})]})]}),(0,Ar.jsxs)("div",{className:"dk-admin-card",children:[(0,Ar.jsx)("h2",{className:"dk-text-lg dk-font-medium dk-border-b dk-border-gray-200 dk-pb-wp-3 dk-mb-wp-4",children:(0,ka.__)("Documentation & Support","dokan-kits")}),(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)("p",{className:"dk-text-sm dk-text-gray-600 dk-mb-wp-4",children:(0,ka.__)("Need help with Dokan Kits? Check out these resources:","dokan-kits")}),(0,Ar.jsxs)("ul",{className:"dk-space-y-wp-3",children:[(0,Ar.jsx)("li",{children:(0,Ar.jsxs)("a",{href:"https://wordpress.org/support/plugin/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:"dk-flex dk-items-center dk-text-primary-600 dk-hover:text-primary-800",children:[(0,Ar.jsx)("span",{className:"dk-w-8 dk-h-8 dk-rounded-full dk-bg-primary-100 dk-flex dk-items-center dk-justify-center dk-mr-wp-2",children:(0,Ar.jsx)(Sa,{className:"dk-w-5 dk-h-5 dk-text-primary-600"})}),(0,ka.__)("Support Forum","dokan-kits")]})}),(0,Ar.jsx)("li",{children:(0,Ar.jsxs)("a",{href:"https://wordpress.org/support/plugin/dokan-kits/reviews/#new-post",target:"_blank",rel:"noopener noreferrer",className:"dk-flex dk-items-center dk-text-primary-600 dk-hover:text-primary-800",children:[(0,Ar.jsx)("span",{className:"dk-w-8 dk-h-8 dk-rounded-full dk-bg-primary-100 dk-flex dk-items-center dk-justify-center dk-mr-wp-2",children:(0,Ar.jsx)(kn,{className:"dk-w-5 dk-h-5 dk-text-primary-600"})}),(0,ka.__)("Submit your feedback","dokan-kits")]})}),(0,Ar.jsx)("li",{children:(0,Ar.jsxs)("a",{href:"https://github.com/wpintegrity/feedback/issues",target:"_blank",rel:"noopener noreferrer",className:"dk-flex dk-items-center dk-text-primary-600 dk-hover:text-primary-800",children:[(0,Ar.jsx)("span",{className:"dk-w-8 dk-h-8 dk-rounded-full dk-bg-primary-100 dk-flex dk-items-center dk-justify-center dk-mr-wp-2",children:(0,Ar.jsx)(mn,{className:"dk-w-5 dk-h-5 dk-text-primary-600"})}),(0,ka.__)("Feature Idea or Bug Report","dokan-kits")]})})]}),(0,Ar.jsxs)("div",{className:"dk-mt-wp-6 dk-p-wp-3 dk-bg-yellow-50 dk-rounded-md dk-border dk-border-yellow-200",children:[(0,Ar.jsxs)("h3",{className:"dk-text-md dk-font-medium dk-text-yellow-800 dk-mb-wp-2",children:[(0,Ar.jsx)(ba,{className:"dk-w-5 dk-h-5 dk-mr-1 dk-text-yellow-800"}),(0,ka.__)("Need Help?","dokan-kits")]}),(0,Ar.jsx)("p",{className:"dk-text-sm dk-text-yellow-700 dk-mb-wp-3",children:(0,ka.__)("If you need support or have a feature request, please visit our support forum.","dokan-kits")}),(0,Ar.jsx)(t.Button,{href:"https://wordpress.org/support/plugin/dokan-kits/#new-topic-0",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-warning dk-w-full dk-justify-center",children:(0,ka.__)("Get Support","dokan-kits")})]})]})]})]})]}),k&&(0,Ar.jsx)(t.Modal,{title:(0,ka.__)("Import Settings","dokan-kits"),onRequestClose:v,className:"dokan-kits-admin-page dokan-kits-admin-modal dokan-kits-import-modal",children:(0,Ar.jsxs)("div",{className:"dk-modal-content",children:[(0,Ar.jsxs)("div",{className:"dk-modal-header",children:[(0,Ar.jsx)("h2",{className:"dk-modal-title",children:(0,ka.__)("Import Settings","dokan-kits")}),(0,Ar.jsx)("button",{type:"button",className:"dk-modal-close",onClick:v,"aria-label":(0,ka.__)("Close modal","dokan-kits"),children:(0,Ar.jsx)(ya,{className:"dk-w-5 dk-h-5"})})]}),(0,Ar.jsxs)("div",{className:"dk-modal-body",children:[(0,Ar.jsx)("div",{className:"dk-modal-icon dk-bg-primary-50 dk-text-primary-500",children:(0,Ar.jsx)(un,{className:"dk-w-6 dk-h-6"})}),(0,Ar.jsx)("p",{className:"dk-modal-description",children:(0,ka.__)("Select a Dokan Kits settings file to import. This will overwrite your current settings.","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-form-field",children:[(0,Ar.jsx)("label",{htmlFor:"import-file",className:"dk-form-label",children:(0,ka.__)("Settings File","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-file-input-wrapper",children:[(0,Ar.jsx)("input",{type:"file",id:"import-file",ref:g,accept:".json",onChange:e=>{const t=e.target.files[0];x(t)},className:"dk-file-input"}),(0,Ar.jsx)("div",{className:"dk-file-input-info",children:f?(0,Ar.jsx)("span",{className:"dk-file-name",children:f.name}):(0,Ar.jsx)("span",{className:"dk-file-placeholder",children:(0,ka.__)("Choose a file or drag it here","dokan-kits")})})]}),(0,Ar.jsx)("p",{className:"dk-form-help",children:(0,ka.__)("Only .json files exported from Dokan Kits are supported.","dokan-kits")})]})]}),(0,Ar.jsxs)("div",{className:"dk-modal-footer",children:[(0,Ar.jsx)(t.Button,{variant:"secondary",onClick:v,className:"dk-admin-button dk-admin-button-secondary",children:(0,ka.__)("Cancel","dokan-kits")}),(0,Ar.jsx)(t.Button,{variant:"primary",isBusy:o,disabled:o||!f,onClick:async()=>{if(f)if(f.name.endsWith(".json"))try{d(!0);const e=new window.FileReader;e.onload=async e=>{try{const t=JSON.parse(e.target.result),a=await on()({path:"/dokan-kits/v1/dashboard/import",method:"POST",data:{settings:t}});if(!a.success)throw new Error(a.message||(0,ka.__)("Failed to import settings.","dokan-kits"));{w(a.message||(0,ka.__)("Settings imported successfully.","dokan-kits"),"success");const e=await on()({path:"/dokan-kits/v1/dashboard"});if(e.success){const t=e.data?.statistics||{};y({active_features_count:t.active_features?.value||0,total_settings_count:t.total_features?.value||0,dokan_version:t.dokan_version?.value||(0,ka.__)("Not Detected","dokan-kits"),url:window.location.href})}}d(!1),v()}catch(e){w(e.message||(0,ka.__)("Failed to import settings. Please try again.","dokan-kits"),"error"),d(!1)}},e.onerror=()=>{w((0,ka.__)("Failed to read the file. Please try again.","dokan-kits"),"error"),d(!1)},e.readAsText(f)}catch(e){w(e.message||(0,ka.__)("Failed to import settings. Please try again.","dokan-kits"),"error"),d(!1)}else w((0,ka.__)("Please select a valid JSON file.","dokan-kits"),"error");else w((0,ka.__)("Please select a file to import.","dokan-kits"),"error")},className:"dk-admin-button",children:o?(0,ka.__)("Importing…","dokan-kits"):(0,ka.__)("Import","dokan-kits")})]})]})}),c&&(0,Ar.jsx)(t.Modal,{title:(0,ka.__)("Reset Settings","dokan-kits"),onRequestClose:j,className:"dokan-kits-admin-page dokan-kits-admin-modal dokan-kits-reset-modal",children:(0,Ar.jsxs)("div",{className:"dk-modal-content",children:[(0,Ar.jsxs)("div",{className:"dk-modal-header",children:[(0,Ar.jsx)("h2",{className:"dk-modal-title",children:(0,ka.__)("Reset Settings","dokan-kits")}),(0,Ar.jsx)("button",{type:"button",className:"dk-modal-close",onClick:j,"aria-label":(0,ka.__)("Close modal","dokan-kits"),children:(0,Ar.jsx)(ya,{className:"dk-w-5 dk-h-5"})})]}),(0,Ar.jsxs)("div",{className:"dk-modal-body",children:[(0,Ar.jsx)("div",{className:"dk-modal-icon dk-bg-red-50 dk-text-red-500",children:(0,Ar.jsx)(ba,{className:"dk-w-6 dk-h-6"})}),(0,Ar.jsx)("p",{className:"dk-modal-description dk-text-red-700",children:(0,ka.__)("Are you sure you want to reset Dokan Kits settings? This action cannot be undone.","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-form-field",children:[(0,Ar.jsx)("label",{htmlFor:"reset-scope",className:"dk-form-label",children:(0,ka.__)("Reset Scope","dokan-kits")}),(0,Ar.jsxs)("select",{id:"reset-scope",className:"dk-form-select",value:h,onChange:e=>p(e.target.value),children:[(0,Ar.jsx)("option",{value:"all",children:(0,ka.__)("All Settings","dokan-kits")}),b.setting_names&&b.setting_names.map((e,t)=>(0,Ar.jsx)("option",{value:e.toLowerCase(),children:e},t))]})]}),b.setting_names&&b.setting_names.length>0&&(0,Ar.jsxs)("div",{className:"dk-mt-wp-4",children:[(0,Ar.jsx)("p",{className:"dk-form-label dk-mb-wp-2",children:(0,ka.__)("Available Settings:","dokan-kits")}),(0,Ar.jsx)("div",{className:"dk-p-wp-3 dk-bg-gray-50 dk-rounded-md dk-border dk-border-gray-200 dk-max-h-60 dk-overflow-y-auto",children:(0,Ar.jsx)("div",{className:"dk-flex dk-flex-wrap dk-gap-wp-2",children:b.setting_names.map((e,t)=>(0,Ar.jsx)("span",{className:"dk-text-sm dk-text-gray-700 dk-bg-white dk-px-wp-2 dk-py-wp-1 dk-rounded dk-border dk-border-gray-200",children:e},t))})})]})]}),(0,Ar.jsxs)("div",{className:"dk-modal-footer",children:[(0,Ar.jsx)(t.Button,{variant:"secondary",onClick:j,className:"dk-admin-button dk-admin-button-secondary",children:(0,ka.__)("Cancel","dokan-kits")}),(0,Ar.jsx)(t.Button,{variant:"primary",isBusy:r,disabled:r,onClick:async()=>{try{n(!0);const e=await on()({path:"/dokan-kits/v1/dashboard/reset",method:"POST",data:{scope:h,confirm:!0}});if(!e.success)throw new Error(e.message||(0,ka.__)("Failed to reset settings.","dokan-kits"));{w(e.message||(0,ka.__)("Settings reset successfully.","dokan-kits"),"success");const t=await on()({path:"/dokan-kits/v1/dashboard"});if(t.success){const e=t.data?.statistics||{};y({active_features_count:e.active_features?.value||0,total_settings_count:e.total_features?.value||0,dokan_version:e.dokan_version?.value||(0,ka.__)("Not Detected","dokan-kits"),url:window.location.href})}}}catch(e){w(e.message||(0,ka.__)("Failed to reset settings. Please try again.","dokan-kits"),"error")}finally{n(!1),j()}},className:"dk-admin-button dk-admin-button-danger",children:r?(0,ka.__)("Resetting…","dokan-kits"):(0,ka.__)("Reset","dokan-kits")})]})]})})]})},fn=window.wp.htmlEntities,xn=(e,t,a="=")=>{switch("string"!=typeof t||"true"!==t&&"false"!==t||(t="true"===t),"string"!=typeof t||isNaN(Number(t))||("number"==typeof e||"string"==typeof e&&!isNaN(Number(e)))&&(e=Number(e),t=Number(t)),a){case"=":default:return e===t;case"!=":return e!==t;case">":return e>t;case"<":return e<t;case">=":return e>=t;case"<=":return e<=t;case"contains":return String(e).includes(String(t));case"not_contains":return!String(e).includes(String(t));case"is_empty":return""===e||null==e;case"is_not_empty":return""!==e&&null!=e}},gn=(e,t)=>{if(!e?.dependencies?.length)return!0;for(const a of e.dependencies){if(a.key&&void 0===t[a.key])return!1;const e=t[a.key];if(!xn(e,a.value,a.comparison))return!1}return!0},bn=(e,t)=>{const a={};let r=!0;return((e,t)=>{const a=[];for(const r in e){const s=e[r];for(const e in s.sections){const n=s.sections[e];for(const s in n.fields){const o=n.fields[s];o.id||(o.id=s);const d=o.dependency_key||`${r}.${e}.${s}`;void 0===t[d]&&void 0!==o.value&&(t[d]=o.value),gn(o,t)&&a.push({field:o,path:{tabId:r,sectionId:e,fieldId:s},key:d})}}}return a})(e,t).forEach(({field:e,key:s})=>{const n=((e,t)=>{if(!e)return{isValid:!1,message:"Field not found"};if(e.required&&(""===t||null==t))return{isValid:!1,message:e.title+" is required"};switch(e.variant){case"number":if(""===t&&!e.required)return{isValid:!0,message:""};const a=parseFloat(t);if(isNaN(a))return{isValid:!1,message:e.title+" must be a valid number"};if(void 0!==e.minimum&&a<e.minimum)return{isValid:!1,message:e.title+" must be at least "+e.minimum};if(void 0!==e.maximum&&a>e.maximum)return{isValid:!1,message:e.title+" must be at most "+e.maximum};break;case"select":if(e.options&&e.options.length>0&&!e.options.map(e=>e.value).includes(t))return{isValid:!1,message:e.title+" has an invalid selection"};break;case"card-select":if(e.options){let a=[];if(Array.isArray(e.options)?a=e.options.map(e=>e.value):"object"==typeof e.options&&(a=Object.keys(e.options)),a.length>0)if(e.multiple){if(!Array.isArray(t))return{isValid:!1,message:e.title+" must be an array for multiple selection"};for(const r of t)if(!a.includes(r))return{isValid:!1,message:e.title+" contains an invalid selection"}}else{if(Array.isArray(t))return{isValid:!1,message:e.title+" should not be an array for single selection"};if(t&&!a.includes(t))return{isValid:!1,message:e.title+" has an invalid selection"}}}}return{isValid:!0,message:""}})(e,t[s]);n.isValid||(a[s]=n.message,r=!1)}),{isValid:r,errors:a}},yn=e=>{const t={};for(const a in e){const r=e[a];for(const e in r.sections){const s=r.sections[e];for(const r in s.fields){const n=s.fields[r],o=n.dependency_key||`${a}.${e}.${r}`;let d=n.value;if(null==d&&(d=void 0!==n.default?n.default:""),["toggle","checkbox"].includes(n.variant))d=Boolean(!0===d||"true"===d||"1"===d||1===d);else if("number"===n.variant&&""!==d){const e=parseFloat(d);isNaN(e)||(d=e)}else"multi-select"!==n.variant||Array.isArray(d)?"card-select"===n.variant&&(n.multiple?Array.isArray(d)||(d=d?[d]:[]):Array.isArray(d)&&(d=d.length>0?d[0]:"")):d=d?[d]:[];t[o]=d}}}return t},wn=window.wp.blockEditor,vn={toggle:({field:e,value:a,onChange:r})=>{const s=!0===a||"true"===a||"1"===a||1===a;return(0,Ar.jsx)(t.ToggleControl,{label:e.label,help:e.description,checked:s,onChange:e=>{r(e)},disabled:e.disabled||e.readonly})},text:({field:e,value:a,onChange:r})=>{const s=e.inputType||"text",n=null!=a?String(a):"";return(0,Ar.jsx)(t.TextControl,{label:e.label,help:e.description,value:n,onChange:r,disabled:e.disabled,readOnly:e.readonly,placeholder:e.placeholder||"",type:s,required:e.required,size:e.size})},select:({field:e,value:a,onChange:r})=>{const s=e.options||[],n=Array.isArray(s)?s.map(e=>"object"==typeof e&&void 0!==e.value?e:{value:e,label:e}):Object.entries(s).map(([e,t])=>({value:e,label:t}));return(0,Ar.jsx)(t.SelectControl,{label:e.label,help:e.description,value:a||"",options:n,onChange:r,disabled:e.disabled,multiple:e.multiple})},"card-select":({field:e,value:t,onChange:a})=>{const r=e.options||[],s=Array.isArray(r)?r.map(e=>"object"==typeof e&&void 0!==e.value?e:{value:e,label:e,description:"",icon:""}):Object.entries(r).map(([e,t])=>({value:e,label:"object"==typeof t&&t.label||t,description:"object"==typeof t&&t.description||"",icon:"object"==typeof t&&t.icon||""})),n=r=>{if(e.multiple){let e=[];Array.isArray(t)?e=t:t&&(e=[t]);const s=e.includes(r)?e.filter(e=>e!==r):[...e,r];a(s)}else a(r===t?"":r)};return(0,Ar.jsxs)("div",{className:"dokan-kits-card-select-field",children:[e.label&&(0,Ar.jsx)("div",{className:"dk-block dk-text-sm dk-font-medium dk-text-gray-700 dk-mb-2",children:e.label}),e.description&&(0,Ar.jsx)("p",{className:"dk-text-sm dk-text-gray-600 dk-mb-3",children:e.description}),(0,Ar.jsx)("div",{className:"dk-grid dk-gap-3 "+(o=e.columns,1===o?"dk-grid-cols-1":2===o?"dk-grid-cols-1 md:dk-grid-cols-2":4===o?"dk-grid-cols-1 md:dk-grid-cols-2 lg:dk-grid-cols-4":"dk-grid-cols-1 md:dk-grid-cols-2 lg:dk-grid-cols-3"),children:s.map(a=>{const r=(a=>{if(e.multiple){let e=[];return Array.isArray(t)?e=t:t&&(e=[t]),e.includes(a)}return t===a})(a.value);return(0,Ar.jsxs)("div",{className:`dk-relative dk-border-2 dk-rounded-lg dk-p-4 dk-cursor-pointer dk-transition-all dk-duration-200 ${r?"dk-border-blue-500 dk-bg-blue-50":"dk-border-gray-200 dk-bg-white hover:dk-border-gray-300 hover:dk-bg-gray-50"} ${e.disabled?"dk-opacity-50 dk-cursor-not-allowed":""}`,onClick:()=>!e.disabled&&n(a.value),role:"button",tabIndex:e.disabled?-1:0,onKeyDown:t=>{e.disabled||"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),n(a.value))},children:[r&&(0,Ar.jsx)("div",{className:"dk-absolute dk-top-2 dk-right-2",children:(0,Ar.jsx)("div",{className:"dk-w-5 dk-h-5 dk-bg-blue-500 dk-rounded-full dk-flex dk-items-center dk-justify-center",children:(0,Ar.jsx)("svg",{className:"dk-w-3 dk-h-3 dk-text-white",fill:"currentColor",viewBox:"0 0 20 20",children:(0,Ar.jsx)("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})})})}),a.icon&&(0,Ar.jsx)("div",{className:"dk-mb-3",children:"string"==typeof a.icon&&a.icon.startsWith("dashicons-")?(0,Ar.jsx)("span",{className:`dashicons ${a.icon} dk-text-2xl dk-text-gray-600`}):(0,Ar.jsx)("div",{className:"dk-text-2xl",children:a.icon})}),(0,Ar.jsx)("h3",{className:"dk-text-base dk-font-medium dk-text-gray-900 dk-mb-1",children:a.label}),a.description&&(0,Ar.jsx)("p",{className:"dk-text-sm dk-text-gray-600",children:a.description})]},a.value)})}),e.multiple&&(0,Ar.jsx)("p",{className:"dk-text-xs dk-text-gray-500 dk-mt-2",children:(0,ka.__)("You can select multiple options.","dokan-kits")})]});var o},"multi-select":({field:e,value:a,onChange:r})=>{const s=e.options||[],n=Array.isArray(s)?s.map(e=>"object"==typeof e&&void 0!==e.value?e:{value:e,label:e}):Object.entries(s).map(([e,t])=>({value:e,label:t}));let o=[];Array.isArray(a)?o=a:a&&(o=[a]);const d=o.map(e=>n.find(t=>t.value===e)||{value:e,label:e});return(0,Ar.jsx)(t.CustomSelectControl,{label:e.label,help:e.description,options:n,onChange:({selectedItems:e})=>r(e.map(e=>e.value)),value:d,isMultiple:!0,__next40pxDefaultSize:!0,className:"dokan-kits-multi-select-field",disabled:e.disabled})},number:({field:e,value:a,onChange:r})=>{const s=void 0!==e.min?e.min:e.minimum,n=void 0!==e.max?e.max:e.maximum,o=e.step||1,d=null!=a?String(a):"";return(0,Ar.jsx)(t.TextControl,{type:"number",label:e.label,help:e.description,value:d,onChange:e=>{if(""===e)return void r("");const t=parseFloat(e);if(isNaN(t))return;let a=t;void 0!==s&&t<s&&(a=s),void 0!==n&&t>n&&(a=n),r(a)},min:s,max:n,step:o,disabled:e.disabled,readOnly:e.readonly,placeholder:e.placeholder,className:e.hasError?"dk-has-error":""})},range:({field:e,value:a,onChange:r})=>{const s=void 0!==e.min?e.min:e.minimum,n=void 0!==e.max?e.max:e.maximum,o=e.step||1,d=null!=a?Number(a):"";return(0,Ar.jsx)(t.RangeControl,{label:e.label,help:e.description,value:d,onChange:r,min:s,max:n,step:o,allowReset:e.allowReset||!1,resetFallbackValue:e.default||s,disabled:e.disabled,withInputField:!0,showTooltip:!0,railColor:e.railColor||void 0,trackColor:e.trackColor||void 0,marks:e.marks||!1,className:e.hasError?"dk-has-error":""})},color:({field:e,value:a,onChange:r})=>{const n=(0,s.useId)(),o=`dokan-kits-color-${e.id||n}`;return(0,Ar.jsxs)("div",{className:"dokan-kits-color-field",children:[(0,Ar.jsx)("div",{className:"dokan-kits-color-field-label",children:e.label&&(0,Ar.jsx)("label",{htmlFor:o,children:e.label})}),(0,Ar.jsx)(t.ColorPicker,{id:o,color:a||e.default||"#000000",onChangeComplete:e=>{let t;t="string"==typeof e.hex?e.hex:`rgba(${e.rgb.r}, ${e.rgb.g}, ${e.rgb.b}, ${e.rgb.a})`,r(t)},disableAlpha:!0===e.disableAlpha}),e.description&&(0,Ar.jsx)("p",{className:"dokan-kits-color-field-description",children:e.description})]})},textarea:({field:e,value:a,onChange:r})=>(0,Ar.jsx)(t.TextareaControl,{label:e.label,help:e.description,value:a||"",onChange:r,disabled:e.disabled,placeholder:e.placeholder||"",rows:e.rows||4}),radio:({field:e,value:a,onChange:r})=>(0,Ar.jsx)(t.RadioControl,{label:e.label,help:e.description,selected:a||e.default||"",options:e.options||[],onChange:r,disabled:e.disabled}),checkbox:({field:e,value:a,onChange:r})=>{const s=!0===a||"true"===a||"1"===a||1===a;return(0,Ar.jsx)(t.CheckboxControl,{label:e.label,help:e.description,checked:s,onChange:e=>{r(e)},disabled:e.disabled||e.readonly})},media:({field:e,value:a,onChange:r})=>{const n=e.allowedTypes||["image"],o=(0,s.useId)(),d=`dokan-kits-media-${e.id||o}`,i=`${d}-label`;return(0,Ar.jsxs)("div",{className:"dokan-kits-media-field",children:[(0,Ar.jsx)("div",{className:"dokan-kits-media-field-label",children:e.label&&(0,Ar.jsx)("label",{id:i,htmlFor:d,children:e.label})}),(0,Ar.jsx)(wn.MediaUploadCheck,{children:(0,Ar.jsx)(wn.MediaUpload,{onSelect:e=>{r(e.id)},allowedTypes:n,value:a,render:({open:s})=>(0,Ar.jsx)("div",{className:"dokan-kits-media-upload",id:d,children:a?(0,Ar.jsxs)("div",{className:"dokan-kits-media-preview",children:[n.includes("image")&&(0,Ar.jsx)("img",{src:`${e.mediaBaseUrl||""}?id=${a}&size=medium`,alt:""}),(0,Ar.jsxs)("div",{className:"dokan-kits-media-actions",children:[(0,Ar.jsx)(t.Button,{onClick:s,variant:"secondary",isSmall:!0,children:(0,ka.__)("Replace","dokan-kits")}),(0,Ar.jsx)(t.Button,{onClick:()=>r(""),variant:"link",isDestructive:!0,isSmall:!0,children:(0,ka.__)("Remove","dokan-kits")})]})]}):(0,Ar.jsx)(t.Button,{onClick:s,variant:"secondary","aria-labelledby":i,children:e.buttonText||(0,ka.__)("Choose Media","dokan-kits")})})})}),e.description&&(0,Ar.jsx)("p",{className:"dokan-kits-media-field-description",children:e.description})]})},code:({field:e,value:t,onChange:a})=>{const r=(0,s.useId)(),n=`dokan-kits-code-${e.id||r}`;return(0,Ar.jsxs)("div",{className:"dokan-kits-code-field",children:[e.label&&(0,Ar.jsx)("label",{htmlFor:n,className:"dokan-kits-code-field-label",children:e.label}),(0,Ar.jsx)("div",{className:"dokan-kits-code-editor",children:(0,Ar.jsx)("textarea",{id:n,className:"dokan-kits-code-textarea",value:t||"",onChange:e=>a(e.target.value),disabled:e.disabled,placeholder:e.placeholder||"",rows:e.rows||10,spellCheck:"false"})}),e.description&&(0,Ar.jsx)("p",{className:"dokan-kits-code-field-description",children:e.description})]})},button:({field:e})=>{const[a,r]=(0,s.useState)(!1);return(0,Ar.jsx)(t.Button,{variant:(()=>{switch(e.button_type){case"primary":default:return"primary";case"secondary":return"secondary";case"tertiary":return"tertiary";case"link":return"link"}})(),size:e.button_size,className:zr("dk-admin-button dk-w-full dk-justify-center",e.classes),icon:e.icon||null,isDestructive:"destructive"===e.button_type,isBusy:a,disabled:e.disabled||a,onClick:()=>{if(!e.confirm_message||e.skipConfirmation||window.confirm(e.confirm_message))switch(e.action){case"ajax":e.ajax_action&&(r(!0),window.jQuery.ajax({url:window.ajaxurl,method:"POST",data:{action:e.ajax_action,nonce:window.Dokan_Kits?.nonce||"",button_id:e.id}}).done(e=>{e.success&&"function"==typeof window.Dokan_Kits?.notify?window.Dokan_Kits.notify({type:"success",message:e.data?.message||"Action completed successfully",isDismissible:!0}):e.success||"function"!=typeof window.Dokan_Kits?.notify||window.Dokan_Kits.notify({type:"error",message:e.data?.message||"Action failed",isDismissible:!0})}).fail(()=>{"function"==typeof window.Dokan_Kits?.notify&&window.Dokan_Kits.notify({type:"error",message:"Failed to complete the action",isDismissible:!0})}).always(()=>{r(!1)}));break;case"link":e.url&&(window.location.href=e.url);break;default:"function"==typeof e.onClick&&e.onClick()}},children:e.button_text||e.label||"Button"})}},jn={text:"text",textarea:"textarea",select:"select","card-select":"card-select","multi-select":"multi-select",number:"number",checkbox:"checkbox",radio:"radio",color:"color",media:"media",code:"code",toggle:"toggle",button:"button"},Nn=({field:e,value:t,onChange:a})=>{let r=e.type;e.variant&&(r=jn[e.variant]||"text","number"===e.variant&&"range"===e.display&&(r="range"));const s=vn[r];if(!s)return(0,Ar.jsx)("div",{className:"dokan-kits-field-error",children:(0,Ar.jsxs)("p",{children:[(0,ka.__)("Unknown field type:","dokan-kits"),(0,Ar.jsx)("code",{children:r})]})});const n={...e,label:e.label||e.title||"",options:e.options||[],placeholder:e.placeholder||"",readonly:e.readonly||!1,disabled:e.disabled||!1,min:e.minimum,max:e.maximum,step:e.step};return(0,Ar.jsx)(s,{field:n,value:t,onChange:a})},Cn={text:"text",textarea:"textarea",select:"select","card-select":"card-select","multi-select":"multi-select",number:"number",checkbox:"checkbox",radio:"radio",color:"color",media:"media",code:"code",toggle:"toggle"},Sn=({tabId:e,sectionId:t,fields:a,settings:r,validationErrors:n={},onSettingChange:o})=>{const[d,i]=(0,s.useState)({}),l=(0,s.useRef)({}),c=(0,s.useRef)({}),u=(0,s.useMemo)(()=>Object.values(a).map(a=>{const s=a.dependency_key||`${e}.${t}.${a.id}`;return{field:a,settingKey:s,value:r[s],isVisible:gn(a,r),hasError:void 0!==n[s],errorMessage:n[s]}}),[a,r,e,t,n]);return(0,s.useEffect)(()=>{const e={},t={};if(u.forEach(({field:a,isVisible:r})=>{r&&(t[a.id]=!0,l.current[a.id]||(e[a.id]="animate-field-enter"))}),Object.keys(e).length>0){i(t=>({...t,...e}));const t=Object.keys(e);setTimeout(()=>{i(e=>{const a={...e};return t.forEach(e=>{delete a[e]}),a})},500)}l.current=t},[u]),(0,s.useEffect)(()=>{const e={};if(u.forEach(({field:t,settingKey:a,hasError:r})=>{r&&!c.current[a]&&(e[t.id]="dk-shake")}),Object.keys(e).length>0){i(t=>({...t,...e}));const t=Object.keys(e);setTimeout(()=>{i(e=>{const a={...e};return t.forEach(e=>{delete a[e]}),a})},800)}const t={};Object.entries(n).forEach(([e,a])=>{t[e]=a}),c.current=t},[n,u]),a&&0!==Object.keys(a).length?(0,Ar.jsx)("div",{className:"dokan-kits-settings-fields",children:u.map(({field:e,settingKey:t,value:a,isVisible:r,hasError:s,errorMessage:n})=>{if(!r)return null;const i=(l=e.variant,Cn[l]||"text");var l;const c=d[e.id]||"";return(0,Ar.jsxs)("div",{className:`dokan-kits-field-container ${s?"dk-has-error":""} ${c}`,children:[(0,Ar.jsx)(Nn,{field:{...e,type:i,label:(0,fn.decodeEntities)(e.title),description:(0,fn.decodeEntities)(e.description),hasError:s,errorMessage:n},value:a,onChange:e=>{((e,t)=>{o(e,t)})(t,e)}}),s&&(0,Ar.jsx)("div",{className:"dk-text-red-500 dk-text-sm dk-mt-1",children:n})]},e.id)})}):(0,Ar.jsx)("p",{children:(0,ka.__)("No fields in this section.","dokan-kits")})},En=({tabId:e,structure:a,settings:r,validationErrors:s={},onSettingChange:n,className:o="",emptyMessage:d=null})=>a?a.sections&&Object.keys(a.sections).length>0?(0,Ar.jsx)("div",{className:zr(`dokan-kits-tab-content dokan-kits-tab-${e}`,o,"dk-mt-1"),children:Object.keys(a.sections).map(o=>{const d=a.sections[o],i=Object.keys(s).some(t=>t.startsWith(`${e}.${o}.`)||Object.values(d.fields).some(e=>e.dependency_key&&s[e.dependency_key]));return(0,Ar.jsxs)(t.Card,{className:zr("dokan-kits-settings-section dk-mb-wp-6 last:dk-mb-0",{"dk-border-red-300":i}),children:[(0,Ar.jsxs)(t.CardHeader,{className:"dk-block dk-p-4 dk-bg-white dk-border-b dk-border-gray-200",children:[(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-2",children:[(0,Ar.jsx)("h3",{className:"dk-text-base dk-font-medium",children:(0,fn.decodeEntities)(d.title)}),d.badge&&(0,Ar.jsx)("span",{className:"dk-text-xs dk-px-2 dk-py-0.5 dk-rounded-full dk-font-medium "+("primary"===d.badge.type?"dk-bg-blue-100 dk-text-blue-800":"success"===d.badge.type?"dk-bg-green-100 dk-text-green-800":"warning"===d.badge.type?"dk-bg-yellow-100 dk-text-yellow-800":"danger"===d.badge.type?"dk-bg-red-100 dk-text-red-800":"info"===d.badge.type?"dk-bg-indigo-100 dk-text-indigo-800":"dk-bg-gray-100 dk-text-gray-800"),children:(0,fn.decodeEntities)(d.badge.text)})]}),d.description&&(0,Ar.jsx)("p",{className:"dk-text-sm dk-text-gray-600 dk-mt-1",children:(0,fn.decodeEntities)(d.description)})]}),(0,Ar.jsx)(t.CardBody,{children:(0,Ar.jsx)(Sn,{tabId:e,sectionId:o,fields:d.fields,settings:r,validationErrors:s,onSettingChange:n})})]},o)})}):(0,Ar.jsx)(t.Card,{className:"dk-bg-gray-50",children:(0,Ar.jsx)(t.CardBody,{children:(0,Ar.jsx)("p",{className:"dk-text-center dk-text-gray-500",children:d||(0,ka.__)("No features available for this tab.","dokan-kits")})})}):(0,Ar.jsx)(t.Card,{className:"dk-bg-gray-50",children:(0,Ar.jsx)(t.CardBody,{children:(0,Ar.jsx)("p",{className:"dk-text-center dk-text-gray-500",children:(0,ka.__)("Tab structure not found.","dokan-kits")})})}),Rn=()=>{const e=({className:e})=>(0,Ar.jsx)("div",{className:`dk-animate-pulse dk-bg-gray-200 dk-rounded ${e}`}),a=()=>(0,Ar.jsx)("div",{className:"dk-flex dk-border-b dk-border-gray-200 dk-mb-wp-4",children:(0,Ar.jsx)("div",{className:"dk-flex dk-overflow-x-auto dk-no-scrollbar",children:Array(3).fill().map((t,a)=>(0,Ar.jsx)("div",{className:"dk-pb-wp-3 dk-px-wp-4 dk-whitespace-nowrap "+(0===a?"dk-border-b-2 dk-border-primary-500":""),children:(0,Ar.jsx)(e,{className:"dk-h-6 dk-w-32"})},a))})}),r=()=>(0,Ar.jsx)("div",{className:"dk-border-b dk-border-gray-200 dk-py-wp-4",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-flex-col md:dk-flex-row dk-items-start md:dk-items-center dk-justify-between",children:[(0,Ar.jsxs)("div",{className:"dk-flex-grow",children:[(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-wp-3",children:[(0,Ar.jsx)(e,{className:"dk-h-6 dk-w-40 dk-mb-wp-1"}),(0,Ar.jsx)(e,{className:"dk-h-5 dk-w-16 dk-rounded-full"})]}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-max-w-2xl dk-mt-wp-1"})]}),(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-wp-2 dk-mt-wp-2 md:dk-mt-0",children:[(0,Ar.jsx)(e,{className:"dk-h-6 dk-w-12 dk-rounded-full"}),(0,Ar.jsx)(e,{className:"dk-h-8 dk-w-8 dk-rounded-full"})]})]})}),s=()=>(0,Ar.jsxs)(t.Card,{className:"dk-mt-wp-4",children:[(0,Ar.jsx)(t.CardHeader,{children:(0,Ar.jsx)(e,{className:"dk-h-7 dk-w-64"})}),(0,Ar.jsxs)(t.CardBody,{children:[(0,Ar.jsx)("div",{className:"dk-space-y-wp-6",children:Array(3).fill().map((t,a)=>(0,Ar.jsxs)("div",{className:"dk-space-y-wp-4",children:[(0,Ar.jsx)(e,{className:"dk-h-6 dk-w-48"}),Array(2).fill().map((t,a)=>(0,Ar.jsxs)("div",{className:"dk-mb-wp-4",children:[(0,Ar.jsx)(e,{className:"dk-h-5 dk-w-40 dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-h-10 dk-w-full dk-rounded"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-3/4 dk-mt-wp-1"})]},a))]},a))}),(0,Ar.jsxs)("div",{className:"dk-flex dk-justify-end dk-gap-wp-2 dk-mt-wp-6 dk-pt-wp-4 dk-border-t dk-border-gray-200",children:[(0,Ar.jsx)(e,{className:"dk-h-10 dk-w-24 dk-rounded"}),(0,Ar.jsx)(e,{className:"dk-h-10 dk-w-24 dk-rounded"})]})]})]}),n=()=>(0,Ar.jsxs)("div",{className:"dk-mb-wp-6",children:[(0,Ar.jsx)(t.Card,{className:"dk-mb-wp-6",children:(0,Ar.jsx)(t.CardBody,{children:(0,Ar.jsxs)("div",{className:"dk-flex dk-flex-col md:dk-flex-row dk-items-start md:dk-items-center dk-justify-between dk-gap-wp-4",children:[(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)(e,{className:"dk-h-7 dk-w-64 dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-max-w-2xl"})]}),(0,Ar.jsxs)("div",{className:"dk-flex dk-gap-wp-2",children:[(0,Ar.jsx)(e,{className:"dk-h-10 dk-w-32 dk-rounded"}),(0,Ar.jsx)(e,{className:"dk-h-10 dk-w-32 dk-rounded"})]})]})})}),(0,Ar.jsx)("div",{className:"dk-mb-wp-6",children:(0,Ar.jsx)(t.Card,{children:(0,Ar.jsx)(t.CardBody,{children:Array(5).fill().map((e,t)=>(0,Ar.jsx)(r,{},t))})})}),(0,Ar.jsx)(s,{})]});return(0,Ar.jsxs)("div",{className:"dokan-kits-features-page dk-p-6",children:[(0,Ar.jsx)("div",{className:"dk-mb-wp-6",children:(0,Ar.jsx)(e,{className:"dk-h-12 dk-w-full dk-rounded"})}),(0,Ar.jsx)(a,{}),(0,Ar.jsx)(n,{})]})},Dn=e=>{let t=void 0!==e.value?e.value:void 0!==e.default?e.default:"";t=((e,t,a="",r=null)=>{if(null==e&&(e=a),["toggle","checkbox"].includes(t))return Boolean(!0===e||"true"===e||"1"===e||1===e);if("number"===t){if(""===e||null==e)return"";const t=parseFloat(e);if(!isNaN(t))return t;if(""!==a&&null!=a){const e=parseFloat(a);return isNaN(e)?"":e}return""}return"multi-select"!==t||Array.isArray(e)?"card-select"===t?r&&r.multiple?Array.isArray(e)?e:e?[e]:[]:Array.isArray(e)?e.length>0?e[0]:"":e||"":e:e?[e]:[]})(t,e.variant,e.default);const a=[];return e.dependencies&&Array.isArray(e.dependencies)&&e.dependencies.forEach(e=>{const t=(e=>{if(!e||!e.key)return null;const t={...e};return t.comparison||(t.comparison="="),"string"==typeof t.value&&("true"===t.value?t.value=!0:"false"===t.value?t.value=!1:isNaN(Number(t.value))||[">","<",">=","<="].includes(t.comparison)&&(t.value=Number(t.value))),t})(e);t&&a.push(t)}),{id:e.id,title:e.title||"",description:e.description||"",variant:e.variant||"text",value:t,default:e.default||"",placeholder:e.placeholder||"",readonly:e.readonly||!1,disabled:e.disabled||!1,dependencies:a,dependency_key:e.dependency_key||"",required:e.required||!1,options:e.options||[],minimum:e.minimum,maximum:e.maximum,step:e.step,size:e.size}},Mn=(e,t,a)=>{if(!e||!t)return e;const r={...e},s=((e,t)=>{if(!e||!t)return null;for(const a in e){const r=e[a];for(const e in r.sections){const s=r.sections[e];for(const r in s.fields){const n=s.fields[r];if((n.dependency_key||`${a}.${e}.${r}`)===t)return{field:n,path:{tabId:a,sectionId:e,fieldId:r}}}}}return null})(r,t);if(s){const{path:e}=s;r[e.tabId].sections[e.sectionId].fields[e.fieldId]={...r[e.tabId].sections[e.sectionId].fields[e.fieldId],value:a}}return r},Tn=(e=null,t=()=>{})=>{const[a,r]=(0,s.useState)({}),[n,o]=(0,s.useState)({}),[d,i]=(0,s.useState)(!0),l=(0,s.useCallback)((e,a)=>{o(t=>({...t,[e]:a})),"function"==typeof t&&t(e,a),r(t=>Mn(t,e,a))},[t]),c=(0,s.useCallback)(e=>{e&&"object"==typeof e&&(o(t=>({...t,...e})),"function"==typeof t&&Object.entries(e).forEach(([e,a])=>{t(e,a)}),r(t=>((e,t)=>{if(!e||!t||"object"!=typeof t)return e;let a={...e};return Object.entries(t).forEach(([e,t])=>{a=Mn(a,e,t)}),a})(t,e)))},[t]);return(0,s.useEffect)(()=>{(()=>{if(void 0===window.Dokan_Kits)return void i(!1);const t=(e=>{const t={};if(!e?.children?.length)return console.warn("Invalid structure data: missing children"),t;try{e.children.forEach(e=>{e.id&&"section"===e.type&&e.display&&(t[e.id]={id:e.id,title:e.title||"",icon:e.icon||"",description:e.description||"",sections:{}},e.children?.length&&e.children.forEach(a=>{a.id&&"subsection"===a.type&&a.display&&(t[e.id].sections[a.id]={id:a.id,title:a.title||"",description:a.description||"",badge:a.badge||null,fields:{}},a.children?.length&&a.children.forEach(r=>{r.id&&"field"===r.type&&r.display&&(t[e.id].sections[a.id].fields[r.id]=Dn(r))}))}))})}catch(e){console.error("Error parsing structure:",e)}return t})(window.Dokan_Kits.features||{});r(t);const a=yn(t);if(e&&Object.keys(e).length>0){const a=((e,t)=>{const a=yn(e);if(!t||!t.data)return a;const r={...a},s=t.data;for(const t in e){const a=e[t];if(!s[t])continue;const n=s[t];for(const e in a.sections){const s=a.sections[e];for(const a in s.fields){if(!n[e])continue;const o=s.fields[a],d=o.dependency_key||`${t}.${e}.${a}`;if(!n[e][a])continue;let i=n[e][a];if(["toggle","checkbox"].includes(o.variant))i=Boolean(!0===i||"true"===i||"1"===i||1===i);else if("number"===o.variant&&""!==i){const e=parseFloat(i);isNaN(e)||(i=e)}else"multi-select"!==o.variant||Array.isArray(i)?"card-select"===o.variant&&(o.multiple?Array.isArray(i)||(i=i?[i]:[]):Array.isArray(i)&&(i=i.length>0?i[0]:"")):i=i?[i]:[];r[d]=i}}}return r})(t,{data:e});o(a)}else o(a);i(!1)})()},[e]),{structure:a,settings:n,isLoading:d,updateSetting:l,updateSettings:c}},Pn={duration:5e3,position:"top-right",style:{background:"transparent",boxShadow:"none",padding:0}},Ln=(e,t,a=Fs,r={})=>{const s={...Pn,...r,id:e};let n=s.duration||5e3;return a===Bs&&(n=s.duration||8e3),As.custom(e=>(0,Ar.jsx)(Os,{t:e,message:t,type:a,onClose:()=>As.dismiss(e.id)}),{...s,duration:n})},zn={},An=({tab:e,structure:t,settings:a,validationErrors:r,onSettingChange:s})=>{const n=e.name;if(zn[n]){const e=zn[n];return(0,Ar.jsx)(e,{structure:t[n],settings:a,validationErrors:r,onSettingChange:s})}return(0,Ar.jsx)(En,{tabId:n,structure:t[n],settings:a,validationErrors:r,onSettingChange:s})},$n=()=>{const{addNotice:e,clearNotices:a}=Hs(),[r,n]=(0,s.useState)(null),[o,d]=(0,s.useState)(!0),[i,l]=(0,s.useState)({});(0,s.useEffect)(()=>{(async()=>{try{const e=await on()({path:"/dokan-kits/v1/settings"});e.data&&e.data.settings&&n(e.data.settings),d(!1)}catch(t){e(t.message||(0,ka.__)("Failed to load settings. Please refresh the page.","dokan-kits"),Bs),d(!1)}})()},[e]);const c=(0,s.useCallback)((e,t)=>{l(a=>({...a,[e]:t}))},[]),u=(0,s.useCallback)(async()=>{try{const e=await on()({path:"/dokan-kits/v1/settings",method:"POST",data:{settings:i}});if(e.success)return e;throw new Error(e.message||(0,ka.__)("Failed to save settings","dokan-kits"))}catch(e){throw e}},[i]),{structure:k,settings:m,isLoading:h,updateSetting:p}=Tn(r,c),{isSaving:f,validationErrors:x,saveForm:g}=((e,t,a)=>{const[r,n]=(0,s.useState)(t||{}),[o,d]=(0,s.useState)(!1),[i,l]=(0,s.useState)(null),[c,u]=(0,s.useState)(!1),[k,m]=(0,s.useState)({}),h=(0,s.useCallback)((e,t)=>{n(a=>({...a,[e]:t}))},[]),p=(0,s.useCallback)(e=>{e&&"object"==typeof e&&n(t=>({...t,...e}))},[]),f=(0,s.useCallback)(()=>{n(t||{}),m({}),l(null),u(!1)},[t]),x=(0,s.useCallback)(()=>{l(null),u(!1)},[]),g=(0,s.useCallback)(()=>{if(!e)return!0;const{isValid:t,errors:a}=bn(e,r);return m(a),t||(l((0,ka.__)("Please fix the validation errors before saving.","dokan-kits")),u(!0)),t},[e,r]),b=(0,s.useCallback)(async()=>{if(!g())return!1;m({}),d(!0),l(null),u(!1);try{const e=await a(r);return d(!1),l(e.message),u(!e.success),setTimeout(()=>{l(null)},3e3),e.success}catch(e){return d(!1),l((0,ka.__)("Failed to save form data.","dokan-kits")),u(!0),!1}},[g,a,r]);return{values:r,isSaving:o,message:i,isError:c,validationErrors:k,updateValue:h,updateValues:p,saveForm:b,resetForm:f,clearNotifications:x,validateForm:g}})(k,m,u),b=(0,s.useCallback)(async()=>{if(a(),Object.keys(x).length>0)return e((0,ka.__)("Please fix the validation errors before saving.","dokan-kits"),Bs,{duration:8e3}),Object.values(x).forEach((t,a)=>{setTimeout(()=>{e(t,Bs,{duration:6e3})},500*(a+1))}),!1;const t=((e,t={})=>As.custom(t=>(0,Ar.jsx)(Os,{t,message:e,type:"info",onClose:()=>As.dismiss(t.id),showCloseButton:!1}),{...Pn,duration:1/0,...t,id:t.id||`loading-${Date.now()}`}))((0,ka.__)("Saving your changes…","dokan-kits"));try{const e=await g();return e?Ln(t,(0,ka.__)("Settings saved successfully!","dokan-kits"),Fs):Ln(t,(0,ka.__)("Failed to save settings. Please try again.","dokan-kits"),Bs),e}catch(e){return Ln(t,e.message||(0,ka.__)("An unexpected error occurred while saving.","dokan-kits"),Bs),!1}},[e,a,x,g]);if(h||o)return(0,Ar.jsx)(Rn,{});const y=Object.keys(k).map(e=>({name:e,title:(0,fn.decodeEntities)(k[e].title),className:`dokan-kits-tab-${e}`}));return(0,Ar.jsx)("div",{className:"dk-max-w-full dk-mx-auto dk-py-wp-5",children:(0,Ar.jsxs)(t.Card,{className:"dk-shadow-sm",children:[(0,Ar.jsx)(t.CardHeader,{className:"dk-border-b dk-border-gray-200",children:(0,Ar.jsx)("h2",{className:"dk-text-xl dk-font-semibold dk-m-0",children:(0,ka.__)("Manage Features","dokan-kits")})}),(0,Ar.jsx)(t.CardBody,{children:(0,Ar.jsx)(t.TabPanel,{activeClass:"dk-text-primary-600 dk-border dk-border-solid dk-border-b-2 dk-border-primary-500 dk-bg-gray-50",tabs:y,children:e=>(0,Ar.jsx)(An,{tab:e,structure:k,settings:m,validationErrors:x,onSettingChange:p})})}),(0,Ar.jsx)(t.CardFooter,{className:"dk-sticky dk-bottom-0 dk-border-t dk-border-gray-200 dk-bg-gray-50",children:(0,Ar.jsx)(t.Button,{variant:"primary",isBusy:f,onClick:b,disabled:h||f,className:"dk-w-full dk-justify-center hover:!dk-bg-primary-800 focus-visible:!dk-bg-primary-800 focus:!dk-ring-primary-800",children:f?(0,ka.__)("Saving Changes…","dokan-kits"):(0,ka.__)("Save Changes","dokan-kits")})})]})})},On=({className:e})=>(0,Ar.jsxs)("div",{className:zr("dk-min-h-[400px] dk-flex dk-flex-col dk-items-center dk-justify-center dk-p-wp-8 dk-text-center",e),children:[(0,Ar.jsx)("div",{className:"dk-flex dk-justify-center dk-mb-wp-6",children:(0,Ar.jsxs)("div",{className:"dk-inline-flex dk-flex-col dk-items-center dk-justify-center",children:[(0,Ar.jsx)("div",{className:"dk-text-8xl dk-font-bold dk-text-primary-200 dk-mb-wp-4",children:"404"}),(0,Ar.jsx)("div",{className:"dk-inline-flex dk-items-center dk-justify-center dk-w-20 dk-h-20 dk-rounded-full dk-bg-blue-100 dk-border-4 dk-border-blue-200 dk-shadow-inner",children:(0,Ar.jsx)("span",{className:"dashicons dashicons-marker dk-text-4xl dk-text-blue-600"})})]})}),(0,Ar.jsx)("h1",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-3",children:(0,ka.__)("Page Not Found","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-max-w-lg dk-text-gray-600 dk-mb-wp-6",children:[(0,Ar.jsx)("p",{className:"dk-mb-wp-3",children:(0,ka.__)("We couldn't find the page you're looking for.","dokan-kits")}),(0,Ar.jsx)("p",{children:(0,ka.__)("It might have been moved, deleted, or perhaps you entered an incorrect URL.","dokan-kits")})]}),(0,Ar.jsxs)("div",{className:"dk-flex dk-flex-col md:dk-flex-row dk-items-center dk-space-y-wp-4 md:dk-space-y-0 md:dk-space-x-wp-4",children:[(0,Ar.jsxs)(na,{to:"/",className:zr("dk-admin-button dk-bg-primary-600 hover:dk-bg-primary-700 dk-text-white dk-shadow-md hover:dk-shadow-lg dk-transition dk-duration-200 dk-flex dk-items-center"),children:[(0,Ar.jsx)("span",{className:"dashicons dashicons-dashboard dk-mr-wp-2"}),(0,ka.__)("Go to Dashboard","dokan-kits")]}),(0,Ar.jsxs)(na,{to:"/features",className:zr("dk-admin-button dk-admin-button-secondary dk-shadow-md hover:dk-shadow-lg dk-transition dk-duration-200 dk-flex dk-items-center"),children:[(0,Ar.jsx)("span",{className:"dashicons dashicons-admin-settings dk-mr-wp-2"}),(0,ka.__)("Go to Features","dokan-kits")]})]}),(0,Ar.jsx)("div",{className:"dk-mt-wp-8 dk-pt-wp-6 dk-border-t dk-border-gray-200 dk-max-w-md",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-justify-center dk-space-x-wp-6",children:[(0,Ar.jsxs)("a",{href:"https://wordpress.org/support/plugin/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:zr("dk-text-primary-600 hover:dk-text-primary-800 dk-flex dk-flex-col dk-items-center"),children:[(0,Ar.jsx)("span",{className:"dashicons dashicons-sos dk-text-xl dk-mb-wp-1"}),(0,Ar.jsx)("span",{className:"dk-text-sm",children:(0,ka.__)("Support","dokan-kits")})]}),(0,Ar.jsxs)("a",{href:"https://wordpress.org/plugins/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:zr("dk-text-primary-600 hover:dk-text-primary-800 dk-flex dk-flex-col dk-items-center"),children:[(0,Ar.jsx)("span",{className:"dashicons dashicons-book dk-text-xl dk-mb-wp-1"}),(0,Ar.jsx)("span",{className:"dk-text-sm",children:(0,ka.__)("Documentation","dokan-kits")})]}),(0,Ar.jsxs)("a",{href:"https://wordpress.org/plugins/dokan-kits/#developers",target:"_blank",rel:"noopener noreferrer",className:zr("dk-text-primary-600 hover:dk-text-primary-800 dk-flex dk-flex-col dk-items-center"),children:[(0,Ar.jsx)("span",{className:"dashicons dashicons-admin-plugins dk-text-xl dk-mb-wp-1"}),(0,Ar.jsx)("span",{className:"dk-text-sm",children:(0,ka.__)("Plugin Info","dokan-kits")})]})]})})]}),Fn=(()=>{const{base:e="",variants:t={},defaults:a={}}={base:"dk-inline-flex dk-items-center dk-rounded-full dk-font-medium",variants:{variant:{default:"dk-bg-primary-100 dk-text-primary-800",secondary:"dk-bg-gray-100 dk-text-gray-800",success:"dk-bg-green-100 dk-text-green-800",danger:"dk-bg-red-100 dk-text-red-800",warning:"dk-bg-yellow-100 dk-text-yellow-800",info:"dk-bg-blue-100 dk-text-blue-800",outline:"dk-bg-transparent dk-border dk-border-gray-200 dk-text-gray-800"},size:{default:"dk-px-wp-2 dk-py-wp-1 dk-text-xs",sm:"dk-px-wp-1.5 dk-py-wp-0.5 dk-text-xs",lg:"dk-px-wp-3 dk-py-wp-1.5 dk-text-sm"}},defaults:{variant:"default",size:"default"}};return(r={})=>{const s=Object.entries(t).reduce((e,[t,s])=>{const n=r[t]||a[t];return n&&s[n]&&e.push(s[n]),e},[]);return zr(e,...s,r.className||"")}})(),Bn=(0,s.forwardRef)(({variant:e="default",size:t="default",children:a,className:r,...s},n)=>(0,Ar.jsx)("span",{className:Fn({variant:e,size:t,className:r}),ref:n,...s,children:a})),In={default:"dk-bg-primary-600 dk-text-white hover:dk-bg-primary-700 dk-border dk-border-primary-600",destructive:"dk-bg-red-600 dk-text-white hover:dk-bg-red-700 dk-border dk-border-red-600",outline:"dk-bg-transparent dk-text-gray-700 hover:dk-bg-gray-100 dk-border dk-border-gray-300",secondary:"dk-bg-gray-100 dk-text-gray-700 hover:dk-bg-gray-200 dk-border dk-border-gray-200",ghost:"dk-bg-transparent dk-text-gray-700 hover:dk-bg-gray-100 dk-border dk-border-transparent",link:"dk-bg-transparent dk-text-primary-600 hover:dk-underline dk-border-none dk-p-0"},Un={default:"dk-h-9 dk-px-4 dk-py-2",sm:"dk-h-8 dk-px-3 dk-text-sm",lg:"dk-h-10 dk-px-8",icon:"dk-h-9 dk-w-9"},Hn=(0,s.forwardRef)(({variant:e="default",size:t="default",isLoading:a=!1,disabled:r=!1,className:s,children:n,...o},d)=>(0,Ar.jsxs)("button",{className:zr("dk-inline-flex dk-items-center dk-justify-center dk-rounded-md dk-font-medium dk-transition-colors dk-focus-visible:dk-outline-none dk-focus-visible:dk-ring-2 dk-focus-visible:dk-ring-primary-500 dk-focus-visible:dk-ring-offset-2 disabled:dk-opacity-50 disabled:dk-pointer-events-none",In[e],Un[t],a&&"dk-opacity-70 dk-cursor-wait",s),disabled:r||a,ref:d,...o,children:[a&&(0,Ar.jsx)(Or,{className:"dk-mr-2 dk-h-4 dk-w-4 dk-animate-spin"}),n]})),Vn={default:"dk-bg-white dk-border dk-border-gray-200 dk-rounded-lg dk-shadow-sm",flat:"dk-bg-white dk-border dk-border-gray-200 dk-rounded-lg",elevated:"dk-bg-white dk-border dk-border-gray-200 dk-rounded-lg dk-shadow-md",outline:"dk-bg-transparent dk-border dk-border-gray-200 dk-rounded-lg"},qn=(0,s.forwardRef)(({variant:e="default",children:t,className:a,header:r,footer:s,...n},o)=>(0,Ar.jsxs)("div",{className:zr(Vn[e]||Vn.default,a),ref:o,...n,children:[r&&(0,Ar.jsx)("div",{className:"dk-border-b dk-border-gray-200 dk-p-wp-4",children:r}),(0,Ar.jsx)("div",{className:"dk-p-wp-4",children:t}),s&&(0,Ar.jsx)("div",{className:"dk-border-t dk-border-gray-200 dk-p-wp-4",children:s})]})),Wn=(0,s.forwardRef)(({children:e,className:t,...a},r)=>(0,Ar.jsx)("div",{className:zr("dk-flex dk-flex-col dk-space-y-wp-1.5",t),ref:r,...a,children:e})),Kn=(0,s.forwardRef)(({children:e,className:t,...a},r)=>(0,Ar.jsx)("h3",{className:zr("dk-text-lg dk-font-medium dk-text-gray-900",t),ref:r,...a,children:e})),Gn=(0,s.forwardRef)(({children:e,className:t,...a},r)=>(0,Ar.jsx)("p",{className:zr("dk-text-sm dk-text-gray-500",t),ref:r,...a,children:e})),Yn=(0,s.forwardRef)(({children:e,className:t,...a},r)=>(0,Ar.jsx)("div",{className:zr("dk-py-wp-2",t),ref:r,...a,children:e})),Jn=(0,s.forwardRef)(({children:e,className:t,...a},r)=>(0,Ar.jsx)("div",{className:zr("dk-flex dk-items-center dk-justify-end dk-space-x-wp-2",t),ref:r,...a,children:e})),Zn=()=>{const[e,a]=(0,s.useState)(!1),r=()=>{a(!0),setTimeout(()=>{a(!1)},2e3)};return(0,Ar.jsxs)("div",{className:"dk-p-wp-4",children:[(0,Ar.jsx)("h1",{className:"dk-text-2xl dk-font-bold dk-mb-wp-6",children:(0,ka.__)("Tailwind Merge Demo","dokan-kits")}),(0,Ar.jsxs)("div",{className:zr("dk-bg-white","dk-border dk-border-gray-200","dk-shadow-md","dk-rounded-lg","dk-mb-wp-8 dk-p-wp-4"),children:[(0,Ar.jsx)(t.CardHeader,{children:(0,Ar.jsx)("h2",{className:"dk-text-lg dk-font-medium",children:(0,ka.__)("Button Variants with Tailwind Merge","dokan-kits")})}),(0,Ar.jsxs)(t.CardBody,{children:[(0,Ar.jsxs)("div",{className:"dk-flex dk-flex-wrap dk-gap-wp-4",children:[(0,Ar.jsx)(Hn,{onClick:r,isLoading:e,children:(0,ka.__)("Default Button","dokan-kits")}),(0,Ar.jsx)(Hn,{variant:"destructive",onClick:r,isLoading:e,children:(0,ka.__)("Destructive","dokan-kits")}),(0,Ar.jsx)(Hn,{variant:"outline",onClick:r,isLoading:e,children:(0,ka.__)("Outline","dokan-kits")}),(0,Ar.jsx)(Hn,{variant:"secondary",onClick:r,isLoading:e,children:(0,ka.__)("Secondary","dokan-kits")}),(0,Ar.jsx)(Hn,{variant:"ghost",onClick:r,isLoading:e,children:(0,ka.__)("Ghost","dokan-kits")}),(0,Ar.jsx)(Hn,{variant:"link",onClick:r,isLoading:e,children:(0,ka.__)("Link","dokan-kits")})]}),(0,Ar.jsxs)("div",{className:"dk-mt-wp-8",children:[(0,Ar.jsx)("h3",{className:"dk-text-md dk-font-medium dk-mb-wp-4",children:(0,ka.__)("Button Sizes","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-wp-4",children:[(0,Ar.jsx)(Hn,{size:"sm",children:(0,ka.__)("Small","dokan-kits")}),(0,Ar.jsx)(Hn,{children:(0,ka.__)("Default","dokan-kits")}),(0,Ar.jsx)(Hn,{size:"lg",children:(0,ka.__)("Large","dokan-kits")})]})]}),(0,Ar.jsxs)("div",{className:"dk-mt-wp-8",children:[(0,Ar.jsx)("h3",{className:"dk-text-md dk-font-medium dk-mb-wp-4",children:(0,ka.__)("Class Overrides with Tailwind Merge","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-flex dk-gap-wp-4",children:[(0,Ar.jsx)(Hn,{className:"dk-bg-purple-600 dk-border-purple-600 hover:dk-bg-purple-700",children:(0,ka.__)("Custom Purple","dokan-kits")}),(0,Ar.jsx)(Hn,{variant:"outline",className:"dk-text-amber-600 dk-border-amber-300 hover:dk-bg-amber-50",children:(0,ka.__)("Custom Amber","dokan-kits")})]})]})]})]}),(0,Ar.jsxs)("div",{className:"dk-mb-wp-8",children:[(0,Ar.jsx)(t.CardHeader,{children:(0,Ar.jsx)("h2",{className:"dk-text-lg dk-font-medium",children:(0,ka.__)("Dynamic Class Composition","dokan-kits")})}),(0,Ar.jsxs)(t.CardBody,{children:[(0,Ar.jsx)("div",{className:zr("dk-p-wp-4","dk-border","dk-rounded-md","dk-bg-gray-50","dk-border-gray-200"),children:(0,Ar.jsx)("p",{className:"dk-text-gray-700",children:(0,ka.__)("This box uses tailwind-merge to combine multiple class strings.","dokan-kits")})}),(0,Ar.jsx)("div",{className:"dk-mt-wp-4",children:(0,Ar.jsx)("div",{className:zr("dk-p-wp-4","dk-border","dk-rounded-md","dk-bg-blue-50","dk-bg-green-50","dk-border-green-200"),children:(0,Ar.jsx)("p",{className:"dk-text-green-700",children:(0,ka.__)("This box demonstrates class conflicts being resolved (bg-blue-50 is overridden by bg-green-50).","dokan-kits")})})})]})]}),(0,Ar.jsx)("h2",{className:"dk-text-xl dk-font-bold dk-mb-wp-4 dk-mt-wp-8",children:(0,ka.__)("Custom Card Component","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6 dk-mb-wp-8",children:[(0,Ar.jsxs)(qn,{children:[(0,Ar.jsxs)(Wn,{children:[(0,Ar.jsx)(Kn,{children:(0,ka.__)("Default Card","dokan-kits")}),(0,Ar.jsx)(Gn,{children:(0,ka.__)("This is a default card with header and content.","dokan-kits")})]}),(0,Ar.jsx)(Yn,{children:(0,Ar.jsx)("p",{className:"dk-text-gray-700",children:(0,ka.__)("Card content goes here. This card uses the default styling.","dokan-kits")})}),(0,Ar.jsx)(Jn,{children:(0,Ar.jsx)(Hn,{size:"sm",children:(0,ka.__)("Action","dokan-kits")})})]}),(0,Ar.jsxs)(qn,{variant:"elevated",className:"dk-border-primary-100",children:[(0,Ar.jsxs)(Wn,{children:[(0,Ar.jsx)(Kn,{className:"dk-text-primary-700",children:(0,ka.__)("Elevated Card","dokan-kits")}),(0,Ar.jsx)(Gn,{children:(0,ka.__)("This card has elevated styling with custom classes.","dokan-kits")})]}),(0,Ar.jsx)(Yn,{children:(0,Ar.jsx)("p",{className:"dk-text-gray-700",children:(0,ka.__)("This card demonstrates how to override styles with tailwind-merge.","dokan-kits")})}),(0,Ar.jsxs)(Jn,{children:[(0,Ar.jsx)(Hn,{size:"sm",variant:"outline",children:(0,ka.__)("Cancel","dokan-kits")}),(0,Ar.jsx)(Hn,{size:"sm",children:(0,ka.__)("Save","dokan-kits")})]})]}),(0,Ar.jsxs)(qn,{variant:"outline",className:"dk-border-dashed",children:[(0,Ar.jsxs)(Wn,{children:[(0,Ar.jsx)(Kn,{children:(0,ka.__)("Outline Card","dokan-kits")}),(0,Ar.jsx)(Gn,{children:(0,ka.__)("This card has outline styling with dashed border.","dokan-kits")})]}),(0,Ar.jsx)(Yn,{children:(0,Ar.jsx)("p",{className:"dk-text-gray-700",children:(0,ka.__)("The outline variant can be combined with other classes.","dokan-kits")})})]}),(0,Ar.jsxs)(qn,{variant:"flat",className:"dk-bg-gray-50",children:[(0,Ar.jsxs)(Wn,{children:[(0,Ar.jsx)(Kn,{children:(0,ka.__)("Flat Card","dokan-kits")}),(0,Ar.jsx)(Gn,{children:(0,ka.__)("This card has flat styling with gray background.","dokan-kits")})]}),(0,Ar.jsx)(Yn,{children:(0,Ar.jsx)("p",{className:"dk-text-gray-700",children:(0,ka.__)("The flat variant has no shadow and can have custom background.","dokan-kits")})})]})]}),(0,Ar.jsx)("h2",{className:"dk-text-xl dk-font-bold dk-mb-wp-4 dk-mt-wp-8",children:(0,ka.__)("Badge Component","dokan-kits")}),(0,Ar.jsxs)(qn,{className:"dk-mb-wp-8",children:[(0,Ar.jsxs)(Wn,{children:[(0,Ar.jsx)(Kn,{children:(0,ka.__)("Badge Variants","dokan-kits")}),(0,Ar.jsx)(Gn,{children:(0,ka.__)("Different badge variants with tailwind-merge.","dokan-kits")})]}),(0,Ar.jsxs)(Yn,{children:[(0,Ar.jsxs)("div",{className:"dk-flex dk-flex-wrap dk-gap-wp-3",children:[(0,Ar.jsx)(Bn,{children:(0,ka.__)("Default","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"secondary",children:(0,ka.__)("Secondary","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"success",children:(0,ka.__)("Success","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"danger",children:(0,ka.__)("Danger","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"warning",children:(0,ka.__)("Warning","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"info",children:(0,ka.__)("Info","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"outline",children:(0,ka.__)("Outline","dokan-kits")})]}),(0,Ar.jsxs)("div",{className:"dk-mt-wp-6",children:[(0,Ar.jsx)("h3",{className:"dk-text-md dk-font-medium dk-mb-wp-3",children:(0,ka.__)("Badge Sizes","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-wp-4",children:[(0,Ar.jsx)(Bn,{size:"sm",children:(0,ka.__)("Small","dokan-kits")}),(0,Ar.jsx)(Bn,{children:(0,ka.__)("Default","dokan-kits")}),(0,Ar.jsx)(Bn,{size:"lg",children:(0,ka.__)("Large","dokan-kits")})]})]}),(0,Ar.jsxs)("div",{className:"dk-mt-wp-6",children:[(0,Ar.jsx)("h3",{className:"dk-text-md dk-font-medium dk-mb-wp-3",children:(0,ka.__)("Custom Badge Styles","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-wp-4",children:[(0,Ar.jsx)(Bn,{className:"dk-bg-purple-100 dk-text-purple-800",children:(0,ka.__)("Custom Purple","dokan-kits")}),(0,Ar.jsx)(Bn,{className:"dk-bg-gradient-to-r dk-from-blue-500 dk-to-purple-500 dk-text-white",children:(0,ka.__)("Gradient","dokan-kits")}),(0,Ar.jsx)(Bn,{className:"dk-border-2 dk-border-dashed dk-border-amber-500 dk-bg-amber-50 dk-text-amber-700",children:(0,ka.__)("Dashed Border","dokan-kits")})]})]})]})]}),(0,Ar.jsx)("h2",{className:"dk-text-xl dk-font-bold dk-mb-wp-4 dk-mt-wp-8",children:(0,ka.__)("BadgeCVA Component (with cva)","dokan-kits")}),(0,Ar.jsxs)(qn,{className:"dk-mb-wp-8",children:[(0,Ar.jsxs)(Wn,{children:[(0,Ar.jsx)(Kn,{children:(0,ka.__)("BadgeCVA Variants","dokan-kits")}),(0,Ar.jsx)(Gn,{children:(0,ka.__)("Badge component using the cva utility for variant handling.","dokan-kits")})]}),(0,Ar.jsxs)(Yn,{children:[(0,Ar.jsxs)("div",{className:"dk-flex dk-flex-wrap dk-gap-wp-3",children:[(0,Ar.jsx)(Bn,{children:(0,ka.__)("Default","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"secondary",children:(0,ka.__)("Secondary","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"success",children:(0,ka.__)("Success","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"danger",children:(0,ka.__)("Danger","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"warning",children:(0,ka.__)("Warning","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"info",children:(0,ka.__)("Info","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"outline",children:(0,ka.__)("Outline","dokan-kits")})]}),(0,Ar.jsxs)("div",{className:"dk-mt-wp-6",children:[(0,Ar.jsx)("h3",{className:"dk-text-md dk-font-medium dk-mb-wp-3",children:(0,ka.__)("BadgeCVA with Multiple Variants","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-wp-4",children:[(0,Ar.jsx)(Bn,{variant:"success",size:"sm",children:(0,ka.__)("Small Success","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"danger",children:(0,ka.__)("Default Danger","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"warning",size:"lg",children:(0,ka.__)("Large Warning","dokan-kits")})]})]}),(0,Ar.jsxs)("div",{className:"dk-mt-wp-6",children:[(0,Ar.jsx)("h3",{className:"dk-text-md dk-font-medium dk-mb-wp-3",children:(0,ka.__)("BadgeCVA with Custom Classes","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center dk-gap-wp-4",children:[(0,Ar.jsx)(Bn,{className:"dk-bg-purple-100 dk-text-purple-800",children:(0,ka.__)("Custom Purple","dokan-kits")}),(0,Ar.jsx)(Bn,{variant:"outline",className:"dk-border-dashed dk-border-blue-400 dk-text-blue-700",children:(0,ka.__)("Custom Outline","dokan-kits")}),(0,Ar.jsx)(Bn,{className:"dk-bg-gradient-to-r dk-from-pink-500 dk-to-purple-500 dk-text-white",children:(0,ka.__)("Gradient","dokan-kits")})]})]})]})]})]})},Xn=ga("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]),Qn=ga("chart-no-axes-column-increasing",[["line",{x1:"12",x2:"12",y1:"20",y2:"10",key:"1vz5eb"}],["line",{x1:"18",x2:"18",y1:"20",y2:"4",key:"cun8e5"}],["line",{x1:"6",x2:"6",y1:"20",y2:"16",key:"hq0ia6"}]]),eo=ga("file-text",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]),to=ga("ticket",[["path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"qn84l0"}],["path",{d:"M13 5v2",key:"dyzc3o"}],["path",{d:"M13 17v2",key:"1ont0d"}],["path",{d:"M13 11v2",key:"1wjjxi"}]]),ao=()=>{const e=({className:e})=>(0,Ar.jsx)("div",{className:`dk-animate-pulse dk-bg-gray-200 dk-rounded ${e}`}),a=()=>(0,Ar.jsxs)("div",{className:"dk-mb-wp-8 dk-text-center",children:[(0,Ar.jsx)(e,{className:"dk-mx-auto dk-h-10 dk-w-1/4 dk-mb-wp-3"}),(0,Ar.jsx)(e,{className:"dk-mx-auto dk-h-5 dk-w-2/3 dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-mx-auto dk-h-5 dk-w-1/2 dk-mb-wp-2"})]}),r=({cardCount:a=2})=>(0,Ar.jsxs)("div",{className:"dk-mb-wp-8",children:[(0,Ar.jsx)(e,{className:"dk-h-8 dk-w-1/4 dk-mb-wp-4"}),(0,Ar.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6",children:Array(a).fill().map((a,r)=>(0,Ar.jsxs)(t.Card,{className:"dk-flex-1 dk-flex dk-flex-col",children:[(0,Ar.jsx)(t.CardHeader,{children:(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center",children:[(0,Ar.jsx)(e,{className:"dk-h-6 dk-w-6 dk-mr-wp-2"}),(0,Ar.jsx)(e,{className:"dk-h-6 dk-w-2/3"})]})}),(0,Ar.jsxs)(t.CardBody,{children:[(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-3/4 dk-mb-wp-2"})]}),(0,Ar.jsx)(t.CardFooter,{className:"dk-bg-gray-50 dk-border-t dk-border-gray-200",children:(0,Ar.jsx)(e,{className:"dk-h-10 dk-w-36"})})]},r))})]}),s=()=>(0,Ar.jsx)("div",{className:"dk-mt-wp-10 dk-p-wp-6 dk-bg-gray-100 dk-rounded-lg dk-border dk-border-gray-200",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-items-start",children:[(0,Ar.jsx)(e,{className:"dk-h-8 dk-w-8 dk-mr-wp-4"}),(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)(e,{className:"dk-h-6 dk-w-1/4 dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-full dk-mb-wp-2"}),(0,Ar.jsx)(e,{className:"dk-h-4 dk-w-3/4 dk-mb-wp-3"}),(0,Ar.jsxs)("div",{className:"dk-flex dk-gap-wp-4",children:[(0,Ar.jsx)(e,{className:"dk-h-10 dk-w-32"}),(0,Ar.jsx)(e,{className:"dk-h-10 dk-w-40"})]})]})]})});return(0,Ar.jsxs)("div",{className:"dokan-kits-tools-page",children:[(0,Ar.jsx)(a,{}),(0,Ar.jsx)(r,{cardCount:2}),(0,Ar.jsx)(r,{cardCount:1}),(0,Ar.jsx)(r,{cardCount:1}),(0,Ar.jsx)(r,{cardCount:2}),(0,Ar.jsx)(s,{})]})},ro=()=>{const[e,a]=(0,s.useState)(!0),[r,n]=(0,s.useState)(null),[o,d]=(0,s.useState)(null),[i,l]=(0,s.useState)({}),[c,u]=(0,s.useState)(null),[k,m]=(0,s.useState)({recreateTables:!1,migrateSettings:!1,optimizeTables:!1,runDiagnostics:!1,downloadLogs:!1}),{addNotice:h}=Hs(),p=(0,s.useCallback)(async()=>{try{const e=await on()({path:"/dokan-kits/v1/tools/migration/status",method:"GET"});e.success&&n(e.data)}catch(e){}finally{a(!1)}},[]);(0,s.useEffect)(()=>{p()},[p]);const f=async(e,t,a=!1)=>{if(a||!["database/recreate","database/optimize"].includes(t)){m(t=>({...t,[e]:!0}));try{const a=await on()({path:`/dokan-kits/v1/tools/${t}`,method:"POST"});if(!a.success){const e=a.data||{};throw{message:a.message||(0,ka.__)("Failed to complete operation.","dokan-kits"),code:e.code||"unknown_error",status:e.status||400,data:e}}l(t=>({...t,[e]:{success:!0,message:a.message,data:a.data,timestamp:(new Date).toISOString()}})),"runDiagnostics"===e&&a.data&&u(a.data),h(a.message||(0,ka.__)("Operation completed successfully.","dokan-kits"),"success"),"migrate-settings"===t&&p()}catch(t){const a=t.message||(0,ka.__)("An unexpected error occurred.","dokan-kits"),r=t.code||"unknown_error",s=t.data||{};l(t=>({...t,[e]:{success:!1,message:a,code:r,data:s,timestamp:(new Date).toISOString()}})),h(a,"error")}finally{m(t=>({...t,[e]:!1}))}}else d({tool:e,action:t})},x=e=>{const t=i[e];if(!t)return null;const a=t.success,r=new Date(t.timestamp).toLocaleString();return(0,Ar.jsxs)("div",{className:"dk-mt-2 dk-p-3 dk-rounded dk-text-sm "+(a?"dk-bg-green-50 dk-text-green-700 dk-border dk-border-green-200":"dk-bg-red-50 dk-text-red-700 dk-border dk-border-red-200"),children:[(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center dk-justify-between dk-mb-2",children:[(0,Ar.jsx)("span",{className:"dk-font-medium",children:a?"✓ "+(0,ka.__)("Success","dokan-kits"):"✗ "+(0,ka.__)("Failed","dokan-kits")}),(0,Ar.jsx)("span",{className:"dk-text-xs dk-opacity-75",children:r})]}),!a&&t.code&&(0,Ar.jsxs)("div",{className:"dk-text-xs dk-mb-2 dk-text-red-600",children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("Error Code:","dokan-kits")})," ",t.code]}),t.message&&(0,Ar.jsxs)("div",{className:"dk-text-xs dk-mb-2",children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("Message:","dokan-kits")})," ",t.message]}),t.data&&t.data.tables&&(0,Ar.jsxs)("div",{className:"dk-text-xs dk-mb-1",children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("Tables affected:","dokan-kits")})," ",t.data.tables.length,t.data.tables.length>0&&(0,Ar.jsxs)("div",{className:"dk-mt-1 dk-text-xs dk-opacity-75",children:[t.data.tables.slice(0,3).join(", "),t.data.tables.length>3&&(0,ka.__)("and more…","dokan-kits")]})]}),t.data&&t.data.versions&&(0,Ar.jsxs)("div",{className:"dk-text-xs dk-mb-1",children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("Migrations executed:","dokan-kits")})," ",t.data.versions.length]}),t.data&&t.data.optimized&&(0,Ar.jsxs)("div",{className:"dk-text-xs dk-mb-1",children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("Tables optimized:","dokan-kits")})," ",t.data.optimized.length,t.data.failed&&t.data.failed.length>0&&(0,Ar.jsxs)("div",{className:"dk-text-red-600",children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("Failed:","dokan-kits")})," ",t.data.failed.length]})]}),t.data&&t.data.file_name&&(0,Ar.jsxs)("div",{className:"dk-text-xs dk-mb-1",children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("File:","dokan-kits")})," ",t.data.file_name," (",t.data.file_size,")"]}),!a&&t.data&&t.data.validation_errors&&(0,Ar.jsxs)("div",{className:"dk-text-xs dk-mt-2 dk-p-2 dk-bg-red-100 dk-rounded",children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("Validation Errors:","dokan-kits")}),(0,Ar.jsx)("ul",{className:"dk-list-disc dk-list-inside dk-mt-1",children:Object.entries(t.data.validation_errors).map(([e,t])=>(0,Ar.jsxs)("li",{children:[(0,Ar.jsxs)("strong",{children:[e,":"]})," ",t]},e))})]})]})};return e?(0,Ar.jsx)(ao,{}):(0,Ar.jsxs)("div",{className:"dokan-kits-tools-page",children:[o&&(0,Ar.jsx)(t.Modal,{title:(0,ka.__)("Confirm Database Operation","dokan-kits"),onRequestClose:()=>d(null),className:"dokan-kits-admin-page dokan-kits-admin-modal dokan-kits-tools-confirm-modal",children:(0,Ar.jsxs)("div",{className:"dk-modal-content",children:[(0,Ar.jsxs)("div",{className:"dk-modal-header",children:[(0,Ar.jsx)("h2",{className:"dk-modal-title",children:(0,ka.__)("Confirm Database Operation","dokan-kits")}),(0,Ar.jsx)("button",{type:"button",className:"dk-modal-close",onClick:()=>d(null),"aria-label":(0,ka.__)("Close modal","dokan-kits"),children:(0,Ar.jsx)(ya,{className:"dk-h-5 dk-w-5"})})]}),(0,Ar.jsxs)("div",{className:"dk-modal-body",children:[(0,Ar.jsx)("div",{className:"dk-modal-icon dk-bg-red-50 dk-text-red-500",children:(0,Ar.jsx)(ba,{className:"dk-h-6 dk-w-6"})}),(0,Ar.jsx)("p",{className:"dk-modal-description dk-text-red-700",children:(0,ka.__)("This action will modify your database structure. Please ensure you have a backup before proceeding.","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-form-field",children:[(0,Ar.jsx)("label",{htmlFor:"precautions-info",className:"dk-form-label",children:(0,ka.__)("Recommended precautions:","dokan-kits")}),(0,Ar.jsx)("input",{type:"hidden",id:"precautions-info"}),(0,Ar.jsx)("div",{className:"dk-p-wp-3 dk-bg-yellow-50 dk-rounded-md dk-border dk-border-yellow-200",children:(0,Ar.jsxs)("ul",{className:"dk-text-sm dk-text-yellow-700 dk-list-disc dk-list-inside dk-space-y-1",children:[(0,Ar.jsx)("li",{children:(0,ka.__)("Create a full database backup","dokan-kits")}),(0,Ar.jsx)("li",{children:(0,ka.__)("Ensure no other processes are accessing the database","dokan-kits")}),(0,Ar.jsx)("li",{children:(0,ka.__)("Run this operation during low-traffic periods","dokan-kits")}),(0,Ar.jsx)("li",{children:(0,ka.__)("Monitor your site after the operation completes","dokan-kits")})]})})]}),(0,Ar.jsxs)("div",{className:"dk-form-field",children:[(0,Ar.jsx)("label",{htmlFor:"operation-details",className:"dk-form-label",children:(0,ka.__)("Operation Details:","dokan-kits")}),(0,Ar.jsx)("input",{type:"hidden",id:"operation-details"}),(0,Ar.jsxs)("div",{className:"dk-p-wp-3 dk-bg-gray-50 dk-rounded-md dk-border dk-border-gray-200",children:[(0,Ar.jsxs)("p",{className:"dk-text-sm dk-text-gray-700",children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("Action:","dokan-kits")})," ",o.action.replace("-"," ").replace(/\b\w/g,e=>e.toUpperCase())]}),(0,Ar.jsxs)("p",{className:"dk-text-sm dk-text-gray-700 dk-mt-1",children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("Risk Level:","dokan-kits")}),(0,Ar.jsxs)("span",{className:"dk-text-red-600 dk-font-medium",children:[" ",(0,ka.__)("High - Database Structure Changes","dokan-kits")]})]})]})]})]}),(0,Ar.jsxs)("div",{className:"dk-modal-footer",children:[(0,Ar.jsx)(t.Button,{variant:"secondary",onClick:()=>d(null),className:"dk-admin-button dk-admin-button-secondary",children:(0,ka.__)("Cancel","dokan-kits")}),(0,Ar.jsx)(t.Button,{variant:"primary",onClick:()=>{if(o){const{tool:e,action:t}=o;d(null),f(e,t,!0)}},className:"dk-admin-button dk-admin-button-danger",children:(0,ka.__)("Yes, I understand the risks","dokan-kits")})]})]})}),(0,Ar.jsx)(t.Card,{className:"dk-mb-wp-6",children:(0,Ar.jsxs)(t.CardBody,{className:"dk-text-center dk-py-wp-8",children:[(0,Ar.jsx)("img",{src:qs,alt:"Dokan Kits",className:"dk-mx-auto dk-h-24 dk-w-auto dk-mb-wp-4"}),(0,Ar.jsx)("h1",{className:"dk-text-3xl dk-font-bold dk-text-gray-900 dk-mb-wp-3",children:(0,ka.__)("Tools & Utilities","dokan-kits")}),(0,Ar.jsx)("p",{className:"dk-max-w-2xl dk-mx-auto dk-text-lg dk-text-gray-600 dk-mb-wp-3",children:(0,ka.__)("Manage advanced Dokan Kits maintenance and migration tasks. Use these tools for troubleshooting, database management, and data migration.","dokan-kits")}),(0,Ar.jsx)("p",{className:"dk-max-w-2xl dk-mx-auto dk-text-base dk-text-gray-500",children:(0,ka.__)("These utilities help you maintain and optimize your Dokan Kits installation for better performance and reliability.","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-mt-wp-6 dk-flex dk-flex-wrap dk-justify-center dk-gap-wp-4",children:[(0,Ar.jsxs)("span",{className:"dk-inline-flex dk-items-center dk-px-wp-3 dk-py-wp-1 dk-rounded-full dk-text-sm dk-font-medium dk-bg-blue-100 dk-text-blue-800",children:[(0,Ar.jsx)(_a,{className:"dk-h-4 dk-w-4 dk-mr-wp-1"}),(0,ka.__)("Maintenance","dokan-kits")]}),(0,Ar.jsxs)("span",{className:"dk-inline-flex dk-items-center dk-px-wp-3 dk-py-wp-1 dk-rounded-full dk-text-sm dk-font-medium dk-bg-green-100 dk-text-green-800",children:[(0,Ar.jsx)(Xn,{className:"dk-h-4 dk-w-4 dk-mr-wp-1"}),(0,ka.__)("Database","dokan-kits")]}),(0,Ar.jsxs)("span",{className:"dk-inline-flex dk-items-center dk-px-wp-3 dk-py-wp-1 dk-rounded-full dk-text-sm dk-font-medium dk-bg-purple-100 dk-text-purple-800",children:[(0,Ar.jsx)(Qn,{className:"dk-h-4 dk-w-4 dk-mr-wp-1"}),(0,ka.__)("Optimization","dokan-kits")]})]})]})}),(()=>{if(!r)return null;const{needs_migration:e,is_running:a,migration_history:s}=r;return a?(0,Ar.jsxs)(t.Notice,{status:"warning",isDismissible:!1,className:"dk-mb-4",children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("Migration in Progress","dokan-kits")}),(0,Ar.jsx)("p",{children:(0,ka.__)("A migration is currently running. Please wait for it to complete before running other tools.","dokan-kits")})]}):e?(0,Ar.jsxs)(t.Notice,{status:"info",isDismissible:!1,className:"dk-mb-4",children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("Migration Required","dokan-kits")}),(0,Ar.jsx)("p",{children:(0,ka.__)("Your database needs to be migrated to the latest version. Please run the migration tool below.","dokan-kits")})]}):(0,Ar.jsxs)(t.Notice,{status:"success",isDismissible:!1,className:"dk-mb-4",children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("Up to Date","dokan-kits")}),(0,Ar.jsxs)("p",{children:[(0,ka.__)("All migrations are current.","dokan-kits"),s&&s.length>0&&(0,Ar.jsx)("span",{className:"dk-ml-2 dk-text-sm",children:(0,ka.__)("Last migration completed successfully.","dokan-kits")})]})]})})(),(0,Ar.jsxs)("div",{className:"dk-mb-wp-8",children:[(0,Ar.jsx)("h2",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-4",children:(0,ka.__)("Database Tools","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6",children:[(0,Ar.jsxs)(t.Card,{className:"dk-flex-1 dk-flex dk-flex-col dk-transition dk-duration-300 dk-ease-in-out hover:dk-shadow-md",children:[(0,Ar.jsx)(t.CardHeader,{children:(0,Ar.jsxs)("h3",{className:"dk-text-xl dk-font-semibold dk-text-gray-900 dk-flex dk-items-center",children:[(0,Ar.jsx)(Xn,{className:"dk-h-5 dk-w-5 dk-mr-wp-2 dk-text-primary-600"}),(0,ka.__)("Database Tables","dokan-kits")]})}),(0,Ar.jsxs)(t.CardBody,{children:[(0,Ar.jsx)("p",{className:"dk-text-gray-600 dk-mb-wp-4",children:(0,ka.__)("Recreate missing or corrupted database tables. This will create new tables and verify their structure without affecting existing data.","dokan-kits")}),x("recreateTables")]}),(0,Ar.jsx)(t.CardFooter,{className:"dk-bg-gray-50 dk-border-t dk-border-gray-200",children:(0,Ar.jsx)(t.Button,{variant:"primary",className:"dk-admin-button",isBusy:k.recreateTables,disabled:k.recreateTables,onClick:()=>f("recreateTables","database/recreate"),children:k.recreateTables?(0,ka.__)("Processing…","dokan-kits"):(0,ka.__)("Recreate Tables","dokan-kits")})})]}),(0,Ar.jsxs)(t.Card,{className:"dk-flex-1 dk-flex dk-flex-col dk-transition dk-duration-300 dk-ease-in-out hover:dk-shadow-md",children:[(0,Ar.jsx)(t.CardHeader,{children:(0,Ar.jsxs)("h3",{className:"dk-text-xl dk-font-semibold dk-text-gray-900 dk-flex dk-items-center",children:[(0,Ar.jsx)(Qn,{className:"dk-h-5 dk-w-5 dk-mr-wp-2 dk-text-primary-600"}),(0,ka.__)("Optimize Tables","dokan-kits")]})}),(0,Ar.jsxs)(t.CardBody,{children:[(0,Ar.jsx)("p",{className:"dk-text-gray-600 dk-mb-wp-4",children:(0,ka.__)("Repair and optimize database tables to improve performance and fix potential data corruption issues. This may take several minutes.","dokan-kits")}),x("optimizeTables")]}),(0,Ar.jsx)(t.CardFooter,{className:"dk-bg-gray-50 dk-border-t dk-border-gray-200",children:(0,Ar.jsx)(t.Button,{variant:"primary",className:"dk-admin-button",isBusy:k.optimizeTables,disabled:k.optimizeTables,onClick:()=>f("optimizeTables","database/optimize"),children:k.optimizeTables?(0,ka.__)("Optimizing…","dokan-kits"):(0,ka.__)("Optimize Tables","dokan-kits")})})]})]})]}),(0,Ar.jsxs)("div",{className:"dk-mb-wp-8",children:[(0,Ar.jsx)("h2",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-4",children:(0,ka.__)("Data Migration","dokan-kits")}),(0,Ar.jsx)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6",children:(0,Ar.jsxs)(t.Card,{className:"dk-flex-1 dk-flex dk-flex-col dk-transition dk-duration-300 dk-ease-in-out hover:dk-shadow-md",children:[(0,Ar.jsx)(t.CardHeader,{children:(0,Ar.jsxs)("h3",{className:"dk-text-xl dk-font-semibold dk-text-gray-900 dk-flex dk-items-center",children:[(0,Ar.jsx)("span",{className:"dashicons dashicons-migrate dk-mr-wp-2 dk-text-secondary-600"}),(0,ka.__)("Migrate Settings","dokan-kits")]})}),(0,Ar.jsxs)(t.CardBody,{children:[(0,Ar.jsx)("p",{className:"dk-text-gray-600 dk-mb-wp-4",children:(0,ka.__)("Migrate legacy Dokan Kits options to the new settings structure. This is required when upgrading from older versions.","dokan-kits")}),r&&r.needs_migration&&(0,Ar.jsx)("div",{className:"dk-p-3 dk-bg-yellow-50 dk-border dk-border-yellow-200 dk-rounded dk-text-sm dk-text-yellow-800 dk-mb-4",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-items-center",children:[(0,Ar.jsx)(ba,{className:"dk-h-5 dk-w-5 dk-mr-2"}),(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("Migration Required","dokan-kits")}),(0,Ar.jsx)("p",{className:"dk-mt-1",children:(0,ka.__)("Your database needs to be migrated to work with the current version.","dokan-kits")})]})]})}),x("migrateSettings")]}),(0,Ar.jsx)(t.CardFooter,{className:"dk-bg-gray-50 dk-border-t dk-border-gray-200",children:(0,Ar.jsx)(t.Button,{variant:r&&r.needs_migration?"primary":"secondary",className:r&&r.needs_migration?"dk-admin-button":"dk-admin-button dk-admin-button-secondary",isBusy:k.migrateSettings,disabled:k.migrateSettings||r&&r.is_running,onClick:()=>f("migrateSettings","migration/run"),children:k.migrateSettings?(0,ka.__)("Migrating…","dokan-kits"):(0,ka.__)("Run Migration","dokan-kits")})})]})})]}),(0,Ar.jsxs)("div",{className:"dk-mb-wp-8",children:[(0,Ar.jsx)("h2",{className:"dk-text-2xl dk-font-bold dk-text-gray-900 dk-mb-wp-4",children:(0,ka.__)("Troubleshooting","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-grid dk-grid-cols-1 md:dk-grid-cols-2 dk-gap-wp-6",children:[(0,Ar.jsxs)(t.Card,{className:"dk-flex-1 dk-flex dk-flex-col dk-transition dk-duration-300 dk-ease-in-out hover:dk-shadow-md",children:[(0,Ar.jsx)(t.CardHeader,{children:(0,Ar.jsxs)("h3",{className:"dk-text-xl dk-font-semibold dk-text-gray-900 dk-flex dk-items-center",children:[(0,Ar.jsx)(Qn,{className:"dk-h-5 dk-w-5 dk-mr-wp-2 dk-text-primary-600"}),(0,ka.__)("System Diagnostics","dokan-kits")]})}),(0,Ar.jsxs)(t.CardBody,{children:[(0,Ar.jsx)("p",{className:"dk-text-gray-600 dk-mb-wp-4",children:(0,ka.__)("Run comprehensive diagnostic tests to identify potential issues with your environment, dependencies, and configuration.","dokan-kits")}),x("runDiagnostics"),(()=>{if(!c)return null;const{wordpress:e,php:t,dokan_kits:a,system_check:r}=c;return(0,Ar.jsxs)("div",{className:"dk-mt-2 dk-p-3 dk-bg-blue-50 dk-border dk-border-blue-200 dk-rounded dk-text-sm",children:[(0,Ar.jsx)("div",{className:"dk-font-medium dk-text-blue-800 dk-mb-2",children:(0,ka.__)("System Status Overview","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-grid dk-grid-cols-2 dk-gap-2 dk-text-xs",children:[e&&(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("WordPress:","dokan-kits")})," ",e.version]}),t&&(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("PHP:","dokan-kits")})," ",t.version]}),a&&(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("Plugin:","dokan-kits")})," ",a.version]}),r&&(0,Ar.jsxs)("div",{className:r.pass?"dk-text-green-600":"dk-text-red-600",children:[(0,Ar.jsx)("strong",{children:(0,ka.__)("System Check:","dokan-kits")})," ",r.pass?(0,ka.__)("Pass","dokan-kits"):(0,ka.__)("Fail","dokan-kits")]})]})]})})()]}),(0,Ar.jsx)(t.CardFooter,{className:"dk-bg-gray-50 dk-border-t dk-border-gray-200",children:(0,Ar.jsx)(t.Button,{variant:"primary",className:"dk-admin-button",isBusy:k.runDiagnostics,disabled:k.runDiagnostics,onClick:()=>f("runDiagnostics","diagnostics/run"),children:k.runDiagnostics?(0,ka.__)("Running Diagnostics…","dokan-kits"):(0,ka.__)("Run System Check","dokan-kits")})})]}),(0,Ar.jsxs)(t.Card,{className:"dk-flex-1 dk-flex dk-flex-col dk-transition dk-duration-300 dk-ease-in-out hover:dk-shadow-md",children:[(0,Ar.jsx)(t.CardHeader,{children:(0,Ar.jsxs)("h3",{className:"dk-text-xl dk-font-semibold dk-text-gray-900 dk-flex dk-items-center",children:[(0,Ar.jsx)(eo,{className:"dk-h-5 dk-w-5 dk-mr-wp-2 dk-text-primary-600"}),(0,ka.__)("Debug Logs","dokan-kits")]})}),(0,Ar.jsxs)(t.CardBody,{children:[(0,Ar.jsx)("p",{className:"dk-text-gray-600 dk-mb-wp-4",children:(0,ka.__)("Generate and download comprehensive debug logs including system information, configuration, and error details for support purposes.","dokan-kits")}),x("downloadLogs")]}),(0,Ar.jsx)(t.CardFooter,{className:"dk-bg-gray-50 dk-border-t dk-border-gray-200",children:(0,Ar.jsx)(t.Button,{variant:"primary",className:"dk-admin-button",isBusy:k.downloadLogs,disabled:k.downloadLogs,onClick:async()=>{m(e=>({...e,downloadLogs:!0}));try{const e=await on()({path:"/dokan-kits/v1/tools/download-logs",method:"POST"});if(!e.success||!e.data){const t=e.data||{};throw{message:e.message||(0,ka.__)("Failed to prepare log file.","dokan-kits"),code:t.code||"log_download_failed",status:t.status||400,data:t}}{const{file_url:t,file_name:a}=e.data,r=document.createElement("a");r.href=t,r.download=a,r.target="_blank",document.body.appendChild(r),r.click(),document.body.removeChild(r),l(t=>({...t,downloadLogs:{success:!0,message:e.message,data:e.data,timestamp:(new Date).toISOString()}})),h((0,ka.__)("Log file prepared for download successfully.","dokan-kits"),"success")}}catch(e){const t=e.message||(0,ka.__)("Failed to download logs.","dokan-kits"),a=e.code||"log_download_failed",r=e.data||{};l(e=>({...e,downloadLogs:{success:!1,message:t,code:a,data:r,timestamp:(new Date).toISOString()}})),h(t,"error")}finally{m(e=>({...e,downloadLogs:!1}))}},children:k.downloadLogs?(0,ka.__)("Preparing Download…","dokan-kits"):(0,ka.__)("Download Debug Logs","dokan-kits")})})]})]})]}),(0,Ar.jsx)("div",{className:"dk-mt-wp-10 dk-p-wp-6 dk-bg-yellow-50 dk-rounded-lg dk-border dk-border-yellow-200",children:(0,Ar.jsxs)("div",{className:"dk-flex dk-items-start",children:[(0,Ar.jsx)("div",{className:"dk-flex-shrink-0 dk-mr-wp-4",children:(0,Ar.jsx)(ja,{className:"dk-h-6 dk-w-6 dk-text-yellow-600"})}),(0,Ar.jsxs)("div",{children:[(0,Ar.jsx)("h3",{className:"dk-text-lg dk-font-semibold dk-text-yellow-800 dk-mb-wp-2",children:(0,ka.__)("Need Help?","dokan-kits")}),(0,Ar.jsx)("p",{className:"dk-text-yellow-700 dk-mb-wp-3",children:(0,ka.__)("If you encounter issues while using these tools or need additional support, please visit our support forum or documentation. When contacting support, include your debug logs for faster assistance.","dokan-kits")}),(0,Ar.jsxs)("div",{className:"dk-flex dk-flex-wrap dk-gap-wp-3",children:[(0,Ar.jsxs)("a",{href:"https://wordpress.org/support/plugin/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-warning dk-inline-flex dk-items-center",children:[(0,Ar.jsx)(en,{className:"dk-h-4 dk-w-4 dk-mr-1"}),(0,ka.__)("Get Support","dokan-kits")]}),(0,Ar.jsxs)("a",{href:"https://wordpress.org/plugins/dokan-kits/",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-secondary dk-inline-flex dk-items-center",children:[(0,Ar.jsx)(Ea,{className:"dk-h-4 dk-w-4 dk-mr-1"}),(0,ka.__)("Documentation","dokan-kits")]}),(0,Ar.jsxs)("a",{href:"https://github.com/getdokan/dokan-kits/issues",target:"_blank",rel:"noopener noreferrer",className:"dk-admin-button dk-admin-button-secondary dk-inline-flex dk-items-center",children:[(0,Ar.jsx)(to,{className:"dk-h-4 dk-w-4 dk-mr-1"}),(0,ka.__)("Report Issue","dokan-kits")]})]}),(0,Ar.jsxs)("div",{className:"dk-mt-wp-4 dk-p-3 dk-bg-yellow-100 dk-rounded dk-border dk-border-yellow-300",children:[(0,Ar.jsx)("h4",{className:"dk-font-medium dk-text-yellow-800 dk-mb-2",children:(0,ka.__)("Before contacting support:","dokan-kits")}),(0,Ar.jsxs)("ul",{className:"dk-text-sm dk-text-yellow-700 dk-list-disc dk-list-inside dk-space-y-1",children:[(0,Ar.jsx)("li",{children:(0,ka.__)("Run system diagnostics to identify common issues","dokan-kits")}),(0,Ar.jsx)("li",{children:(0,ka.__)("Download debug logs to include with your support request","dokan-kits")}),(0,Ar.jsx)("li",{children:(0,ka.__)("Check if migrations are up to date","dokan-kits")}),(0,Ar.jsx)("li",{children:(0,ka.__)("Try recreating database tables if experiencing data issues","dokan-kits")})]})]})]})]})})]})};r()(()=>{const e=document.getElementById("dokan-kits-admin-root");if(!e)return;e.classList.add("dokan-kits-admin-page");const a=(0,s.createRoot)(e),r=window.Dokan_Kits?.initialPath||"/",d=(0,n.applyFilters)("dokan_kits_admin_route_pages",[{index:!0,element:(0,Ar.jsx)(pn,{})},{path:"features",element:(0,Ar.jsx)($n,{})},{path:"about",element:(0,Ar.jsx)(sn,{})},{path:"tools",element:(0,Ar.jsx)(ro,{})}]);window.Dokan_Kits?.isDebugMode&&d.push({path:"/tailwind-demo",element:(0,Ar.jsx)(Zn,{})});const i=(l=(0,n.applyFilters)("dokan_kits_admin_routes",[{path:"/",element:(0,Ar.jsx)(Ys,{}),errorElement:(0,Ar.jsx)($r,{}),children:d},{path:"*",element:(0,Ar.jsx)(On,{})}]),c={initialEntries:[r]},ce({basename:c?.basename,unstable_getContext:c?.unstable_getContext,future:c?.future,history:u({window:c?.window}),hydrationData:c?.hydrationData||aa(),routes:l,mapRouteProperties:Rt,hydrationRouteProperties:Dt,dataStrategy:c?.dataStrategy,patchRoutesOnNavigation:c?.patchRoutesOnNavigation,window:c?.window}).initialize());var l,c;a.render((0,Ar.jsx)(o.StrictMode,{children:(0,Ar.jsx)(t.SlotFillProvider,{children:(0,Ar.jsx)(Us,{children:(0,Ar.jsx)(ua,{router:i})})})}))})})(); -
dokan-kits/trunk/dokan-kits.php
r3335424 r3342033 12 12 * Plugin URI: https://wordpress.org/plugins/dokan-kits 13 13 * Description: The Helper Toolkits plugin for Dokan is a feature-packed add-on designed to streamline and enhance the functionality of your Dokan-powered multi-vendor marketplace. 14 * Version: 3.0. 514 * Version: 3.0.6 15 15 * Author: WPIntegrity 16 16 * Author URI: https://wpintegrity.com/ … … 36 36 37 37 // Define plugin constants. 38 define( 'DOKAN_KITS_VERSION', '3.0. 5' );38 define( 'DOKAN_KITS_VERSION', '3.0.6' ); 39 39 define( 'DOKAN_KITS_FILE', __FILE__ ); 40 40 define( 'DOKAN_KITS_BASENAME', plugin_basename( __FILE__ ) ); -
dokan-kits/trunk/includes/Admin/Dashboard/Components/SettingsElement.php
r3335399 r3342033 10 10 11 11 use Exception; 12 use RuntimeException; 12 13 13 14 /** … … 361 362 * 362 363 * @return SettingsElement 364 * @throws Exception If value is not valid. 363 365 */ 364 366 public function set_value( $value ): SettingsElement { … … 427 429 * 428 430 * @return SettingsElement 429 * @throws Exception If children are not attachable.431 * @throws RuntimeException If children are not attachable. 430 432 */ 431 433 public function set_children( array $children ): SettingsElement { 432 434 if ( ! $this->is_support_children() ) { 433 435 // translators: %s is Settings element type. 434 throw new Exception( sprintf( esc_html__( 'Settings %s Does not support adding any children.', 'dokan-kits' ), esc_html( $this->get_type() ) ) );436 throw new RuntimeException( sprintf( esc_html__( 'Settings %s Does not support adding any children.', 'dokan-kits' ), esc_html( $this->get_type() ) ) ); 435 437 } 436 438 … … 508 510 * 509 511 * @return $this 510 * @throws \RuntimeException If child element is not attachable.512 * @throws RuntimeException If child element is not attachable. 511 513 */ 512 514 public function add( SettingsElement $element ): SettingsElement { 513 515 if ( ! $this->is_support_children() ) { 514 516 // translators: %s is Settings element type. 515 throw new \RuntimeException( sprintf( esc_html__( 'Settings %s Does not support adding any children.', 'dokan-kits' ), esc_html( $this->get_type() ) ) );517 throw new RuntimeException( sprintf( esc_html__( 'Settings %s Does not support adding any children.', 'dokan-kits' ), esc_html( $this->get_type() ) ) ); 516 518 } 517 519 … … 529 531 * 530 532 * @return SettingsElement 531 * @throws \RuntimeException If Element is not removable.533 * @throws RuntimeException If Element is not removable. 532 534 */ 533 535 public function remove( SettingsElement $element ): SettingsElement { 534 536 if ( ! $this->is_support_children() ) { 535 537 // translators: %s is Settings element type. 536 throw new \RuntimeException( sprintf( esc_html__( 'Settings %s Does not support removing any children.', 'dokan-kits' ), esc_html( $this->get_type() ) ) );538 throw new RuntimeException( sprintf( esc_html__( 'Settings %s Does not support removing any children.', 'dokan-kits' ), esc_html( $this->get_type() ) ) ); 537 539 } 538 540 539 541 $this->children = array_filter( 540 542 $this->children, 541 static fn( $child) => $child !== $element543 static fn( $child ) => $child !== $element 542 544 ); 543 545 return $this; … … 628 630 } 629 631 } 632 630 633 return $data; 631 634 } -
dokan-kits/trunk/includes/Admin/Dashboard/Dashboard.php
r3335399 r3342033 311 311 add_filter( 312 312 'dokan_kits_admin_script_data', 313 fn( $data) => array_merge_recursive(314 $this->settings(),315 $data316 )313 fn( $data ) => array_merge_recursive( 314 $this->settings(), 315 $data 316 ) 317 317 ); 318 318 } -
dokan-kits/trunk/includes/Core/Data/DataStore.php
r3335399 r3342033 57 57 protected $internal_meta_keys = array(); 58 58 59 /**60 * Cache group for this object type61 *62 * @var string63 */64 protected $cache_group = 'dokan-kits-data';65 59 66 60 /** … … 156 150 * Prepare value from database for use 157 151 * 158 * @param string $value Value from database.152 * @param string|array|mixed $value Value from database. 159 153 * 160 154 * @return mixed 161 155 */ 162 protected function prepare_value_from_db( string $value ) { 156 protected function prepare_value_from_db( $value ) { 157 // Handle non-string values. 158 if ( ! is_string( $value ) ) { 159 return $value; 160 } 161 163 162 if ( is_serialized( $value ) ) { 164 163 $prepared_value = maybe_unserialize( $value ); … … 185 184 * Check if a string is JSON 186 185 * 187 * @param string$string_data String to check.186 * @param mixed $string_data String to check. 188 187 * 189 188 * @return bool 190 189 */ 191 protected function is_json( string$string_data ): bool {192 if ( empty( $string_data ) ) {190 protected function is_json( $string_data ): bool { 191 if ( empty( $string_data ) || ! is_string( $string_data ) ) { 193 192 return false; 194 193 } … … 221 220 $id = $object->get_id(); 222 221 if ( $id ) { 223 wp_cache_delete( $id, $this->cache_group );224 225 222 /** 226 223 * Action that fires after clearing caches for an object. … … 269 266 * Convert string date to timestamp 270 267 * 271 * @param string $time_string Time string.268 * @param string|int|null $time_string Time string. 272 269 * 273 270 * @return int 274 271 */ 275 272 protected function string_to_timestamp( $time_string ): int { 273 if ( empty( $time_string ) ) { 274 return 0; 275 } 276 277 if ( is_numeric( $time_string ) ) { 278 return (int) $time_string; 279 } 280 276 281 return wc_string_to_timestamp( $time_string ); 277 282 } … … 411 416 } 412 417 413 /**414 * Get cache group415 *416 * @return string Cache group.417 */418 public function get_cache_group(): string {419 return $this->cache_group;420 }421 418 422 419 /** -
dokan-kits/trunk/includes/Core/Data/Model.php
r3335399 r3342033 29 29 protected $object_type = 'model'; 30 30 31 /**32 * Cache group for this object type.33 *34 * @var string35 */36 protected $cache_group = 'dokan-kits-models';37 31 38 32 /** … … 108 102 * Save should create or update based on object existence. 109 103 * 104 * @throws \Exception When save operation fails. 110 105 * @return int 111 106 */ 112 107 public function save(): int { 113 108 if ( ! $this->data_store ) { 114 return $this->get_id();109 return (int) $this->get_id(); 115 110 } 116 111 … … 126 121 127 122 if ( ! $should_save ) { 128 return $this->get_id();123 return (int) $this->get_id(); 129 124 } 130 125 … … 152 147 do_action( 'dokan_kits_after_' . $this->object_type . '_object_save', $this, $this->data_store ); 153 148 154 return $this->get_id();149 return (int) $this->get_id(); 155 150 } 156 151 … … 158 153 * Delete an object, set the ID to 0, and return result. 159 154 * 160 * @param bool $force_delete Should the date be deleted permanently. 161 * 155 * @param bool $force_delete Should the data be deleted permanently. 156 * 157 * @throws \Exception When delete operation fails. 162 158 * @return bool result. 163 159 */ -
dokan-kits/trunk/includes/Core/Data/Models/Settings.php
r3335399 r3342033 38 38 protected $object_type = 'settings'; 39 39 40 /**41 * Cache group for this object type42 *43 * @var string44 */45 protected $cache_group = 'dokan-kits-settings';46 40 47 41 /** … … 55 49 public function __construct( $data = array(), $read = 0 ) { 56 50 parent::__construct( $read ); 51 52 // Ensure data is an array. 53 if ( ! is_array( $data ) ) { 54 $data = array(); 55 } 57 56 58 57 // If data is not an array, convert it to an array. … … 71 70 $this->set_id( $data['id'] ?? 0 ); 72 71 $this->set_name( $data['name'] ?? '' ); 73 $this->set_value( maybe_unserialize( $data['value'] ?? '' ));74 $this->set_default( maybe_unserialize( $data['default'] ?? '' ));72 $this->set_value( $data['value'] ?? '' ); 73 $this->set_default( $data['default'] ?? '' ); 75 74 $this->set_date_created( $data['date_created'] ?? 0 ); 76 75 $this->set_date_modified( $data['date_modified'] ?? 0 ); 77 76 78 $this->data_store = \WC_Data_Store::load( 'dokan_kits_settings' ); 77 try { 78 $this->data_store = \WC_Data_Store::load( 'dokan_kits_settings' ); 79 } catch ( \Exception $e ) { 80 if ( function_exists( 'dokan_kits_logger' ) ) { 81 dokan_kits_logger()->error( 'Failed to load settings data store: ' . $e->getMessage() ); 82 } 83 throw $e; 84 } 79 85 80 86 /** … … 162 168 * 163 169 * @return void 170 * @throws \InvalidArgumentException When name is empty. 164 171 */ 165 172 public function set_name( string $name ): void { … … 435 442 */ 436 443 public function to_array(): array { 444 $date_created = $this->get_date_created(); 445 $date_modified = $this->get_date_modified(); 446 437 447 return array( 438 448 'id' => $this->get_id(), … … 440 450 'value' => $this->get_value(), 441 451 'default' => $this->get_default(), 442 'date_created' => $this->get_date_created() ? $this->get_date_created()->getTimestamp() : 0,443 'date_modified' => $this->get_date_modified() ? $this->get_date_modified()->getTimestamp() : 0,452 'date_created' => ( $date_created && is_object( $date_created ) && method_exists( $date_created, 'getTimestamp' ) ) ? $date_created->getTimestamp() : 0, 453 'date_modified' => ( $date_modified && is_object( $date_modified ) && method_exists( $date_modified, 'getTimestamp' ) ) ? $date_modified->getTimestamp() : 0, 444 454 ); 445 455 } -
dokan-kits/trunk/includes/Core/Data/Stores/SettingsDataStore.php
r3335399 r3342033 48 48 ); 49 49 50 /**51 * Settings cache group52 *53 * @var string54 */55 protected $cache_group = 'dokan-kits-settings';56 50 57 51 /** … … 61 55 * @since 3.0.0 62 56 */ 63 protected string $table_name = 'dokan_kits_settings'; 57 protected string $table_name; 58 59 /** 60 * Constructor 61 */ 62 public function __construct() { 63 global $wpdb; 64 $this->table_name = $wpdb->prefix . 'dokan_kits_settings'; 65 parent::__construct(); 66 } 67 68 /** 69 * Method to read settings from the database 70 * 71 * @param Settings $settings Settings object. 72 * 73 * @return void 74 */ 75 public function read( &$settings ): void { 76 $data = null; 77 78 $settings->set_defaults(); 79 80 $settings_id = $settings->get_id(); 81 $settings_name = $settings->get_name( 'edit' ); 82 83 // Try different ways to get the settings. 84 if ( $settings_id ) { 85 $data = $this->get_settings_by_id( $settings_id ); 86 } elseif ( $settings_name ) { 87 $data = $this->get_settings_by_name( $settings_name ); 88 if ( $data ) { 89 $settings->set_id( $data->get_id() ); 90 } 91 } 92 93 if ( null === $data ) { 94 $settings->set_object_read( true ); 95 return; 96 } 97 98 // Set settings data. 99 $settings->set_props( 100 array( 101 'name' => $data->name, 102 'value' => $this->prepare_value_from_db( $data->value ), 103 'default' => $this->prepare_value_from_db( $data->default ), 104 'date_created' => $this->string_to_timestamp( $data->date_created ), 105 'date_modified' => $this->string_to_timestamp( $data->date_modified ), 106 ) 107 ); 108 109 $settings->set_object_read( true ); 110 111 // Read meta data. 112 $settings->read_meta_data(); 113 114 /** 115 * Action that fires after reading a settings record 116 * 117 * @since 3.0.0 118 * 119 * @param int $settings_id Settings ID. 120 * @param Settings $settings Settings object. 121 * @param SettingsDataStore $this Data store instance. 122 */ 123 do_action( 'dokan_kits_settings_read', $settings_id, $settings, $this ); 124 } 64 125 65 126 /** … … 69 130 * 70 131 * @return void 132 * @throws \InvalidArgumentException Throw errors when the settings name is empty. 133 * @throws \RuntimeException Throw errors when the settings name is empty. 71 134 */ 72 135 public function create( &$settings ): void { 73 136 global $wpdb; 137 138 // Validate required fields. 139 if ( empty( $settings->get_name( 'edit' ) ) ) { 140 throw new \InvalidArgumentException( 'Settings name cannot be empty' ); 141 } 74 142 75 143 if ( ! $settings->get_date_created( 'edit' ) ) { … … 112 180 113 181 if ( false === $result ) { 114 if ( function_exists( 'dokan_kits_logger' ) ) { 115 dokan_kits_logger()->error( 116 sprintf( 'Error creating settings record: %s', $wpdb->last_error ) 117 ); 118 } 119 return; 182 $this->handle_db_error( $wpdb->last_error, 'creating' ); 120 183 } 121 184 … … 127 190 $settings->save_meta_data(); 128 191 129 $this->clear_caches( $settings );130 131 192 /** 132 193 * Action that fires after creating a settings record … … 142 203 143 204 /** 144 * Method to read settings fromthe database205 * Method to update settings in the database 145 206 * 146 207 * @param Settings $settings Settings object. 147 208 * 148 209 * @return void 149 */ 150 public function read( &$settings ): void { 151 $data = null; 152 153 $settings->set_defaults(); 154 155 $settings_id = $settings->get_id(); 156 $settings_name = $settings->get_name( 'edit' ); 157 158 // Try different ways to get the settings. 159 if ( $settings_id ) { 160 $data = $this->get_settings_by_id( $settings_id ); 161 } elseif ( $settings_name ) { 162 $data = $this->get_settings_by_name( $settings_name ); 163 if ( $data ) { 164 $settings->set_id( $data->get_id() ); 165 } 166 } 167 168 if ( null === $data ) { 169 $settings->set_object_read( true ); 170 return; 171 } 172 173 // Set settings data. 174 $settings->set_props( 175 array( 176 'name' => $data->name, 177 'value' => $this->prepare_value_from_db( $data->value ), 178 'default' => $this->prepare_value_from_db( $data->default ), 179 'date_created' => $this->string_to_timestamp( $data->date_created ), 180 'date_modified' => $this->string_to_timestamp( $data->date_modified ), 181 ) 182 ); 183 184 $settings->set_object_read( true ); 185 186 // Read meta data. 187 $settings->read_meta_data(); 188 189 /** 190 * Action that fires after reading a settings record 191 * 192 * @since 3.0.0 193 * 194 * @param int $settings_id Settings ID. 195 * @param Settings $settings Settings object. 196 * @param SettingsDataStore $this Data store instance. 197 */ 198 do_action( 'dokan_kits_settings_read', $settings_id, $settings, $this ); 199 } 200 201 /** 202 * Method to update settings in the database 203 * 204 * @param Settings $settings Settings object. 205 * 206 * @return void 210 * @throws \InvalidArgumentException Throw errors when the settings name is empty. 211 * @throws \RuntimeException Throw errors when the settings name is empty. 207 212 */ 208 213 public function update( &$settings ): void { 209 214 global $wpdb; 215 216 // Validate required fields. 217 if ( empty( $settings->get_id() ) ) { 218 throw new \InvalidArgumentException( 'Settings ID cannot be empty for update operation' ); 219 } 220 221 if ( empty( $settings->get_name( 'edit' ) ) ) { 222 throw new \InvalidArgumentException( 'Settings name cannot be empty' ); 223 } 210 224 211 225 // Set updated timestamp. … … 246 260 247 261 if ( false === $result ) { 248 if ( function_exists( 'dokan_kits_logger' ) ) { 249 dokan_kits_logger()->error( 250 sprintf( 'Error updating settings record: %s', $wpdb->last_error ) 251 ); 252 } 253 return; 262 $this->handle_db_error( $wpdb->last_error, 'updating' ); 254 263 } 255 264 … … 258 267 // Update meta data. 259 268 $settings->save_meta_data(); 260 261 $this->clear_caches( $settings );262 269 263 270 /** … … 280 287 * 281 288 * @return bool 289 * @throws \RuntimeException Throw errors when the settings name is empty. 282 290 */ 283 291 public function delete( &$settings, $args = array() ): bool { … … 341 349 342 350 if ( ! $result ) { 343 if ( function_exists( 'dokan_kits_logger' ) ) { 344 dokan_kits_logger()->error( 345 sprintf( 'Error deleting settings record: %s', $wpdb->last_error ) 346 ); 347 } 348 return false; 351 $this->handle_db_error( $wpdb->last_error, 'deleting' ); 349 352 } 350 353 … … 375 378 } 376 379 377 $this->clear_caches( $settings );378 379 380 return true; 380 381 } 381 382 382 383 /** 384 * Handle database operation errors 385 * 386 * @param string $message Error message. 387 * @param string $operation Operation that failed (create, update, delete). 388 * 389 * @throws \RuntimeException Always throws this exception. 390 * @return void 391 */ 392 private function handle_db_error( string $message, string $operation ): void { 393 $error_message = sprintf( 'Error %s settings record: %s', $operation, $message ); 394 if ( function_exists( 'dokan_kits_logger' ) ) { 395 dokan_kits_logger()->error( $error_message ); 396 } 397 throw new \RuntimeException( $error_message ); 398 } 399 400 /** 401 * Create a Settings object from raw database data 402 * 403 * @param object $settings_data Raw settings data from database. 404 * 405 * @return Settings Settings object. 406 */ 407 private function create_settings_from_data( $settings_data ): Settings { 408 $settings_array = array( 409 'id' => $settings_data->id, 410 'name' => $settings_data->name, 411 'value' => $this->prepare_value_from_db( $settings_data->value ), 412 'default' => $this->prepare_value_from_db( $settings_data->default ), 413 'date_created' => $this->string_to_timestamp( $settings_data->date_created ), 414 'date_modified' => $this->string_to_timestamp( $settings_data->date_modified ), 415 ); 416 417 $settings = new Settings( $settings_array ); 418 $settings->set_object_read( true ); 419 420 return $settings; 421 } 422 423 /** 383 424 * Helper method to get settings by ID 384 425 * … … 387 428 * @return Settings|null Settings object or null if not found. 388 429 */ 389 public function get_settings_by_id( int $settings_id ) {430 public function get_settings_by_id( int $settings_id ): ?Settings { 390 431 global $wpdb; 391 432 … … 394 435 } 395 436 396 // Try to get from cache first - check for an already created model object. 397 $cached_settings = wp_cache_get( 'settings_model_' . $settings_id, $this->cache_group ); 398 if ( $cached_settings instanceof Settings ) { 399 return $cached_settings; 400 } 401 402 // Get raw data from the database or cache. 403 $settings_data = wp_cache_get( $settings_id, $this->cache_group ); 404 if ( false === $settings_data ) { 405 $settings_data = $wpdb->get_row( 406 $wpdb->prepare( 407 "SELECT * FROM {$this->table_name} WHERE id = %d LIMIT 1", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared 408 $settings_id 409 ) 410 ); 411 412 if ( $settings_data ) { 413 wp_cache_set( $settings_id, $settings_data, $this->cache_group ); 414 } else { 415 return null; 416 } 417 } 418 419 // Create and populate a Settings object. 420 $settings = new Settings(); 421 $settings->set_id( $settings_data->id ); 422 $settings->set_props( 423 array( 424 'name' => $settings_data->name, 425 'value' => $this->prepare_value_from_db( $settings_data->value ), 426 'default' => $this->prepare_value_from_db( $settings_data->default ), 427 'date_created' => $this->string_to_timestamp( $settings_data->date_created ), 428 'date_modified' => $this->string_to_timestamp( $settings_data->date_modified ), 437 // Get data from database. 438 $settings_data = $wpdb->get_row( 439 $wpdb->prepare( 440 "SELECT * FROM {$this->table_name} WHERE id = %d LIMIT 1", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared 441 $settings_id 429 442 ) 430 443 ); 431 $settings->set_object_read( true ); 432 433 // Cache the model object.434 wp_cache_set( 'settings_model_' . $settings_id, $settings, $this->cache_group );435 // Also cache by name for faster lookups. 436 wp_cache_set( 'settings_model_name_' . md5( $settings_data->name ), $settings, $this->cache_group);444 445 if ( ! $settings_data ) { 446 return null; 447 } 448 449 $settings = $this->create_settings_from_data( $settings_data ); 437 450 438 451 /** … … 449 462 } 450 463 451 /**452 * Prepare value from database for use453 *454 * @param string|array $value Value from database.455 *456 * @return mixed457 */458 protected function prepare_value_from_db( $value ) {459 if ( is_serialized( $value ) ) {460 $prepared_value = maybe_unserialize( $value );461 } elseif ( $this->is_json( $value ) ) {462 $decoded = json_decode( $value, true );463 $prepared_value = json_last_error() === JSON_ERROR_NONE ? $decoded : $value;464 } else {465 $prepared_value = $value;466 }467 468 /**469 * Filter the value after retrieving it from the database.470 *471 * @since 3.0.0472 *473 * @param mixed $prepared_value The prepared value.474 * @param string $raw_value The raw value from the database.475 * @param DataStore $this The current data store instance.476 */477 return apply_filters( 'dokan_kits_prepare_value_from_db', $prepared_value, $value, $this );478 }479 480 /**481 * Check if a string is JSON482 *483 * @param string|array $string_data String to check.484 *485 * @return bool486 */487 protected function is_json( $string_data ): bool {488 if ( empty( $string_data ) || ! is_string( $string_data ) ) {489 return false;490 }491 492 $first_char = $string_data[0];493 $last_char = substr( $string_data, - 1 );494 495 // Quick check for JSON-like structure.496 if ( ( '{' === $first_char && '}' === $last_char ) ||497 ( '[' === $first_char && ']' === $last_char ) ) {498 try {499 json_decode( $string_data );500 501 return json_last_error() === JSON_ERROR_NONE;502 } catch ( \Exception $e ) {503 return false;504 }505 }506 507 return false;508 }509 464 510 465 /** … … 518 473 global $wpdb; 519 474 475 // Sanitize the name to prevent SQL injection. 476 $name = sanitize_key( $name ); 477 520 478 if ( empty( $name ) ) { 521 479 return null; 522 480 } 523 481 524 // Sanitize the name to ensure consistent caching. 525 $name = sanitize_key( $name ); 526 527 // Try to get from cache first - check for an already created model object. 528 $name_cache_key = 'settings_model_name_' . md5( $name ); 529 $cached_settings = wp_cache_get( $name_cache_key, $this->cache_group ); 530 if ( $cached_settings instanceof Settings ) { 531 return $cached_settings; 532 } 533 534 // Get raw data from database or cache. 535 $data_cache_key = 'settings_' . md5( $name ); 536 $settings_data = wp_cache_get( $data_cache_key, $this->cache_group ); 537 538 if ( false === $settings_data ) { 539 $settings_data = $wpdb->get_row( 540 $wpdb->prepare( 541 "SELECT * FROM {$this->table_name} WHERE name = %s LIMIT 1", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared 542 $name 543 ) 544 ); 545 546 if ( $settings_data ) { 547 wp_cache_set( $data_cache_key, $settings_data, $this->cache_group ); 548 wp_cache_set( $settings_data->id, $settings_data, $this->cache_group ); 549 } else { 550 return null; 551 } 552 } 553 554 // Create and populate a Settings object. 555 $settings = new Settings(); 556 $settings->set_id( $settings_data->id ); 557 $settings->set_props( 558 array( 559 'name' => $settings_data->name, 560 'value' => $this->prepare_value_from_db( $settings_data->value ), 561 'default' => $this->prepare_value_from_db( $settings_data->default ), 562 'date_created' => $this->string_to_timestamp( $settings_data->date_created ), 563 'date_modified' => $this->string_to_timestamp( $settings_data->date_modified ), 482 // Get data from database. 483 $settings_data = $wpdb->get_row( 484 $wpdb->prepare( 485 "SELECT * FROM {$this->table_name} WHERE name = %s LIMIT 1", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared 486 $name 564 487 ) 565 488 ); 566 $settings->set_object_read( true ); 567 568 // Cache the model object by name and ID for faster lookups. 569 wp_cache_set( $name_cache_key, $settings, $this->cache_group ); 570 wp_cache_set( 'settings_model_' . $settings_data->id, $settings, $this->cache_group ); 489 490 if ( ! $settings_data ) { 491 return null; 492 } 493 494 $settings = $this->create_settings_from_data( $settings_data ); 571 495 572 496 /** … … 591 515 */ 592 516 public function clear_caches( &$settings ): void { 593 parent::clear_caches( $settings );594 595 $name = $settings->get_name();596 $id = $settings->get_id();597 598 wp_cache_delete( 'settings_' . md5( $name ), $this->cache_group );599 wp_cache_delete( 'settings_model_name_' . md5( $name ), $this->cache_group );600 601 if ( $id ) {602 wp_cache_delete( 'settings_model_' . $id, $this->cache_group );603 }604 605 wp_cache_delete( 'settings_all', $this->cache_group );606 607 517 /** 608 518 * Action that fires after clearing caches for a settings object … … 619 529 * Get all settings 620 530 * 621 * @param array $args Query arguments. 531 * @param array $args { 532 * Query arguments. 533 * 534 * @type string $orderby Field to order by. Default 'name'. 535 * @type string $order Order direction. Default 'ASC'. 536 * @type int $limit Number of settings to retrieve. Default -1 (all). 537 * @type int $offset Number of settings to skip. Default 0. 538 * @type array $in Array of setting names to include. Default empty array. 539 * @type bool $force_refresh Whether to bypass cache and load fresh data. Default false. 540 * } 622 541 * 623 542 * @return array<Settings> … … 629 548 $args, 630 549 array( 631 'orderby' => 'name', 632 'order' => 'ASC', 633 'limit' => -1, 634 'offset' => 0, 635 'in' => array(), 550 'orderby' => 'name', 551 'order' => 'ASC', 552 'limit' => -1, 553 'offset' => 0, 554 'in' => array(), 555 'force_refresh' => false, 636 556 ) 637 557 ); … … 647 567 $args = (array) apply_filters( 'dokan_kits_settings_get_all_args', $args, $this ); 648 568 649 $cache_key = 'settings_all_' . md5( wp_json_encode( $args ) ); 650 $results = wp_cache_get( $cache_key, $this->cache_group ); 651 652 if ( false === $results ) { 653 $query = "SELECT * FROM {$this->table_name}"; 654 $where = array(); 655 $values = array(); 656 657 // Filter by specific setting names if provided. 658 if ( ! empty( $args['in'] ) && is_array( $args['in'] ) ) { 659 $placeholders = array(); 660 foreach ( $args['in'] as $name ) { 661 $placeholders[] = '%s'; 662 $values[] = $name; 663 } 664 $where[] = 'name IN (' . implode( ', ', $placeholders ) . ')'; 665 } 666 667 // Add WHERE clause if conditions exist. 668 if ( ! empty( $where ) ) { 669 $query .= ' WHERE ' . implode( ' AND ', $where ); 670 } 671 672 // Add ORDER BY clause. 673 $orderby = sanitize_sql_orderby( $args['orderby'] . ' ' . $args['order'] ); 674 $query .= " ORDER BY {$orderby}"; 675 676 // Add LIMIT clause if needed. 677 if ( -1 !== (int) $args['limit'] ) { 678 $query .= $wpdb->prepare( ' LIMIT %d, %d', $args['offset'], $args['limit'] ); 679 } 680 681 // Prepare the query if we have values to inject. 682 if ( ! empty( $values ) ) { 683 $query = $wpdb->prepare( $query, $values ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared 684 } 685 686 $results = $wpdb->get_results( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared 687 688 wp_cache_set( $cache_key, $results, $this->cache_group ); 689 } 569 $query_parts = array( 570 'SELECT' => 'SELECT *', 571 'FROM' => "FROM {$this->table_name}", 572 'WHERE' => '', 573 'ORDER' => '', 574 'LIMIT' => '', 575 ); 576 577 $where_conditions = array(); 578 $query_values = array(); 579 580 // Filter by specific setting names if provided. 581 if ( ! empty( $args['in'] ) && is_array( $args['in'] ) ) { 582 $sanitized_names = array_map( 'sanitize_key', $args['in'] ); 583 $placeholders = array_fill( 0, count( $sanitized_names ), '%s' ); 584 $where_conditions[] = 'name IN (' . implode( ', ', $placeholders ) . ')'; 585 $query_values = array_merge( $query_values, $sanitized_names ); 586 } 587 588 // Build WHERE clause. 589 if ( ! empty( $where_conditions ) ) { 590 $query_parts['WHERE'] = 'WHERE ' . implode( ' AND ', $where_conditions ); 591 } 592 593 // Add ORDER BY clause with validation. 594 $allowed_orderby = array( 'id', 'name', 'date_created', 'date_modified' ); 595 $orderby = in_array( $args['orderby'], $allowed_orderby, true ) ? $args['orderby'] : 'name'; 596 $order = strtoupper( $args['order'] ) === 'DESC' ? 'DESC' : 'ASC'; 597 $query_parts['ORDER'] = "ORDER BY {$orderby} {$order}"; 598 599 // Add LIMIT clause if needed. 600 if ( -1 !== (int) $args['limit'] && $args['limit'] > 0 ) { 601 $offset = max( 0, (int) $args['offset'] ); 602 $limit = (int) $args['limit']; 603 $query_parts['LIMIT'] = "LIMIT {$offset}, {$limit}"; 604 } 605 606 // Build final query. 607 $query = implode( ' ', array_filter( $query_parts ) ); 608 609 // Prepare the query if we have values to inject. 610 if ( ! empty( $query_values ) ) { 611 $query = $wpdb->prepare( $query, $query_values ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared 612 } 613 614 $results = $wpdb->get_results( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared 690 615 691 616 $settings_objects = array_map( 692 static fn($data) => new Settings( (array)$data ),617 fn( $data ) => $this->create_settings_from_data( $data ), 693 618 $results 694 619 ); … … 894 819 895 820 // Add the new value to the existing value. 896 $new_values[ self::DB_VERSION_KEY ] = DOKAN_KITS_VERSION;821 $new_values[ parent::DB_VERSION_KEY ] = DOKAN_KITS_VERSION; 897 822 898 823 $settings->set_value( $new_values ); -
dokan-kits/trunk/includes/Core/TemplateManager.php
r3335399 r3342033 229 229 $template = $this->sanitize_template_name( $template ); 230 230 231 // Check cache using WordPress transients.232 $cache_key = 'dokan_kits_template_' . md5( $template );233 $cached = get_transient( $cache_key );234 if ( false !== $cached ) {235 return $cached;236 }237 238 231 // 1. First check theme using WordPress core locate_template 239 232 $theme_templates = $this->build_theme_paths( array( $template ) ); … … 244 237 $located = $this->locate_in_plugin_paths( array( $template ) ); 245 238 } 246 247 // Cache result using WordPress transients.248 set_transient( $cache_key, $located, HOUR_IN_SECONDS );249 239 250 240 return $located; -
dokan-kits/trunk/includes/Features/Feature.php
r3335399 r3342033 9 9 namespace DokanKits\Features; 10 10 11 use DokanKits\Core\Data\Models\Settings; 12 use DokanKits\Core\Data\Stores\SettingsDataStore; 11 13 use DokanKits\Core\Interfaces\Hookable; 12 14 … … 181 183 */ 182 184 public function get_setting( string $key, $default_value = '' ) { 183 $value = dokan_kits_get_setting( $this->get_settings_group(), $this->get_settings_section(), $key, $default_value ); 185 // Get the setting using the data store. 186 $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class ); 187 $setting = $settings_store->get_settings_by_name( $this->get_settings_group() ); 188 189 if ( $setting instanceof Settings ) { 190 $data = $setting->get_value() ?? array(); 191 $value = $data[ $this->get_settings_section() ][ $key ] ?? $default_value; 192 } else { 193 $value = $default_value; 194 } 184 195 185 196 /** -
dokan-kits/trunk/includes/Features/Product/ProductFields.php
r3335399 r3342033 181 181 182 182 if ( ! empty( $css ) ) { 183 echo '<style type="text/css">' . esc_html( $css ) . '</style>'; 183 printf( 184 '<style type="text/css" id="dokan-kits-%2$s-%3$s">%1$s</style>', 185 esc_html( $css ), 186 esc_attr( $this->get_settings_group() ), 187 esc_attr( $this->get_settings_section() ) 188 ); 184 189 } 185 190 } … … 211 216 foreach ( $this->fields as $field ) { 212 217 if ( $this->is_field_hidden( $field['option'] ) ) { 213 $css .= '.dokan-product-edit-form ' . esc_html( $field['selector'] ) . " { display: none !important; }\n";218 $css .= '.dokan-product-edit-form ' . esc_html( $field['selector'] ) . ' { display: none !important; }'; 214 219 } 215 220 } -
dokan-kits/trunk/includes/REST/Controllers/Version1/DashboardController.php
r3335399 r3342033 483 483 */ 484 484 protected function prepare_base_dashboard_data(): array { 485 $settings = dokan_kits_get_all_settings( array( 'in' => dokan_kits()->get_settings_groups() ) ); 485 $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class ); 486 $settings = $settings_store->get_all( array( 'in' => dokan_kits()->get_settings_groups() ) ); 486 487 487 488 $dashboard_data = array( … … 518 519 } 519 520 520 $settings = dokan_kits_get_all_settings( array( 'in' => dokan_kits()->get_settings_groups() ) ); 521 $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class ); 522 $settings = $settings_store->get_all( array( 'in' => dokan_kits()->get_settings_groups() ) ); 521 523 $total_features = 0; 522 524 $active_features = 0; … … 619 621 */ 620 622 protected function export_settings_data( array $groups, string $format ): array { 621 $settings = dokan_kits_get_all_settings( array( 'in' => $groups ) ); 623 $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class ); 624 $settings = $settings_store->get_all( array( 'in' => $groups ) ); 622 625 623 626 $export_data = array(); … … 678 681 $name = $this->sanitize_key( $name ); 679 682 680 $setting = dokan_kits_get_settings_object( $name ); 683 $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class ); 684 $setting = $settings_store->get_settings_by_name( $name ); 681 685 682 686 if ( null === $setting ) { … … 723 727 */ 724 728 protected function reset_settings_data( string $scope ): array { 729 $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class ); 725 730 if ( 'all' === $scope ) { 726 dokan_kits_reset_settings_by_names( dokan_kits()->get_settings_groups() );731 $settings_store->reset_by_names( dokan_kits()->get_settings_groups() ); 727 732 $message = __( 'All settings have been reset to defaults.', 'dokan-kits' ); 728 733 } else { 729 dokan_kits_reset_settings_by_name( $scope );734 $settings_store->reset_by_name( $scope ); 730 735 /* translators: %s: settings group name */ 731 736 $message = sprintf( __( '%s settings have been reset to defaults.', 'dokan-kits' ), ucfirst( $scope ) ); -
dokan-kits/trunk/includes/REST/Controllers/Version1/SettingsController.php
r3335399 r3342033 12 12 use DokanKits\Core\Data\Stores\SettingsDataStore; 13 13 use DokanKits\REST\Controllers\Controller; 14 use Exception; 14 15 use JsonException; 16 use Throwable; 15 17 use WP_Error; 16 18 use WP_REST_Request; … … 98 100 $query_args = $this->prepare_query_args( $request ); 99 101 100 // Fetch settings using the helper function. 101 $settings = dokan_kits_get_all_settings( $query_args ); 102 // Add force refresh parameter to ensure fresh data from database. 103 $query_args['force_refresh'] = (bool) $request->get_param( 'force_refresh' ); 104 105 // Fetch settings using the data store. 106 $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class ); 107 $settings = $settings_store->get_all( $query_args ); 102 108 103 109 // Prepare response data. … … 128 134 ); 129 135 130 } catch ( \Exception $e ) {136 } catch ( Exception $e ) { 131 137 return $this->handle_exception( $e, 'get_settings' ); 132 138 } … … 159 165 } 160 166 161 // Get setting using helper function. 162 $setting = dokan_kits_get_settings_object( $setting_name ); 167 // Get setting using data store with optional force load to ensure fresh data. 168 $force_refresh = (bool) $request->get_param( 'force_refresh' ); 169 $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class ); 170 $setting = $settings_store->get_settings_by_name( $setting_name, $force_refresh ); 163 171 164 172 if ( null === $setting ) { … … 208 216 ); 209 217 210 } catch ( \Exception $e ) {218 } catch ( Exception $e ) { 211 219 return $this->handle_exception( $e, 'get_setting' ); 212 220 } … … 324 332 ); 325 333 326 } catch ( \Exception $e ) {334 } catch ( Exception $e ) { 327 335 return $this->handle_exception( $e, 'update_settings' ); 328 336 } … … 369 377 } 370 378 371 // Get the updated setting for response using helper function. 372 $updated_setting = dokan_kits_get_settings_object( $setting_name ); 379 // Get the updated setting for response using data store with force load to ensure fresh data. 380 $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class ); 381 $updated_setting = $settings_store->get_settings_by_name( $setting_name, true ); 382 383 // Clear any cached data to ensure consistency. 384 if ( $updated_setting ) { 385 $settings_store->clear_caches( $updated_setting ); 386 } 373 387 if ( ! $updated_setting instanceof Settings ) { 374 388 return $this->error( … … 411 425 ); 412 426 413 } catch ( \Exception $e ) {427 } catch ( Exception $e ) { 414 428 return $this->handle_exception( $e, 'update_setting' ); 415 429 } … … 481 495 foreach ( $settings as $setting ) { 482 496 $item_data = $this->prepare_single_setting_for_response( $setting, $request ); 483 $data[ $item_data['name'] ] = $item_data['value'];497 $data[ $item_data['name'] ] = maybe_unserialize( $item_data['value'] ); 484 498 } 485 499 … … 559 573 * 560 574 * @return true|WP_Error True on success, WP_Error on failure. 575 * @throws Exception When an error occurs during the update process. 561 576 */ 562 577 protected function update_single_setting_internal( string $setting_name, $setting_value ) { … … 586 601 $sanitized_value = $this->sanitize_setting_value( $setting_value ); 587 602 588 // Update the setting. 589 $updated = dokan_kits_update_setting( 590 $setting_parts['group'], 591 $setting_parts['section'], 592 $setting_parts['option'], 593 $sanitized_value 594 ); 603 // Get or create the setting using data store. 604 $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class ); 605 $setting = $settings_store->get_settings_by_name( $setting_name ); 606 607 if ( null === $setting ) { 608 $setting = dokan_kits_get_container()->get( Settings::class ); 609 $setting->set_name( $setting_name ); 610 } 611 612 $setting->set_value( $sanitized_value ); 613 614 $updated = $setting->save(); 595 615 if ( ! $updated ) { 596 616 return $this->error( … … 760 780 * @since 3.0.0 761 781 * 762 * @param \Throwable $exception The exception.763 * @param string $context The context.782 * @param Throwable $exception The exception. 783 * @param string $context The context. 764 784 * 765 785 * @return WP_Error Error response. 766 786 */ 767 protected function handle_exception( \Throwable $exception, string $context = '' ): WP_Error {787 protected function handle_exception( Throwable $exception, string $context = '' ): WP_Error { 768 788 // Log the exception. 769 789 dokan_kits_logger()->error( … … 805 825 public function get_collection_params(): array { 806 826 $params = array( 807 'orderby' => array(827 'orderby' => array( 808 828 'description' => __( 'Order by field.', 'dokan-kits' ), 809 829 'type' => 'string', … … 811 831 'enum' => array( 'id', 'name' ), 812 832 ), 813 'order' => array(833 'order' => array( 814 834 'description' => __( 'Order direction.', 'dokan-kits' ), 815 835 'type' => 'string', … … 817 837 'enum' => array( 'ASC', 'DESC' ), 818 838 ), 819 'per_page' => array(839 'per_page' => array( 820 840 'description' => __( 'Number of items to fetch.', 'dokan-kits' ), 821 841 'type' => 'integer', … … 823 843 'minimum' => -1, 824 844 ), 825 'offset' => array(845 'offset' => array( 826 846 'description' => __( 'Number of items to skip.', 'dokan-kits' ), 827 847 'type' => 'integer', … … 829 849 'minimum' => 0, 830 850 ), 831 'group' => array(851 'group' => array( 832 852 'description' => __( 'Filter settings by group.', 'dokan-kits' ), 833 853 'type' => array( 'string', 'array' ), … … 837 857 ), 838 858 ), 839 'search' => array(859 'search' => array( 840 860 'description' => __( 'Search settings by name.', 'dokan-kits' ), 841 861 'type' => 'string', 842 862 ), 863 'force_refresh' => array( 864 'description' => __( 'Force refresh data from database bypassing cache.', 'dokan-kits' ), 865 'type' => 'boolean', 866 'default' => true, 867 ), 843 868 ); 844 869 … … 862 887 public function get_single_setting_params(): array { 863 888 $params = array( 864 'setting_name' => array(889 'setting_name' => array( 865 890 'description' => __( 'Setting name in format: group.section.option', 'dokan-kits' ), 866 891 'type' => 'string', 867 892 'required' => true, 868 893 'pattern' => '^[a-zA-Z0-9._-]+', 894 ), 895 'force_refresh' => array( 896 'description' => __( 'Force refresh data from database bypassing cache.', 'dokan-kits' ), 897 'type' => 'boolean', 898 'default' => true, 869 899 ), 870 900 ); -
dokan-kits/trunk/includes/REST/Controllers/Version1/ToolsController.php
r3335399 r3342033 11 11 use DokanKits\Core\Data\DataStore; 12 12 use DokanKits\Core\Data\Models\Settings; 13 use DokanKits\Core\Data\Stores\SettingsDataStore; 13 14 use DokanKits\REST\Controllers\Controller; 14 15 use DokanKits\Setup\Migrator; 15 16 use DokanKits\Setup\SystemCheck; 17 use Exception; 16 18 use WP_Error; 17 19 use WP_REST_Server; … … 297 299 ); 298 300 299 } catch ( \Exception $e ) {301 } catch ( Exception $e ) { 300 302 return $this->handle_exception( $e, 'recreate_tables' ); 301 303 } … … 357 359 ); 358 360 359 } catch ( \Exception $e ) {361 } catch ( Exception $e ) { 360 362 return $this->handle_exception( $e, 'optimize_tables' ); 361 363 } … … 418 420 ); 419 421 420 } catch ( \Exception $e ) {422 } catch ( Exception $e ) { 421 423 return $this->handle_exception( $e, 'run_migration' ); 422 424 } … … 470 472 ); 471 473 472 } catch ( \Exception $e ) {474 } catch ( Exception $e ) { 473 475 return $this->handle_exception( $e, 'get_migration_status' ); 474 476 } … … 522 524 ); 523 525 524 } catch ( \Exception $e ) {526 } catch ( Exception $e ) { 525 527 return $this->handle_exception( $e, 'run_diagnostics' ); 526 528 } … … 578 580 ); 579 581 580 } catch ( \Exception $e ) {582 } catch ( Exception $e ) { 581 583 return $this->handle_exception( $e, 'download_logs' ); 582 584 } … … 604 606 $data_store->verify_tables(); 605 607 $created_tables[] = $data_store->get_table_name(); 606 } catch ( \Exception $e ) {608 } catch ( Exception $e ) { 607 609 $failed_tables[ $data_store->get_table_name() ] = $e->getMessage(); 608 610 } … … 656 658 $failed[ $table_name ] = __( 'Failed to repair or optimize table.', 'dokan-kits' ); 657 659 } 658 } catch ( \Exception $e ) {660 } catch ( Exception $e ) { 659 661 $failed[ $table_name ] = $e->getMessage(); 660 662 } … … 707 709 $migrator = dokan_kits_get_container()->get( Migrator::class ); 708 710 709 $migration_history = dokan_kits_get_settings_object( 'migration_history' ); 711 $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class ); 712 $migration_history = $settings_store->get_settings_by_name( 'migration_history' ); 710 713 $history = $migration_history instanceof Settings ? $migration_history->get_value() : array(); 711 714 -
dokan-kits/trunk/includes/Setup/Activator.php
r3335399 r3342033 19 19 use DokanKits\Core\Data\DataStore; 20 20 use DokanKits\Core\Data\Models\Settings; 21 use DokanKits\Core\Data\Stores\SettingsDataStore; 21 22 use DokanKits\Core\Interfaces\Runnable; 22 23 use Throwable; … … 80 81 */ 81 82 private function determine_installation_type(): array { 82 $settings = dokan_kits_get_settings_object( 'system' ); 83 $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class ); 84 $settings = $settings_store->get_settings_by_name( 'system' ); 83 85 84 86 // Existing installation with system settings. … … 117 119 */ 118 120 private function get_or_create_system_settings( array $installation_type ): Settings { 119 $settings = dokan_kits_get_settings_object( 'system' ); 121 $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class ); 122 $settings = $settings_store->get_settings_by_name( 'system' ); 120 123 121 124 // Return existing settings if available. -
dokan-kits/trunk/includes/Setup/Migrations/V300/MigrateOldSettings.php
r3335399 r3342033 10 10 11 11 use DokanKits\Core\Data\Models\Settings; 12 use DokanKits\Core\Data\Stores\SettingsDataStore; 12 13 use DokanKits\Setup\Migrations\Migration; 13 14 … … 48 49 // Migrate settings for each category. 49 50 foreach ( $old_settings_map as $category => $sections ) { 50 // Get the settings for this category. 51 $settings = dokan_kits_get_settings_object( $category ); 51 // Get the settings for this category using data store. 52 $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class ); 53 $settings = $settings_store->get_settings_by_name( $category ); 52 54 53 55 // If settings don't exist, create them. -
dokan-kits/trunk/includes/Setup/Migrator.php
r3335399 r3342033 212 212 usort( 213 213 $version_migrations, 214 static fn( $a, $b) => $a->get_priority() - $b->get_priority()214 static fn( $a, $b ) => $a->get_priority() - $b->get_priority() 215 215 ); 216 216 -
dokan-kits/trunk/languages/dokan-kits.pot
r3335424 r3342033 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Dokan Kits 3.0. 5\n"5 "Project-Id-Version: Dokan Kits 3.0.6\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/dokan-kits\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2025-0 7-28T14:18:59+00:00\n"12 "POT-Creation-Date: 2025-08-09T10:46:26+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 "X-Generator: WP-CLI 2.1 1.0\n"14 "X-Generator: WP-CLI 2.12.0\n" 15 15 "X-Domain: dokan-kits\n" 16 16 … … 45 45 46 46 #. translators: %s is Settings element type. 47 #: includes/Admin/Dashboard/Components/SettingsElement.php:434 48 #: includes/Admin/Dashboard/Components/SettingsElement.php:515 47 #: includes/Admin/Dashboard/Components/SettingsElement.php:436 48 #: includes/Admin/Dashboard/Components/SettingsElement.php:517 49 #, php-format 49 50 msgid "Settings %s Does not support adding any children." 50 51 msgstr "" 51 52 52 53 #. translators: %s is Settings element type. 53 #: includes/Admin/Dashboard/Components/SettingsElement.php:536 54 #: includes/Admin/Dashboard/Components/SettingsElement.php:538 55 #, php-format 54 56 msgid "Settings %s Does not support removing any children." 55 57 msgstr "" … … 165 167 #. translators: %s: product type label. 166 168 #: includes/Admin/Dashboard/Pages/Features.php:332 169 #, php-format 167 170 msgid "Remove %ss" 168 171 msgstr "" … … 170 173 #. translators: %s: product type label. 171 174 #: includes/Admin/Dashboard/Pages/Features.php:339 175 #, php-format 172 176 msgid "Hide the %s type option from vendors" 173 177 msgstr "" … … 390 394 391 395 #: includes/Admin/Hooks.php:87 392 #: includes/REST/Controllers/Version1/DashboardController.php:55 3396 #: includes/REST/Controllers/Version1/DashboardController.php:555 393 397 msgid "Settings" 394 398 msgstr "" … … 439 443 #. translators: %s: Plugin name 440 444 #: includes/Admin/Notices/Dependencies.php:67 445 #, php-format 441 446 msgid "Activate %s" 442 447 msgstr "" … … 444 449 #. translators: %s: Plugin name 445 450 #: includes/Admin/Notices/Dependencies.php:74 451 #, php-format 446 452 msgid "Install %s" 447 453 msgstr "" … … 449 455 #. translators: %s: List of required plugins 450 456 #: includes/Admin/Notices/Dependencies.php:81 457 #, php-format 451 458 msgid "Dokan Kits requires the following plugins to be active: %s" 452 459 msgstr "" 453 460 454 461 #. translators: %s: template name. 455 #: includes/Core/TemplateManager.php:380 462 #: includes/Core/TemplateManager.php:370 463 #, php-format 456 464 msgid "Template %s not found." 457 465 msgstr "" … … 461 469 #: includes/Core/Validation/Validator.php:167 462 470 #: includes/REST/Middleware/Validation.php:531 471 #, php-format 463 472 msgid "The %s field is required." 464 473 msgstr "" … … 468 477 #: includes/Core/Validation/Validator.php:185 469 478 #: includes/REST/Middleware/Validation.php:631 479 #, php-format 470 480 msgid "The %s field must be a valid email address." 471 481 msgstr "" … … 473 483 #. translators: %s is the field name. 474 484 #: includes/Core/Validation/Validator.php:203 485 #, php-format 475 486 msgid "The %s field must be numeric." 476 487 msgstr "" … … 480 491 #: includes/Core/Validation/Validator.php:221 481 492 #: includes/REST/Middleware/Validation.php:591 493 #, php-format 482 494 msgid "The %s field must be an integer." 483 495 msgstr "" … … 485 497 #. translators: %1$s is the field name, %2$s is the minimum value. 486 498 #: includes/Core/Validation/Validator.php:246 499 #, php-format 487 500 msgid "The %1$s field must be at least %2$s." 488 501 msgstr "" … … 490 503 #. translators: %1$s is the field name, %2$s is the maximum value. 491 504 #: includes/Core/Validation/Validator.php:271 505 #, php-format 492 506 msgid "The %1$s field must be at most %2$s." 493 507 msgstr "" … … 497 511 #: includes/Core/Validation/Validator.php:296 498 512 #: includes/REST/Middleware/Validation.php:677 513 #, php-format 499 514 msgid "The %1$s field must be at least %2$d characters." 500 515 msgstr "" … … 502 517 #. translators: %1$s is the field name, %2$d is the maximum length. 503 518 #: includes/Core/Validation/Validator.php:321 519 #, php-format 504 520 msgid "The %1$s field must be at most %2$d characters." 505 521 msgstr "" … … 509 525 #: includes/Core/Validation/Validator.php:339 510 526 #: includes/REST/Middleware/Validation.php:651 527 #, php-format 511 528 msgid "The %s field must be a valid URL." 512 529 msgstr "" … … 516 533 #: includes/Core/Validation/Validator.php:362 517 534 #: includes/REST/Middleware/Validation.php:744 535 #, php-format 518 536 msgid "The %1$s field must be one of: %2$s." 519 537 msgstr "" … … 521 539 #. translators: %1$s is the field name, %2$s is the list of invalid values. 522 540 #: includes/Core/Validation/Validator.php:385 541 #, php-format 523 542 msgid "The %1$s field must not be one of: %2$s." 524 543 msgstr "" … … 528 547 #: includes/Core/Validation/Validator.php:410 529 548 #: includes/REST/Middleware/Validation.php:820 549 #, php-format 530 550 msgid "The %s field format is invalid." 531 551 msgstr "" … … 533 553 #. translators: %s is the field name. 534 554 #: includes/Core/Validation/Validator.php:433 555 #, php-format 535 556 msgid "The %s field must be a valid date." 536 557 msgstr "" … … 582 603 583 604 #: includes/REST/Controllers/Controller.php:388 584 #: includes/REST/Controllers/Version1/SettingsController.php:9 63585 #: includes/REST/Controllers/Version1/SettingsController.php:10 24605 #: includes/REST/Controllers/Version1/SettingsController.php:993 606 #: includes/REST/Controllers/Version1/SettingsController.php:1054 586 607 msgid "Whether the request was successful." 587 608 msgstr "" 588 609 589 610 #: includes/REST/Controllers/Controller.php:394 590 #: includes/REST/Controllers/Version1/SettingsController.php:9 69591 #: includes/REST/Controllers/Version1/SettingsController.php:10 29611 #: includes/REST/Controllers/Version1/SettingsController.php:999 612 #: includes/REST/Controllers/Version1/SettingsController.php:1059 592 613 msgid "Human-readable message describing the result." 593 614 msgstr "" … … 599 620 #. translators: 1: resource type, 2: resource ID 600 621 #: includes/REST/Controllers/Controller.php:430 622 #, php-format 601 623 msgid "Invalid %1$s ID: %2$s" 602 624 msgstr "" … … 604 626 #. translators: 1: resource type, 2: resource ID 605 627 #: includes/REST/Controllers/Controller.php:453 628 #, php-format 606 629 msgid "%1$s not found: %2$s" 607 630 msgstr "" … … 609 632 #. translators: %s: parameter name 610 633 #: includes/REST/Controllers/Controller.php:475 634 #, php-format 611 635 msgid "Missing required parameter: %s" 612 636 msgstr "" … … 614 638 #. translators: 1: resource type, 2: resource ID, 3: operation 615 639 #: includes/REST/Controllers/Controller.php:498 640 #, php-format 616 641 msgid "%1$s \"%2$s\" %3$s successfully." 617 642 msgstr "" … … 619 644 #. translators: 1: resource type, 2: operation 620 645 #: includes/REST/Controllers/Controller.php:507 646 #, php-format 621 647 msgid "%1$s %2$s successfully." 622 648 msgstr "" … … 640 666 #. translators: %d: Number of settings exported 641 667 #: includes/REST/Controllers/Version1/DashboardController.php:296 668 #, php-format 642 669 msgid "%d setting exported successfully." 643 670 msgid_plural "%d settings exported successfully." … … 659 686 #. translators: %d: Number of settings imported 660 687 #: includes/REST/Controllers/Version1/DashboardController.php:390 688 #, php-format 661 689 msgid "%d setting imported successfully." 662 690 msgid_plural "%d settings imported successfully." … … 670 698 #. translators: %s: allowed scopes 671 699 #: includes/REST/Controllers/Version1/DashboardController.php:434 700 #, php-format 672 701 msgid "Invalid scope. Allowed scopes: %s" 673 702 msgstr "" 674 703 675 #: includes/REST/Controllers/Version1/DashboardController.php:5 39704 #: includes/REST/Controllers/Version1/DashboardController.php:541 676 705 msgid "Active Features" 677 706 msgstr "" 678 707 679 #: includes/REST/Controllers/Version1/DashboardController.php:54 0708 #: includes/REST/Controllers/Version1/DashboardController.php:542 680 709 msgid "Number of enabled features" 681 710 msgstr "" 682 711 683 #: includes/REST/Controllers/Version1/DashboardController.php:54 6712 #: includes/REST/Controllers/Version1/DashboardController.php:548 684 713 #: src/admin/pages/dashboard/index.js:313 685 714 msgid "Total Features" 686 715 msgstr "" 687 716 688 #: includes/REST/Controllers/Version1/DashboardController.php:54 7717 #: includes/REST/Controllers/Version1/DashboardController.php:549 689 718 msgid "Total available features" 690 719 msgstr "" 691 720 692 #: includes/REST/Controllers/Version1/DashboardController.php:55 4721 #: includes/REST/Controllers/Version1/DashboardController.php:556 693 722 msgid "Number of configured settings" 694 723 msgstr "" 695 724 696 #: includes/REST/Controllers/Version1/DashboardController.php:5 59725 #: includes/REST/Controllers/Version1/DashboardController.php:561 697 726 msgid "Not installed" 698 727 msgstr "" 699 728 700 #: includes/REST/Controllers/Version1/DashboardController.php:56 0729 #: includes/REST/Controllers/Version1/DashboardController.php:562 701 730 #: src/admin/pages/dashboard/index.js:337 702 731 msgid "Dokan Version" 703 732 msgstr "" 704 733 705 #: includes/REST/Controllers/Version1/DashboardController.php:56 1734 #: includes/REST/Controllers/Version1/DashboardController.php:563 706 735 msgid "Installed Dokan version" 707 736 msgstr "" 708 737 709 #: includes/REST/Controllers/Version1/DashboardController.php:59 4738 #: includes/REST/Controllers/Version1/DashboardController.php:596 710 739 #: src/admin/pages/dashboard/index.js:301 711 740 msgid "Enhance your Dokan-powered marketplace with powerful tools and customizations." 712 741 msgstr "" 713 742 714 #: includes/REST/Controllers/Version1/DashboardController.php:67 3715 #: includes/REST/Controllers/Version1/SettingsController.php:5 67743 #: includes/REST/Controllers/Version1/DashboardController.php:676 744 #: includes/REST/Controllers/Version1/SettingsController.php:582 716 745 msgid "Invalid setting name." 717 746 msgstr "" 718 747 719 #: includes/REST/Controllers/Version1/DashboardController.php:7 27748 #: includes/REST/Controllers/Version1/DashboardController.php:732 720 749 msgid "All settings have been reset to defaults." 721 750 msgstr "" 722 751 723 752 #. translators: %s: settings group name 724 #: includes/REST/Controllers/Version1/DashboardController.php:731 753 #: includes/REST/Controllers/Version1/DashboardController.php:736 754 #, php-format 725 755 msgid "%s settings have been reset to defaults." 726 756 msgstr "" 727 757 728 #: includes/REST/Controllers/Version1/DashboardController.php:75 1758 #: includes/REST/Controllers/Version1/DashboardController.php:756 729 759 msgid "Include statistics in response." 730 760 msgstr "" 731 761 732 #: includes/REST/Controllers/Version1/DashboardController.php:7 56762 #: includes/REST/Controllers/Version1/DashboardController.php:761 733 763 msgid "Include plugin data in response." 734 764 msgstr "" 735 765 736 #: includes/REST/Controllers/Version1/DashboardController.php:78 2766 #: includes/REST/Controllers/Version1/DashboardController.php:787 737 767 msgid "Force refresh of cached statistics." 738 768 msgstr "" 739 769 740 #: includes/REST/Controllers/Version1/DashboardController.php:8 08770 #: includes/REST/Controllers/Version1/DashboardController.php:813 741 771 msgid "Export format." 742 772 msgstr "" 743 773 744 #: includes/REST/Controllers/Version1/DashboardController.php:81 4774 #: includes/REST/Controllers/Version1/DashboardController.php:819 745 775 msgid "Settings groups to export." 746 776 msgstr "" 747 777 748 #: includes/REST/Controllers/Version1/DashboardController.php:84 4778 #: includes/REST/Controllers/Version1/DashboardController.php:849 749 779 msgid "Settings data to import as key-value pairs." 750 780 msgstr "" 751 781 752 #: includes/REST/Controllers/Version1/DashboardController.php:85 4782 #: includes/REST/Controllers/Version1/DashboardController.php:859 753 783 msgid "Whether to overwrite existing settings." 754 784 msgstr "" 755 785 756 #: includes/REST/Controllers/Version1/DashboardController.php:88 0786 #: includes/REST/Controllers/Version1/DashboardController.php:885 757 787 msgid "Scope of settings to reset." 758 788 msgstr "" 759 789 760 #: includes/REST/Controllers/Version1/DashboardController.php:8 86790 #: includes/REST/Controllers/Version1/DashboardController.php:891 761 791 msgid "Confirmation that you want to reset the settings." 762 792 msgstr "" 763 793 764 #: includes/REST/Controllers/Version1/DashboardController.php:9 18794 #: includes/REST/Controllers/Version1/DashboardController.php:923 765 795 msgid "Dashboard data." 766 796 msgstr "" 767 797 768 #: includes/REST/Controllers/Version1/DashboardController.php:92 2798 #: includes/REST/Controllers/Version1/DashboardController.php:927 769 799 msgid "Number of configured settings." 770 800 msgstr "" 771 801 772 #: includes/REST/Controllers/Version1/DashboardController.php:9 27802 #: includes/REST/Controllers/Version1/DashboardController.php:932 773 803 msgid "Last updated timestamp." 774 804 msgstr "" 775 805 776 #: includes/REST/Controllers/Version1/DashboardController.php:93 2806 #: includes/REST/Controllers/Version1/DashboardController.php:937 777 807 msgid "Dashboard statistics." 778 808 msgstr "" 779 809 780 #: includes/REST/Controllers/Version1/DashboardController.php:9 36810 #: includes/REST/Controllers/Version1/DashboardController.php:941 781 811 msgid "Plugin information." 782 812 msgstr "" 783 813 784 #: includes/REST/Controllers/Version1/DashboardController.php:97 1814 #: includes/REST/Controllers/Version1/DashboardController.php:976 785 815 msgid "Statistics data with metrics and their metadata." 786 816 msgstr "" 787 817 788 #: includes/REST/Controllers/Version1/DashboardController.php:9 77818 #: includes/REST/Controllers/Version1/DashboardController.php:982 789 819 msgid "Statistic value." 790 820 msgstr "" 791 821 792 #: includes/REST/Controllers/Version1/DashboardController.php:98 1822 #: includes/REST/Controllers/Version1/DashboardController.php:986 793 823 msgid "Human-readable label." 794 824 msgstr "" 795 825 796 #: includes/REST/Controllers/Version1/DashboardController.php:9 85826 #: includes/REST/Controllers/Version1/DashboardController.php:990 797 827 msgid "Detailed description." 798 828 msgstr "" 799 829 800 #: includes/REST/Controllers/Version1/DashboardController.php:9 89830 #: includes/REST/Controllers/Version1/DashboardController.php:994 801 831 msgid "Icon class or identifier." 802 832 msgstr "" 803 833 804 #: includes/REST/Controllers/Version1/DashboardController.php:99 3834 #: includes/REST/Controllers/Version1/DashboardController.php:998 805 835 msgid "Color theme or class." 806 836 msgstr "" 807 837 808 #: includes/REST/Controllers/Version1/DashboardController.php:10 29838 #: includes/REST/Controllers/Version1/DashboardController.php:1034 809 839 msgid "Export data." 810 840 msgstr "" 811 841 812 #: includes/REST/Controllers/Version1/DashboardController.php:103 3842 #: includes/REST/Controllers/Version1/DashboardController.php:1038 813 843 msgid "Exported settings data." 814 844 msgstr "" 815 845 816 #: includes/REST/Controllers/Version1/DashboardController.php:10 37846 #: includes/REST/Controllers/Version1/DashboardController.php:1042 817 847 msgid "Export format used." 818 848 msgstr "" 819 849 820 #: includes/REST/Controllers/Version1/DashboardController.php:104 2850 #: includes/REST/Controllers/Version1/DashboardController.php:1047 821 851 msgid "Settings groups exported." 822 852 msgstr "" 823 853 824 #: includes/REST/Controllers/Version1/DashboardController.php:10 47854 #: includes/REST/Controllers/Version1/DashboardController.php:1052 825 855 msgid "Number of exported settings." 826 856 msgstr "" 827 857 828 #: includes/REST/Controllers/Version1/DashboardController.php:105 2858 #: includes/REST/Controllers/Version1/DashboardController.php:1057 829 859 msgid "Export timestamp." 830 860 msgstr "" 831 861 832 #: includes/REST/Controllers/Version1/DashboardController.php:10 88862 #: includes/REST/Controllers/Version1/DashboardController.php:1093 833 863 msgid "Import result data." 834 864 msgstr "" 835 865 836 #: includes/REST/Controllers/Version1/DashboardController.php:109 2866 #: includes/REST/Controllers/Version1/DashboardController.php:1097 837 867 msgid "List of successfully imported settings." 838 868 msgstr "" 839 869 840 #: includes/REST/Controllers/Version1/DashboardController.php:1 097870 #: includes/REST/Controllers/Version1/DashboardController.php:1102 841 871 msgid "Import errors by setting name." 842 872 msgstr "" 843 873 844 #: includes/REST/Controllers/Version1/DashboardController.php:110 2874 #: includes/REST/Controllers/Version1/DashboardController.php:1107 845 875 msgid "Total number of successfully imported settings." 846 876 msgstr "" 847 877 848 #: includes/REST/Controllers/Version1/DashboardController.php:11 07878 #: includes/REST/Controllers/Version1/DashboardController.php:1112 849 879 msgid "Whether existing settings were overwritten." 850 880 msgstr "" 851 881 852 #: includes/REST/Controllers/Version1/DashboardController.php:114 2882 #: includes/REST/Controllers/Version1/DashboardController.php:1147 853 883 msgid "Reset operation result." 854 884 msgstr "" 855 885 856 #: includes/REST/Controllers/Version1/DashboardController.php:11 46886 #: includes/REST/Controllers/Version1/DashboardController.php:1151 857 887 msgid "Scope of settings that were reset." 858 888 msgstr "" 859 889 860 #: includes/REST/Controllers/Version1/DashboardController.php:115 2890 #: includes/REST/Controllers/Version1/DashboardController.php:1157 861 891 msgid "Detailed reset result message." 862 892 msgstr "" 863 893 864 #: includes/REST/Controllers/Version1/DashboardController.php:11 56894 #: includes/REST/Controllers/Version1/DashboardController.php:1161 865 895 msgid "Reset operation timestamp." 866 896 msgstr "" 867 897 868 898 #. translators: %d: Number of settings retrieved 869 #: includes/REST/Controllers/Version1/SettingsController.php:120 899 #: includes/REST/Controllers/Version1/SettingsController.php:126 900 #, php-format 870 901 msgid "%d setting retrieved successfully." 871 902 msgid_plural "%d settings retrieved successfully." … … 873 904 msgstr[1] "" 874 905 875 #: includes/REST/Controllers/Version1/SettingsController.php:1 49876 #: includes/REST/Controllers/Version1/SettingsController.php:3 47906 #: includes/REST/Controllers/Version1/SettingsController.php:155 907 #: includes/REST/Controllers/Version1/SettingsController.php:355 877 908 msgid "Setting name is required and must be valid." 878 909 msgstr "" 879 910 880 911 #. translators: %s: setting name 881 #: includes/REST/Controllers/Version1/SettingsController.php:168 912 #: includes/REST/Controllers/Version1/SettingsController.php:176 913 #, php-format 882 914 msgid "Setting \"%s\" not found." 883 915 msgstr "" 884 916 885 917 #. translators: %s: setting name 886 #: includes/REST/Controllers/Version1/SettingsController.php:205 918 #: includes/REST/Controllers/Version1/SettingsController.php:213 919 #, php-format 887 920 msgid "Setting \"%s\" retrieved successfully." 888 921 msgstr "" 889 922 890 #: includes/REST/Controllers/Version1/SettingsController.php:24 0923 #: includes/REST/Controllers/Version1/SettingsController.php:248 891 924 msgid "No settings data provided." 892 925 msgstr "" 893 926 894 #: includes/REST/Controllers/Version1/SettingsController.php: 294927 #: includes/REST/Controllers/Version1/SettingsController.php:302 895 928 msgid "All settings failed to update." 896 929 msgstr "" 897 930 898 #: includes/REST/Controllers/Version1/SettingsController.php:3 04931 #: includes/REST/Controllers/Version1/SettingsController.php:312 899 932 msgid "Some settings failed to update." 900 933 msgstr "" 901 934 902 935 #. translators: %d: Number of settings updated 903 #: includes/REST/Controllers/Version1/SettingsController.php:316 936 #: includes/REST/Controllers/Version1/SettingsController.php:324 937 #, php-format 904 938 msgid "%d setting updated successfully." 905 939 msgid_plural "%d settings updated successfully." … … 907 941 msgstr[1] "" 908 942 909 #: includes/REST/Controllers/Version1/SettingsController.php:3 75943 #: includes/REST/Controllers/Version1/SettingsController.php:389 910 944 msgid "Failed to retrieve updated setting." 911 945 msgstr "" 912 946 913 947 #. translators: %s: setting name 914 #: includes/REST/Controllers/Version1/SettingsController.php:408 948 #: includes/REST/Controllers/Version1/SettingsController.php:422 949 #, php-format 915 950 msgid "Setting \"%s\" updated successfully." 916 951 msgstr "" 917 952 918 #: includes/REST/Controllers/Version1/SettingsController.php: 597953 #: includes/REST/Controllers/Version1/SettingsController.php:617 919 954 msgid "Failed to update setting." 920 955 msgstr "" 921 956 922 957 #. translators: 1: group name, 2: allowed groups 923 #: includes/REST/Controllers/Version1/SettingsController.php:650 958 #: includes/REST/Controllers/Version1/SettingsController.php:670 959 #, php-format 924 960 msgid "Invalid group \"%1$s\". Allowed groups: %2$s" 925 961 msgstr "" 926 962 927 963 #. translators: %s: setting name 928 #: includes/REST/Controllers/Version1/SettingsController.php:673 964 #: includes/REST/Controllers/Version1/SettingsController.php:693 965 #, php-format 929 966 msgid "Access denied for setting \"%s\"." 930 967 msgstr "" 931 968 932 #: includes/REST/Controllers/Version1/SettingsController.php: 698969 #: includes/REST/Controllers/Version1/SettingsController.php:718 933 970 msgid "Invalid setting name format. Expected: group.section.option" 934 971 msgstr "" 935 972 936 #: includes/REST/Controllers/Version1/SettingsController.php: 780973 #: includes/REST/Controllers/Version1/SettingsController.php:800 937 974 msgid "Invalid JSON data provided." 938 975 msgstr "" 939 976 940 977 #. translators: %s: context 941 #: includes/REST/Controllers/Version1/SettingsController.php:790 978 #: includes/REST/Controllers/Version1/SettingsController.php:810 979 #, php-format 942 980 msgid "Failed to %s: An unexpected error occurred." 943 981 msgstr "" 944 982 945 #: includes/REST/Controllers/Version1/SettingsController.php:8 08983 #: includes/REST/Controllers/Version1/SettingsController.php:828 946 984 msgid "Order by field." 947 985 msgstr "" 948 986 949 #: includes/REST/Controllers/Version1/SettingsController.php:8 14987 #: includes/REST/Controllers/Version1/SettingsController.php:834 950 988 msgid "Order direction." 951 989 msgstr "" 952 990 953 #: includes/REST/Controllers/Version1/SettingsController.php:8 20991 #: includes/REST/Controllers/Version1/SettingsController.php:840 954 992 msgid "Number of items to fetch." 955 993 msgstr "" 956 994 957 #: includes/REST/Controllers/Version1/SettingsController.php:8 26995 #: includes/REST/Controllers/Version1/SettingsController.php:846 958 996 msgid "Number of items to skip." 959 997 msgstr "" 960 998 961 #: includes/REST/Controllers/Version1/SettingsController.php:8 32999 #: includes/REST/Controllers/Version1/SettingsController.php:852 962 1000 msgid "Filter settings by group." 963 1001 msgstr "" 964 1002 965 #: includes/REST/Controllers/Version1/SettingsController.php:8 401003 #: includes/REST/Controllers/Version1/SettingsController.php:860 966 1004 msgid "Search settings by name." 967 1005 msgstr "" 968 1006 969 #: includes/REST/Controllers/Version1/SettingsController.php:865 970 #: includes/REST/Controllers/Version1/SettingsController.php:923 1007 #: includes/REST/Controllers/Version1/SettingsController.php:864 1008 #: includes/REST/Controllers/Version1/SettingsController.php:896 1009 msgid "Force refresh data from database bypassing cache." 1010 msgstr "" 1011 1012 #: includes/REST/Controllers/Version1/SettingsController.php:890 1013 #: includes/REST/Controllers/Version1/SettingsController.php:953 971 1014 msgid "Setting name in format: group.section.option" 972 1015 msgstr "" 973 1016 974 #: includes/REST/Controllers/Version1/SettingsController.php: 8921017 #: includes/REST/Controllers/Version1/SettingsController.php:922 975 1018 msgid "Settings data to update as key-value pairs." 976 1019 msgstr "" 977 1020 978 #: includes/REST/Controllers/Version1/SettingsController.php:9 291021 #: includes/REST/Controllers/Version1/SettingsController.php:959 979 1022 msgid "Setting value to update." 980 1023 msgstr "" 981 1024 982 #: includes/REST/Controllers/Version1/SettingsController.php: 9751025 #: includes/REST/Controllers/Version1/SettingsController.php:1005 983 1026 msgid "Settings collection data." 984 1027 msgstr "" 985 1028 986 #: includes/REST/Controllers/Version1/SettingsController.php: 9801029 #: includes/REST/Controllers/Version1/SettingsController.php:1010 987 1030 msgid "Settings as key-value pairs." 988 1031 msgstr "" 989 1032 990 #: includes/REST/Controllers/Version1/SettingsController.php: 9871033 #: includes/REST/Controllers/Version1/SettingsController.php:1017 991 1034 msgid "Number of settings in the collection." 992 1035 msgstr "" 993 1036 994 #: includes/REST/Controllers/Version1/SettingsController.php:10 341037 #: includes/REST/Controllers/Version1/SettingsController.php:1064 995 1038 msgid "Single setting data." 996 1039 msgstr "" 997 1040 998 #: includes/REST/Controllers/Version1/SettingsController.php:10 381041 #: includes/REST/Controllers/Version1/SettingsController.php:1068 999 1042 msgid "Setting name." 1000 1043 msgstr "" 1001 1044 1002 #: includes/REST/Controllers/Version1/SettingsController.php:10 431045 #: includes/REST/Controllers/Version1/SettingsController.php:1073 1003 1046 msgid "Setting value." 1004 1047 msgstr "" 1005 1048 1006 1049 #. translators: %d: Number of tables recreated 1007 #: includes/REST/Controllers/Version1/ToolsController.php:289 1050 #: includes/REST/Controllers/Version1/ToolsController.php:291 1051 #, php-format 1008 1052 msgid "%d database table recreated successfully." 1009 1053 msgid_plural "%d database tables recreated successfully." … … 1011 1055 msgstr[1] "" 1012 1056 1013 #: includes/REST/Controllers/Version1/ToolsController.php:3 381057 #: includes/REST/Controllers/Version1/ToolsController.php:340 1014 1058 msgid "Some tables could not be optimized." 1015 1059 msgstr "" 1016 1060 1017 1061 #. translators: %d: Number of tables optimized 1018 #: includes/REST/Controllers/Version1/ToolsController.php:349 1062 #: includes/REST/Controllers/Version1/ToolsController.php:351 1063 #, php-format 1019 1064 msgid "%d database table optimized successfully." 1020 1065 msgid_plural "%d database tables optimized successfully." … … 1022 1067 msgstr[1] "" 1023 1068 1024 #: includes/REST/Controllers/Version1/ToolsController.php:3 881069 #: includes/REST/Controllers/Version1/ToolsController.php:390 1025 1070 msgid "A migration is already in progress." 1026 1071 msgstr "" 1027 1072 1028 1073 #. translators: %d: Number of migration versions executed 1029 #: includes/REST/Controllers/Version1/ToolsController.php:410 1074 #: includes/REST/Controllers/Version1/ToolsController.php:412 1075 #, php-format 1030 1076 msgid "%d migration version executed successfully." 1031 1077 msgid_plural "%d migration versions executed successfully." … … 1033 1079 msgstr[1] "" 1034 1080 1035 #: includes/REST/Controllers/Version1/ToolsController.php:4 691081 #: includes/REST/Controllers/Version1/ToolsController.php:471 1036 1082 msgid "Migration status retrieved successfully." 1037 1083 msgstr "" 1038 1084 1039 #: includes/REST/Controllers/Version1/ToolsController.php:52 11085 #: includes/REST/Controllers/Version1/ToolsController.php:523 1040 1086 msgid "System diagnostics completed successfully." 1041 1087 msgstr "" 1042 1088 1043 #: includes/REST/Controllers/Version1/ToolsController.php:57 71089 #: includes/REST/Controllers/Version1/ToolsController.php:579 1044 1090 msgid "Log files prepared for download successfully." 1045 1091 msgstr "" 1046 1092 1047 #: includes/REST/Controllers/Version1/ToolsController.php:65 61093 #: includes/REST/Controllers/Version1/ToolsController.php:658 1048 1094 msgid "Failed to repair or optimize table." 1049 1095 msgstr "" 1050 1096 1051 #: includes/REST/Controllers/Version1/ToolsController.php:78 41097 #: includes/REST/Controllers/Version1/ToolsController.php:787 1052 1098 msgid "Dokan plugin is not installed or active." 1053 1099 msgstr "" 1054 1100 1055 #: includes/REST/Controllers/Version1/ToolsController.php: 7981101 #: includes/REST/Controllers/Version1/ToolsController.php:801 1056 1102 msgid "WooCommerce is not installed or active." 1057 1103 msgstr "" 1058 1104 1059 #: includes/REST/Controllers/Version1/ToolsController.php:80 61105 #: includes/REST/Controllers/Version1/ToolsController.php:809 1060 1106 msgid "System requirements met." 1061 1107 msgstr "" 1062 1108 1063 #: includes/REST/Controllers/Version1/ToolsController.php:80 61109 #: includes/REST/Controllers/Version1/ToolsController.php:809 1064 1110 msgid "System requirements not met." 1065 1111 msgstr "" 1066 1112 1067 #: includes/REST/Controllers/Version1/ToolsController.php:87 41113 #: includes/REST/Controllers/Version1/ToolsController.php:877 1068 1114 msgid "Table does not exist" 1069 1115 msgstr "" 1070 1116 1071 #: includes/REST/Controllers/Version1/ToolsController.php: 8971117 #: includes/REST/Controllers/Version1/ToolsController.php:900 1072 1118 msgid "Could not create log directory." 1073 1119 msgstr "" 1074 1120 1075 #: includes/REST/Controllers/Version1/ToolsController.php:92 21121 #: includes/REST/Controllers/Version1/ToolsController.php:925 1076 1122 msgid "Could not write to log file." 1077 1123 msgstr "" 1078 1124 1079 #: includes/REST/Controllers/Version1/ToolsController.php:106 31125 #: includes/REST/Controllers/Version1/ToolsController.php:1066 1080 1126 msgid "Database operation result." 1081 1127 msgstr "" 1082 1128 1083 #: includes/REST/Controllers/Version1/ToolsController.php:10 671129 #: includes/REST/Controllers/Version1/ToolsController.php:1070 1084 1130 msgid "List of successfully processed tables." 1085 1131 msgstr "" 1086 1132 1087 #: includes/REST/Controllers/Version1/ToolsController.php:107 21133 #: includes/REST/Controllers/Version1/ToolsController.php:1075 1088 1134 msgid "Failed operations by table name." 1089 1135 msgstr "" 1090 1136 1091 #: includes/REST/Controllers/Version1/ToolsController.php:10 771137 #: includes/REST/Controllers/Version1/ToolsController.php:1080 1092 1138 msgid "Total number of successfully processed tables." 1093 1139 msgstr "" 1094 1140 1095 #: includes/REST/Controllers/Version1/ToolsController.php:111 31141 #: includes/REST/Controllers/Version1/ToolsController.php:1116 1096 1142 msgid "Migration operation result." 1097 1143 msgstr "" 1098 1144 1099 #: includes/REST/Controllers/Version1/ToolsController.php:11 171145 #: includes/REST/Controllers/Version1/ToolsController.php:1120 1100 1146 msgid "List of executed migration versions." 1101 1147 msgstr "" 1102 1148 1103 #: includes/REST/Controllers/Version1/ToolsController.php:112 21149 #: includes/REST/Controllers/Version1/ToolsController.php:1125 1104 1150 msgid "Total number of executed migrations." 1105 1151 msgstr "" 1106 1152 1107 #: includes/REST/Controllers/Version1/ToolsController.php:11 271153 #: includes/REST/Controllers/Version1/ToolsController.php:1130 1108 1154 msgid "Migration execution timestamp." 1109 1155 msgstr "" 1110 1156 1111 #: includes/REST/Controllers/Version1/ToolsController.php:116 31157 #: includes/REST/Controllers/Version1/ToolsController.php:1166 1112 1158 msgid "Migration status information." 1113 1159 msgstr "" 1114 1160 1115 #: includes/REST/Controllers/Version1/ToolsController.php:11 671161 #: includes/REST/Controllers/Version1/ToolsController.php:1170 1116 1162 msgid "Whether migration is currently running." 1117 1163 msgstr "" 1118 1164 1119 #: includes/REST/Controllers/Version1/ToolsController.php:117 11165 #: includes/REST/Controllers/Version1/ToolsController.php:1174 1120 1166 msgid "Whether migration is needed." 1121 1167 msgstr "" 1122 1168 1123 #: includes/REST/Controllers/Version1/ToolsController.php:117 51169 #: includes/REST/Controllers/Version1/ToolsController.php:1178 1124 1170 msgid "Current plugin version." 1125 1171 msgstr "" 1126 1172 1127 #: includes/REST/Controllers/Version1/ToolsController.php:11 791173 #: includes/REST/Controllers/Version1/ToolsController.php:1182 1128 1174 msgid "Historical migration data." 1129 1175 msgstr "" 1130 1176 1131 #: includes/REST/Controllers/Version1/ToolsController.php:118 31177 #: includes/REST/Controllers/Version1/ToolsController.php:1186 1132 1178 msgid "Available migration versions." 1133 1179 msgstr "" 1134 1180 1135 #: includes/REST/Controllers/Version1/ToolsController.php:11 881181 #: includes/REST/Controllers/Version1/ToolsController.php:1191 1136 1182 msgid "Last status check timestamp." 1137 1183 msgstr "" 1138 1184 1139 #: includes/REST/Controllers/Version1/ToolsController.php:122 41185 #: includes/REST/Controllers/Version1/ToolsController.php:1227 1140 1186 msgid "System diagnostics information." 1141 1187 msgstr "" 1142 1188 1143 #: includes/REST/Controllers/Version1/ToolsController.php:12 281189 #: includes/REST/Controllers/Version1/ToolsController.php:1231 1144 1190 msgid "WordPress environment information." 1145 1191 msgstr "" 1146 1192 1147 #: includes/REST/Controllers/Version1/ToolsController.php:123 21193 #: includes/REST/Controllers/Version1/ToolsController.php:1235 1148 1194 msgid "PHP environment information." 1149 1195 msgstr "" 1150 1196 1151 #: includes/REST/Controllers/Version1/ToolsController.php:123 61197 #: includes/REST/Controllers/Version1/ToolsController.php:1239 1152 1198 msgid "Server environment information." 1153 1199 msgstr "" 1154 1200 1155 #: includes/REST/Controllers/Version1/ToolsController.php:124 01201 #: includes/REST/Controllers/Version1/ToolsController.php:1243 1156 1202 msgid "Dokan Kits specific information." 1157 1203 msgstr "" 1158 1204 1159 #: includes/REST/Controllers/Version1/ToolsController.php:124 41205 #: includes/REST/Controllers/Version1/ToolsController.php:1247 1160 1206 msgid "Dokan plugin information." 1161 1207 msgstr "" 1162 1208 1163 #: includes/REST/Controllers/Version1/ToolsController.php:12 481209 #: includes/REST/Controllers/Version1/ToolsController.php:1251 1164 1210 msgid "WooCommerce information." 1165 1211 msgstr "" 1166 1212 1167 #: includes/REST/Controllers/Version1/ToolsController.php:125 21213 #: includes/REST/Controllers/Version1/ToolsController.php:1255 1168 1214 msgid "System requirements check result." 1169 1215 msgstr "" 1170 1216 1171 #: includes/REST/Controllers/Version1/ToolsController.php:125 61217 #: includes/REST/Controllers/Version1/ToolsController.php:1259 1172 1218 msgid "Whether system check passed." 1173 1219 msgstr "" 1174 1220 1175 #: includes/REST/Controllers/Version1/ToolsController.php:126 01221 #: includes/REST/Controllers/Version1/ToolsController.php:1263 1176 1222 msgid "System check message." 1177 1223 msgstr "" 1178 1224 1179 #: includes/REST/Controllers/Version1/ToolsController.php:1 2971225 #: includes/REST/Controllers/Version1/ToolsController.php:1300 1180 1226 msgid "Log file information." 1181 1227 msgstr "" 1182 1228 1183 #: includes/REST/Controllers/Version1/ToolsController.php:130 11229 #: includes/REST/Controllers/Version1/ToolsController.php:1304 1184 1230 msgid "Generated log file name." 1185 1231 msgstr "" 1186 1232 1187 #: includes/REST/Controllers/Version1/ToolsController.php:130 51233 #: includes/REST/Controllers/Version1/ToolsController.php:1308 1188 1234 msgid "URL to download the log file." 1189 1235 msgstr "" 1190 1236 1191 #: includes/REST/Controllers/Version1/ToolsController.php:131 01237 #: includes/REST/Controllers/Version1/ToolsController.php:1313 1192 1238 msgid "Server path to the log file." 1193 1239 msgstr "" 1194 1240 1195 #: includes/REST/Controllers/Version1/ToolsController.php:131 41241 #: includes/REST/Controllers/Version1/ToolsController.php:1317 1196 1242 msgid "Human-readable file size." 1197 1243 msgstr "" 1198 1244 1199 #: includes/REST/Controllers/Version1/ToolsController.php:13 181245 #: includes/REST/Controllers/Version1/ToolsController.php:1321 1200 1246 msgid "File creation date identifier." 1201 1247 msgstr "" 1202 1248 1203 #: includes/REST/Controllers/Version1/ToolsController.php:132 21249 #: includes/REST/Controllers/Version1/ToolsController.php:1325 1204 1250 msgid "File creation timestamp." 1205 1251 msgstr "" … … 1215 1261 #. translators: %s: capability name 1216 1262 #: includes/REST/Middleware/Authentication.php:278 1263 #, php-format 1217 1264 msgid "You do not have the required capability: %s" 1218 1265 msgstr "" … … 1228 1275 #. translators: %s: field name 1229 1276 #: includes/REST/Middleware/Validation.php:551 1277 #, php-format 1230 1278 msgid "The %s field must be a string." 1231 1279 msgstr "" … … 1233 1281 #. translators: %s: field name 1234 1282 #: includes/REST/Middleware/Validation.php:571 1283 #, php-format 1235 1284 msgid "The %s field must be a number." 1236 1285 msgstr "" … … 1238 1287 #. translators: %s: field name 1239 1288 #: includes/REST/Middleware/Validation.php:611 1289 #, php-format 1240 1290 msgid "The %s field must be true or false." 1241 1291 msgstr "" … … 1243 1293 #. translators: 1: field name, 2: minimum value 1244 1294 #: includes/REST/Middleware/Validation.php:686 1295 #, php-format 1245 1296 msgid "The %1$s field must be at least %2$d." 1246 1297 msgstr "" … … 1248 1299 #. translators: 1: field name, 2: maximum length 1249 1300 #: includes/REST/Middleware/Validation.php:713 1301 #, php-format 1250 1302 msgid "The %1$s field must not exceed %2$d characters." 1251 1303 msgstr "" … … 1253 1305 #. translators: 1: field name, 2: maximum value 1254 1306 #: includes/REST/Middleware/Validation.php:722 1307 #, php-format 1255 1308 msgid "The %1$s field must not exceed %2$d." 1256 1309 msgstr "" … … 1258 1311 #. translators: %s: field name 1259 1312 #: includes/REST/Middleware/Validation.php:765 1313 #, php-format 1260 1314 msgid "The %s field must be an array." 1261 1315 msgstr "" … … 1263 1317 #. translators: 1: field name, 2: date format 1264 1318 #: includes/REST/Middleware/Validation.php:793 1319 #, php-format 1265 1320 msgid "The %1$s field must be a valid date in the format %2$s." 1266 1321 msgstr "" … … 1268 1323 #. translators: %s: field name 1269 1324 #: includes/REST/Middleware/Validation.php:840 1325 #, php-format 1270 1326 msgid "The %s field may only contain letters." 1271 1327 msgstr "" … … 1273 1329 #. translators: %s: field name 1274 1330 #: includes/REST/Middleware/Validation.php:860 1331 #, php-format 1275 1332 msgid "The %s field may only contain letters and numbers." 1276 1333 msgstr "" … … 1279 1336 #: includes/REST/Middleware/Validation.php:884 1280 1337 #: includes/REST/Middleware/Validation.php:893 1338 #, php-format 1281 1339 msgid "The %s field must be a valid JSON string." 1282 1340 msgstr "" … … 1284 1342 #. translators: %s: field name 1285 1343 #: includes/REST/Middleware/Validation.php:924 1344 #, php-format 1286 1345 msgid "The selected %s is invalid." 1287 1346 msgstr "" … … 1289 1348 #. translators: %s: field name 1290 1349 #: includes/REST/Middleware/Validation.php:949 1350 #, php-format 1291 1351 msgid "The %s field must be a file." 1292 1352 msgstr "" … … 1294 1354 #. translators: %s: field name 1295 1355 #: includes/REST/Middleware/Validation.php:957 1356 #, php-format 1296 1357 msgid "The %s field must be a valid uploaded file." 1297 1358 msgstr "" … … 1299 1360 #. translators: %s: field name 1300 1361 #: includes/REST/Middleware/Validation.php:989 1362 #, php-format 1301 1363 msgid "The %s field must be an image." 1302 1364 msgstr "" … … 1304 1366 #. translators: %s: field name 1305 1367 #: includes/REST/Middleware/Validation.php:1013 1368 #, php-format 1306 1369 msgid "The %s confirmation field is required." 1307 1370 msgstr "" … … 1309 1372 #. translators: %s: field name 1310 1373 #: includes/REST/Middleware/Validation.php:1021 1374 #, php-format 1311 1375 msgid "The %s confirmation does not match." 1312 1376 msgstr "" … … 1314 1378 #. translators: %s: field name 1315 1379 #: includes/REST/Middleware/Validation.php:1053 1380 #, php-format 1316 1381 msgid "The %s has already been taken." 1317 1382 msgstr "" … … 1319 1384 #. translators: %1$s: Current PHP version, %2$s: Required PHP version. 1320 1385 #: includes/Setup/SystemCheck.php:175 1386 #, php-format 1321 1387 msgid "Current PHP version (%1$s) does not meet the minimum required version (%2$s)." 1322 1388 msgstr "" … … 1324 1390 #. translators: %1$s: Current WordPress version, %2$s: Required WordPress version. 1325 1391 #: includes/Setup/SystemCheck.php:186 1392 #, php-format 1326 1393 msgid "Current WordPress version (%1$s) does not meet the minimum required version (%2$s)." 1327 1394 msgstr "" … … 1329 1396 #. translators: %1$s: Current Dokan version, %2$s: Required Dokan version. 1330 1397 #: includes/Setup/SystemCheck.php:197 1398 #, php-format 1331 1399 msgid "Current Dokan version (%1$s) does not meet the minimum required version (%2$s)." 1332 1400 msgstr "" … … 1338 1406 #. translators: %s: PHP extension name. 1339 1407 #: includes/Setup/SystemCheck.php:211 1408 #, php-format 1340 1409 msgid "Required PHP extension %s is missing." 1341 1410 msgstr "" … … 1907 1976 #. translators: %s: Page title 1908 1977 #: src/admin/components/layout/index.js:51 1978 #, js-format 1909 1979 msgid "%s - Dokan Kits" 1910 1980 msgstr "" -
dokan-kits/trunk/readme.txt
r3335424 r3342033 5 5 Requires at least: 6.4.2 6 6 Tested up to: 6.8 7 Stable tag: 3.0. 57 Stable tag: 3.0.6 8 8 Requires PHP: 7.4 9 9 License: GPLv2 or later … … 122 122 == Changelog == 123 123 124 = 3.0.6 - Aug 09, 2025 = 125 * Fix: Remove caching logic from template manager and update exception types in settings element 126 * Fix: Remove unused cache group properties and simplify cache handling in data store classes 127 * Fix: Refactor settings retrieval to use SettingsDataStore for improved consistency and maintainability 128 * Fix: Refactor SettingsDataStore read method, improve validation, enhance exception handling, and add return type declarations 129 * Fix: Update PHPUnit configuration and IDE settings for improved test suite handling and compatibility 130 * Fix: Enhance SettingsDataStore validation and error handling, introduce specific exceptions, and improve code consistency 131 * Fix: Simplify callback usage in SettingsControllerTest to improve readability and reduce verbosity 132 * Fix: Improve CSS output for product fields by enhancing element identification and escaping logic 133 * Fix: Remove unused SettingsDataStore import from SettingsController 134 * Fix: Replace outdated Logger unit tests with Settings model tests, introduce enhanced validation, better error handling, and force cache bypass logic for Settings API 135 * Fix: Improve settings management by ensuring database consistency, adding validation, enhancing error handling, and introducing force cache bypass functionality 136 * Fix: Resolve critical issue in plugin dependency management 137 124 138 = 3.0.5 - Jul 28, 2025 = 125 139 * Fix: Resolve an critical issue on plugin dependency management. -
dokan-kits/trunk/vendor/composer/autoload_files.php
r3316541 r3342033 8 8 return array( 9 9 '01291fb7cfd94d60789aab7b301a2759' => $baseDir . '/includes/functions.php', 10 '35307db28518236067ef9fbb750f5259' => $baseDir . '/includes/functions-settings.php',11 10 ); -
dokan-kits/trunk/vendor/composer/autoload_static.php
r3316541 r3342033 9 9 public static $files = array ( 10 10 '01291fb7cfd94d60789aab7b301a2759' => __DIR__ . '/../..' . '/includes/functions.php', 11 '35307db28518236067ef9fbb750f5259' => __DIR__ . '/../..' . '/includes/functions-settings.php',12 11 ); 13 12 -
dokan-kits/trunk/vendor/composer/installed.php
r3335424 r3342033 4 4 'pretty_version' => 'dev-trunk', 5 5 'version' => 'dev-trunk', 6 'reference' => ' 5d7b2d955c641f3cd4ead22335b127cad4b6d33b',6 'reference' => '97b7d859902423feca4890bc84a4a33701648445', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-trunk', 15 15 'version' => 'dev-trunk', 16 'reference' => ' 5d7b2d955c641f3cd4ead22335b127cad4b6d33b',16 'reference' => '97b7d859902423feca4890bc84a4a33701648445', 17 17 'type' => 'wordpress-plugin', 18 18 'install_path' => __DIR__ . '/../../',
Note: See TracChangeset
for help on using the changeset viewer.