Plugin Directory

Changeset 3342033


Ignore:
Timestamp:
08/09/2025 01:46:15 PM (8 months ago)
Author:
tanvirh
Message:

setting saved issue on caching problem

Location:
dokan-kits/trunk
Files:
23 edited

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`
    22from {
    33  transform: scale(0) rotate(45deg);
     
    77 transform: scale(1) rotate(45deg);
    88  opacity: 1;
    9 }`,hs=Xr`
     9}`,ps=Qr`
    1010from {
    1111  transform: scale(0);
     
    1515  transform: scale(1);
    1616  opacity: 1;
    17 }`,ps=Xr`
     17}`,fs=Qr`
    1818from {
    1919  transform: scale(0) rotate(90deg);
     
    2323  transform: scale(1) rotate(90deg);
    2424    opacity: 1;
    25 }`,fs=Qr("div")`
     25}`,xs=es("div")`
    2626  width: 20px;
    2727  opacity: 0;
     
    3232  transform: rotate(45deg);
    3333
    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)
    3535    forwards;
    3636  animation-delay: 100ms;
     
    3939  &:before {
    4040    content: '';
    41     animation: ${hs} 0.15s ease-out forwards;
     41    animation: ${ps} 0.15s ease-out forwards;
    4242    animation-delay: 150ms;
    4343    position: absolute;
     
    5252
    5353  &:before {
    54     animation: ${ps} 0.15s ease-out forwards;
     54    animation: ${fs} 0.15s ease-out forwards;
    5555    animation-delay: 180ms;
    5656    transform: rotate(90deg);
    5757  }
    58 `,xs=Xr`
     58`,gs=Qr`
    5959  from {
    6060    transform: rotate(0deg);
     
    6363    transform: rotate(360deg);
    6464  }
    65 `,gs=Qr("div")`
     65`,bs=es("div")`
    6666  width: 12px;
    6767  height: 12px;
     
    7171  border-color: ${e=>e.secondary||"#e0e0e0"};
    7272  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`
    7575from {
    7676  transform: scale(0) rotate(45deg);
     
    8080  transform: scale(1) rotate(45deg);
    8181    opacity: 1;
    82 }`,ys=Xr`
     82}`,ws=Qr`
    83830% {
    8484    height: 0;
     
    9494  opacity: 1;
    9595  height: 10px;
    96 }`,ws=Qr("div")`
     96}`,vs=es("div")`
    9797  width: 20px;
    9898  opacity: 0;
     
    103103  transform: rotate(45deg);
    104104
    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)
    106106    forwards;
    107107  animation-delay: 100ms;
     
    109109    content: '';
    110110    box-sizing: border-box;
    111     animation: ${ys} 0.2s ease-out forwards;
     111    animation: ${ws} 0.2s ease-out forwards;
    112112    opacity: 0;
    113113    animation-delay: 200ms;
     
    121121    width: 6px;
    122122  }
    123 `,vs=Qr("div")`
     123`,js=es("div")`
    124124  position: absolute;
    125 `,js=Qr("div")`
     125`,_s=es("div")`
    126126  position: relative;
    127127  display: flex;
     
    130130  min-width: 20px;
    131131  min-height: 20px;
    132 `,_s=Xr`
     132`,Ns=Qr`
    133133from {
    134134  transform: scale(0.6);
     
    138138  transform: scale(1);
    139139  opacity: 1;
    140 }`,Ns=Qr("div")`
     140}`,Cs=es("div")`
    141141  position: relative;
    142142  transform: scale(0.6);
    143143  opacity: 0.4;
    144144  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)
    146146    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")`
    148148  display: flex;
    149149  align-items: center;
     
    157157  padding: 8px 10px;
    158158  border-radius: 8px;
    159 `,Ds=Qr("div")`
     159`,Ms=es("div")`
    160160  display: flex;
    161161  justify-content: center;
     
    164164  flex: 1 1 auto;
    165165  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`
    167167  z-index: 9999;
    168168  > * {
    169169    pointer-events: auto;
    170170  }
    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  
    1212 * Plugin URI:      https://wordpress.org/plugins/dokan-kits
    1313 * 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.5
     14 * Version:         3.0.6
    1515 * Author:          WPIntegrity
    1616 * Author URI:      https://wpintegrity.com/
     
    3636
    3737// Define plugin constants.
    38 define( 'DOKAN_KITS_VERSION', '3.0.5' );
     38define( 'DOKAN_KITS_VERSION', '3.0.6' );
    3939define( 'DOKAN_KITS_FILE', __FILE__ );
    4040define( 'DOKAN_KITS_BASENAME', plugin_basename( __FILE__ ) );
  • dokan-kits/trunk/includes/Admin/Dashboard/Components/SettingsElement.php

    r3335399 r3342033  
    1010
    1111use Exception;
     12use RuntimeException;
    1213
    1314/**
     
    361362     *
    362363     * @return SettingsElement
     364     * @throws Exception If value is not valid.
    363365     */
    364366    public function set_value( $value ): SettingsElement {
     
    427429     *
    428430     * @return SettingsElement
    429      * @throws Exception If children are not attachable.
     431     * @throws RuntimeException If children are not attachable.
    430432     */
    431433    public function set_children( array $children ): SettingsElement {
    432434        if ( ! $this->is_support_children() ) {
    433435            // 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() ) ) );
    435437        }
    436438
     
    508510     *
    509511     * @return $this
    510      * @throws \RuntimeException If child element is not attachable.
     512     * @throws RuntimeException If child element is not attachable.
    511513     */
    512514    public function add( SettingsElement $element ): SettingsElement {
    513515        if ( ! $this->is_support_children() ) {
    514516            // 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() ) ) );
    516518        }
    517519
     
    529531     *
    530532     * @return SettingsElement
    531      * @throws \RuntimeException If Element is not removable.
     533     * @throws RuntimeException If Element is not removable.
    532534     */
    533535    public function remove( SettingsElement $element ): SettingsElement {
    534536        if ( ! $this->is_support_children() ) {
    535537            // 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() ) ) );
    537539        }
    538540
    539541        $this->children = array_filter(
    540542            $this->children,
    541             static fn($child) => $child !== $element
     543            static fn( $child ) => $child !== $element
    542544        );
    543545        return $this;
     
    628630            }
    629631        }
     632
    630633        return $data;
    631634    }
  • dokan-kits/trunk/includes/Admin/Dashboard/Dashboard.php

    r3335399 r3342033  
    311311        add_filter(
    312312            'dokan_kits_admin_script_data',
    313             fn($data) => array_merge_recursive(
    314                     $this->settings(),
    315                     $data
    316                 )
     313            fn( $data ) => array_merge_recursive(
     314                $this->settings(),
     315                $data
     316            )
    317317        );
    318318    }
  • dokan-kits/trunk/includes/Core/Data/DataStore.php

    r3335399 r3342033  
    5757    protected $internal_meta_keys = array();
    5858
    59     /**
    60      * Cache group for this object type
    61      *
    62      * @var string
    63      */
    64     protected $cache_group = 'dokan-kits-data';
    6559
    6660    /**
     
    156150     * Prepare value from database for use
    157151     *
    158      * @param string $value Value from database.
     152     * @param string|array|mixed $value Value from database.
    159153     *
    160154     * @return mixed
    161155     */
    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
    163162        if ( is_serialized( $value ) ) {
    164163            $prepared_value = maybe_unserialize( $value );
     
    185184     * Check if a string is JSON
    186185     *
    187      * @param string $string_data String to check.
     186     * @param mixed $string_data String to check.
    188187     *
    189188     * @return bool
    190189     */
    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 ) ) {
    193192            return false;
    194193        }
     
    221220        $id = $object->get_id();
    222221        if ( $id ) {
    223             wp_cache_delete( $id, $this->cache_group );
    224 
    225222            /**
    226223             * Action that fires after clearing caches for an object.
     
    269266     * Convert string date to timestamp
    270267     *
    271      * @param string $time_string Time string.
     268     * @param string|int|null $time_string Time string.
    272269     *
    273270     * @return int
    274271     */
    275272    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
    276281        return wc_string_to_timestamp( $time_string );
    277282    }
     
    411416    }
    412417
    413     /**
    414      * Get cache group
    415      *
    416      * @return string Cache group.
    417      */
    418     public function get_cache_group(): string {
    419         return $this->cache_group;
    420     }
    421418
    422419    /**
  • dokan-kits/trunk/includes/Core/Data/Model.php

    r3335399 r3342033  
    2929    protected $object_type = 'model';
    3030
    31     /**
    32      * Cache group for this object type.
    33      *
    34      * @var string
    35      */
    36     protected $cache_group = 'dokan-kits-models';
    3731
    3832    /**
     
    108102     * Save should create or update based on object existence.
    109103     *
     104     * @throws \Exception When save operation fails.
    110105     * @return int
    111106     */
    112107    public function save(): int {
    113108        if ( ! $this->data_store ) {
    114             return $this->get_id();
     109            return (int) $this->get_id();
    115110        }
    116111
     
    126121
    127122        if ( ! $should_save ) {
    128             return $this->get_id();
     123            return (int) $this->get_id();
    129124        }
    130125
     
    152147        do_action( 'dokan_kits_after_' . $this->object_type . '_object_save', $this, $this->data_store );
    153148
    154         return $this->get_id();
     149        return (int) $this->get_id();
    155150    }
    156151
     
    158153     * Delete an object, set the ID to 0, and return result.
    159154     *
    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.
    162158     * @return bool result.
    163159     */
  • dokan-kits/trunk/includes/Core/Data/Models/Settings.php

    r3335399 r3342033  
    3838    protected $object_type = 'settings';
    3939
    40     /**
    41      * Cache group for this object type
    42      *
    43      * @var string
    44      */
    45     protected $cache_group = 'dokan-kits-settings';
    4640
    4741    /**
     
    5549    public function __construct( $data = array(), $read = 0 ) {
    5650        parent::__construct( $read );
     51
     52        // Ensure data is an array.
     53        if ( ! is_array( $data ) ) {
     54            $data = array();
     55        }
    5756
    5857        // If data is not an array, convert it to an array.
     
    7170        $this->set_id( $data['id'] ?? 0 );
    7271        $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'] ?? '' );
    7574        $this->set_date_created( $data['date_created'] ?? 0 );
    7675        $this->set_date_modified( $data['date_modified'] ?? 0 );
    7776
    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        }
    7985
    8086        /**
     
    162168     *
    163169     * @return void
     170     * @throws \InvalidArgumentException When name is empty.
    164171     */
    165172    public function set_name( string $name ): void {
     
    435442     */
    436443    public function to_array(): array {
     444        $date_created  = $this->get_date_created();
     445        $date_modified = $this->get_date_modified();
     446
    437447        return array(
    438448            'id'            => $this->get_id(),
     
    440450            'value'         => $this->get_value(),
    441451            '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,
    444454        );
    445455    }
  • dokan-kits/trunk/includes/Core/Data/Stores/SettingsDataStore.php

    r3335399 r3342033  
    4848    );
    4949
    50     /**
    51      * Settings cache group
    52      *
    53      * @var string
    54      */
    55     protected $cache_group = 'dokan-kits-settings';
    5650
    5751    /**
     
    6155     * @since 3.0.0
    6256     */
    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    }
    64125
    65126    /**
     
    69130     *
    70131     * @return void
     132     * @throws \InvalidArgumentException Throw errors when the settings name is empty.
     133     * @throws \RuntimeException Throw errors when the settings name is empty.
    71134     */
    72135    public function create( &$settings ): void {
    73136        global $wpdb;
     137
     138        // Validate required fields.
     139        if ( empty( $settings->get_name( 'edit' ) ) ) {
     140            throw new \InvalidArgumentException( 'Settings name cannot be empty' );
     141        }
    74142
    75143        if ( ! $settings->get_date_created( 'edit' ) ) {
     
    112180
    113181        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' );
    120183        }
    121184
     
    127190        $settings->save_meta_data();
    128191
    129         $this->clear_caches( $settings );
    130 
    131192        /**
    132193         * Action that fires after creating a settings record
     
    142203
    143204    /**
    144      * Method to read settings from the database
     205     * Method to update settings in the database
    145206     *
    146207     * @param Settings $settings Settings object.
    147208     *
    148209     * @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.
    207212     */
    208213    public function update( &$settings ): void {
    209214        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        }
    210224
    211225        // Set updated timestamp.
     
    246260
    247261        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' );
    254263        }
    255264
     
    258267        // Update meta data.
    259268        $settings->save_meta_data();
    260 
    261         $this->clear_caches( $settings );
    262269
    263270        /**
     
    280287     *
    281288     * @return bool
     289     * @throws \RuntimeException Throw errors when the settings name is empty.
    282290     */
    283291    public function delete( &$settings, $args = array() ): bool {
     
    341349
    342350            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' );
    349352            }
    350353
     
    375378        }
    376379
    377         $this->clear_caches( $settings );
    378 
    379380        return true;
    380381    }
    381382
    382383    /**
     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    /**
    383424     * Helper method to get settings by ID
    384425     *
     
    387428     * @return Settings|null Settings object or null if not found.
    388429     */
    389     public function get_settings_by_id( int $settings_id ) {
     430    public function get_settings_by_id( int $settings_id ): ?Settings {
    390431        global $wpdb;
    391432
     
    394435        }
    395436
    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
    429442            )
    430443        );
    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 );
    437450
    438451        /**
     
    449462    }
    450463
    451     /**
    452      * Prepare value from database for use
    453      *
    454      * @param string|array $value Value from database.
    455      *
    456      * @return mixed
    457      */
    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.0
    472          *
    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 JSON
    482      *
    483      * @param string|array $string_data String to check.
    484      *
    485      * @return bool
    486      */
    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     }
    509464
    510465    /**
     
    518473        global $wpdb;
    519474
     475        // Sanitize the name to prevent SQL injection.
     476        $name = sanitize_key( $name );
     477
    520478        if ( empty( $name ) ) {
    521479            return null;
    522480        }
    523481
    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
    564487            )
    565488        );
    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 );
    571495
    572496        /**
     
    591515     */
    592516    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 
    607517        /**
    608518         * Action that fires after clearing caches for a settings object
     
    619529     * Get all settings
    620530     *
    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     * }
    622541     *
    623542     * @return array<Settings>
     
    629548            $args,
    630549            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,
    636556            )
    637557        );
     
    647567        $args = (array) apply_filters( 'dokan_kits_settings_get_all_args', $args, $this );
    648568
    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
    690615
    691616        $settings_objects = array_map(
    692             static fn($data) => new Settings( (array) $data ),
     617            fn( $data ) => $this->create_settings_from_data( $data ),
    693618            $results
    694619        );
     
    894819
    895820        // 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;
    897822
    898823        $settings->set_value( $new_values );
  • dokan-kits/trunk/includes/Core/TemplateManager.php

    r3335399 r3342033  
    229229        $template = $this->sanitize_template_name( $template );
    230230
    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 
    238231        // 1. First check theme using WordPress core locate_template
    239232        $theme_templates = $this->build_theme_paths( array( $template ) );
     
    244237            $located = $this->locate_in_plugin_paths( array( $template ) );
    245238        }
    246 
    247         // Cache result using WordPress transients.
    248         set_transient( $cache_key, $located, HOUR_IN_SECONDS );
    249239
    250240        return $located;
  • dokan-kits/trunk/includes/Features/Feature.php

    r3335399 r3342033  
    99namespace DokanKits\Features;
    1010
     11use DokanKits\Core\Data\Models\Settings;
     12use DokanKits\Core\Data\Stores\SettingsDataStore;
    1113use DokanKits\Core\Interfaces\Hookable;
    1214
     
    181183     */
    182184    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        }
    184195
    185196        /**
  • dokan-kits/trunk/includes/Features/Product/ProductFields.php

    r3335399 r3342033  
    181181
    182182        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            );
    184189        }
    185190    }
     
    211216        foreach ( $this->fields as $field ) {
    212217            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; }';
    214219            }
    215220        }
  • dokan-kits/trunk/includes/REST/Controllers/Version1/DashboardController.php

    r3335399 r3342033  
    483483     */
    484484    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() ) );
    486487
    487488        $dashboard_data = array(
     
    518519        }
    519520
    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() ) );
    521523        $total_features  = 0;
    522524        $active_features = 0;
     
    619621     */
    620622    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 ) );
    622625
    623626        $export_data = array();
     
    678681                $name = $this->sanitize_key( $name );
    679682
    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 );
    681685
    682686                if ( null === $setting ) {
     
    723727     */
    724728    protected function reset_settings_data( string $scope ): array {
     729        $settings_store = dokan_kits_get_container()->get( SettingsDataStore::class );
    725730        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() );
    727732            $message = __( 'All settings have been reset to defaults.', 'dokan-kits' );
    728733        } else {
    729             dokan_kits_reset_settings_by_name( $scope );
     734            $settings_store->reset_by_name( $scope );
    730735            /* translators: %s: settings group name */
    731736            $message = sprintf( __( '%s settings have been reset to defaults.', 'dokan-kits' ), ucfirst( $scope ) );
  • dokan-kits/trunk/includes/REST/Controllers/Version1/SettingsController.php

    r3335399 r3342033  
    1212use DokanKits\Core\Data\Stores\SettingsDataStore;
    1313use DokanKits\REST\Controllers\Controller;
     14use Exception;
    1415use JsonException;
     16use Throwable;
    1517use WP_Error;
    1618use WP_REST_Request;
     
    98100            $query_args = $this->prepare_query_args( $request );
    99101
    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 );
    102108
    103109            // Prepare response data.
     
    128134            );
    129135
    130         } catch ( \Exception $e ) {
     136        } catch ( Exception $e ) {
    131137            return $this->handle_exception( $e, 'get_settings' );
    132138        }
     
    159165            }
    160166
    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 );
    163171
    164172            if ( null === $setting ) {
     
    208216            );
    209217
    210         } catch ( \Exception $e ) {
     218        } catch ( Exception $e ) {
    211219            return $this->handle_exception( $e, 'get_setting' );
    212220        }
     
    324332            );
    325333
    326         } catch ( \Exception $e ) {
     334        } catch ( Exception $e ) {
    327335            return $this->handle_exception( $e, 'update_settings' );
    328336        }
     
    369377            }
    370378
    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            }
    373387            if ( ! $updated_setting instanceof Settings ) {
    374388                return $this->error(
     
    411425            );
    412426
    413         } catch ( \Exception $e ) {
     427        } catch ( Exception $e ) {
    414428            return $this->handle_exception( $e, 'update_setting' );
    415429        }
     
    481495        foreach ( $settings as $setting ) {
    482496            $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'] );
    484498        }
    485499
     
    559573     *
    560574     * @return true|WP_Error True on success, WP_Error on failure.
     575     * @throws Exception When an error occurs during the update process.
    561576     */
    562577    protected function update_single_setting_internal( string $setting_name, $setting_value ) {
     
    586601        $sanitized_value = $this->sanitize_setting_value( $setting_value );
    587602
    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();
    595615        if ( ! $updated ) {
    596616            return $this->error(
     
    760780     * @since 3.0.0
    761781     *
    762      * @param \Throwable $exception The exception.
    763      * @param string     $context   The context.
     782     * @param Throwable $exception The exception.
     783     * @param string    $context   The context.
    764784     *
    765785     * @return WP_Error Error response.
    766786     */
    767     protected function handle_exception( \Throwable $exception, string $context = '' ): WP_Error {
     787    protected function handle_exception( Throwable $exception, string $context = '' ): WP_Error {
    768788        // Log the exception.
    769789        dokan_kits_logger()->error(
     
    805825    public function get_collection_params(): array {
    806826        $params = array(
    807             'orderby'  => array(
     827            'orderby'       => array(
    808828                'description' => __( 'Order by field.', 'dokan-kits' ),
    809829                'type'        => 'string',
     
    811831                'enum'        => array( 'id', 'name' ),
    812832            ),
    813             'order'    => array(
     833            'order'         => array(
    814834                'description' => __( 'Order direction.', 'dokan-kits' ),
    815835                'type'        => 'string',
     
    817837                'enum'        => array( 'ASC', 'DESC' ),
    818838            ),
    819             'per_page' => array(
     839            'per_page'      => array(
    820840                'description' => __( 'Number of items to fetch.', 'dokan-kits' ),
    821841                'type'        => 'integer',
     
    823843                'minimum'     => -1,
    824844            ),
    825             'offset'   => array(
     845            'offset'        => array(
    826846                'description' => __( 'Number of items to skip.', 'dokan-kits' ),
    827847                'type'        => 'integer',
     
    829849                'minimum'     => 0,
    830850            ),
    831             'group'    => array(
     851            'group'         => array(
    832852                'description' => __( 'Filter settings by group.', 'dokan-kits' ),
    833853                'type'        => array( 'string', 'array' ),
     
    837857                ),
    838858            ),
    839             'search'   => array(
     859            'search'        => array(
    840860                'description' => __( 'Search settings by name.', 'dokan-kits' ),
    841861                'type'        => 'string',
    842862            ),
     863            'force_refresh' => array(
     864                'description' => __( 'Force refresh data from database bypassing cache.', 'dokan-kits' ),
     865                'type'        => 'boolean',
     866                'default'     => true,
     867            ),
    843868        );
    844869
     
    862887    public function get_single_setting_params(): array {
    863888        $params = array(
    864             'setting_name' => array(
     889            'setting_name'  => array(
    865890                'description' => __( 'Setting name in format: group.section.option', 'dokan-kits' ),
    866891                'type'        => 'string',
    867892                'required'    => true,
    868893                '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,
    869899            ),
    870900        );
  • dokan-kits/trunk/includes/REST/Controllers/Version1/ToolsController.php

    r3335399 r3342033  
    1111use DokanKits\Core\Data\DataStore;
    1212use DokanKits\Core\Data\Models\Settings;
     13use DokanKits\Core\Data\Stores\SettingsDataStore;
    1314use DokanKits\REST\Controllers\Controller;
    1415use DokanKits\Setup\Migrator;
    1516use DokanKits\Setup\SystemCheck;
     17use Exception;
    1618use WP_Error;
    1719use WP_REST_Server;
     
    297299            );
    298300
    299         } catch ( \Exception $e ) {
     301        } catch ( Exception $e ) {
    300302            return $this->handle_exception( $e, 'recreate_tables' );
    301303        }
     
    357359            );
    358360
    359         } catch ( \Exception $e ) {
     361        } catch ( Exception $e ) {
    360362            return $this->handle_exception( $e, 'optimize_tables' );
    361363        }
     
    418420            );
    419421
    420         } catch ( \Exception $e ) {
     422        } catch ( Exception $e ) {
    421423            return $this->handle_exception( $e, 'run_migration' );
    422424        }
     
    470472            );
    471473
    472         } catch ( \Exception $e ) {
     474        } catch ( Exception $e ) {
    473475            return $this->handle_exception( $e, 'get_migration_status' );
    474476        }
     
    522524            );
    523525
    524         } catch ( \Exception $e ) {
     526        } catch ( Exception $e ) {
    525527            return $this->handle_exception( $e, 'run_diagnostics' );
    526528        }
     
    578580            );
    579581
    580         } catch ( \Exception $e ) {
     582        } catch ( Exception $e ) {
    581583            return $this->handle_exception( $e, 'download_logs' );
    582584        }
     
    604606                $data_store->verify_tables();
    605607                $created_tables[] = $data_store->get_table_name();
    606             } catch ( \Exception $e ) {
     608            } catch ( Exception $e ) {
    607609                $failed_tables[ $data_store->get_table_name() ] = $e->getMessage();
    608610            }
     
    656658                    $failed[ $table_name ] = __( 'Failed to repair or optimize table.', 'dokan-kits' );
    657659                }
    658             } catch ( \Exception $e ) {
     660            } catch ( Exception $e ) {
    659661                $failed[ $table_name ] = $e->getMessage();
    660662            }
     
    707709        $migrator = dokan_kits_get_container()->get( Migrator::class );
    708710
    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' );
    710713        $history           = $migration_history instanceof Settings ? $migration_history->get_value() : array();
    711714
  • dokan-kits/trunk/includes/Setup/Activator.php

    r3335399 r3342033  
    1919use DokanKits\Core\Data\DataStore;
    2020use DokanKits\Core\Data\Models\Settings;
     21use DokanKits\Core\Data\Stores\SettingsDataStore;
    2122use DokanKits\Core\Interfaces\Runnable;
    2223use Throwable;
     
    8081     */
    8182    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' );
    8385
    8486        // Existing installation with system settings.
     
    117119     */
    118120    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' );
    120123
    121124        // Return existing settings if available.
  • dokan-kits/trunk/includes/Setup/Migrations/V300/MigrateOldSettings.php

    r3335399 r3342033  
    1010
    1111use DokanKits\Core\Data\Models\Settings;
     12use DokanKits\Core\Data\Stores\SettingsDataStore;
    1213use DokanKits\Setup\Migrations\Migration;
    1314
     
    4849        // Migrate settings for each category.
    4950        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 );
    5254
    5355            // If settings don't exist, create them.
  • dokan-kits/trunk/includes/Setup/Migrator.php

    r3335399 r3342033  
    212212            usort(
    213213                $version_migrations,
    214                 static fn($a, $b) => $a->get_priority() - $b->get_priority()
     214                static fn( $a, $b ) => $a->get_priority() - $b->get_priority()
    215215            );
    216216
  • dokan-kits/trunk/languages/dokan-kits.pot

    r3335424 r3342033  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Dokan Kits 3.0.5\n"
     5"Project-Id-Version: Dokan Kits 3.0.6\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/dokan-kits\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2025-07-28T14:18:59+00:00\n"
     12"POT-Creation-Date: 2025-08-09T10:46:26+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    14 "X-Generator: WP-CLI 2.11.0\n"
     14"X-Generator: WP-CLI 2.12.0\n"
    1515"X-Domain: dokan-kits\n"
    1616
     
    4545
    4646#. 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
    4950msgid "Settings %s Does not support adding any children."
    5051msgstr ""
    5152
    5253#. 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
    5456msgid "Settings %s Does not support removing any children."
    5557msgstr ""
     
    165167#. translators: %s: product type label.
    166168#: includes/Admin/Dashboard/Pages/Features.php:332
     169#, php-format
    167170msgid "Remove %ss"
    168171msgstr ""
     
    170173#. translators: %s: product type label.
    171174#: includes/Admin/Dashboard/Pages/Features.php:339
     175#, php-format
    172176msgid "Hide the %s type option from vendors"
    173177msgstr ""
     
    390394
    391395#: includes/Admin/Hooks.php:87
    392 #: includes/REST/Controllers/Version1/DashboardController.php:553
     396#: includes/REST/Controllers/Version1/DashboardController.php:555
    393397msgid "Settings"
    394398msgstr ""
     
    439443#. translators: %s: Plugin name
    440444#: includes/Admin/Notices/Dependencies.php:67
     445#, php-format
    441446msgid "Activate %s"
    442447msgstr ""
     
    444449#. translators: %s: Plugin name
    445450#: includes/Admin/Notices/Dependencies.php:74
     451#, php-format
    446452msgid "Install %s"
    447453msgstr ""
     
    449455#. translators: %s: List of required plugins
    450456#: includes/Admin/Notices/Dependencies.php:81
     457#, php-format
    451458msgid "Dokan Kits requires the following plugins to be active: %s"
    452459msgstr ""
    453460
    454461#. translators: %s: template name.
    455 #: includes/Core/TemplateManager.php:380
     462#: includes/Core/TemplateManager.php:370
     463#, php-format
    456464msgid "Template %s not found."
    457465msgstr ""
     
    461469#: includes/Core/Validation/Validator.php:167
    462470#: includes/REST/Middleware/Validation.php:531
     471#, php-format
    463472msgid "The %s field is required."
    464473msgstr ""
     
    468477#: includes/Core/Validation/Validator.php:185
    469478#: includes/REST/Middleware/Validation.php:631
     479#, php-format
    470480msgid "The %s field must be a valid email address."
    471481msgstr ""
     
    473483#. translators: %s is the field name.
    474484#: includes/Core/Validation/Validator.php:203
     485#, php-format
    475486msgid "The %s field must be numeric."
    476487msgstr ""
     
    480491#: includes/Core/Validation/Validator.php:221
    481492#: includes/REST/Middleware/Validation.php:591
     493#, php-format
    482494msgid "The %s field must be an integer."
    483495msgstr ""
     
    485497#. translators: %1$s is the field name, %2$s is the minimum value.
    486498#: includes/Core/Validation/Validator.php:246
     499#, php-format
    487500msgid "The %1$s field must be at least %2$s."
    488501msgstr ""
     
    490503#. translators: %1$s is the field name, %2$s is the maximum value.
    491504#: includes/Core/Validation/Validator.php:271
     505#, php-format
    492506msgid "The %1$s field must be at most %2$s."
    493507msgstr ""
     
    497511#: includes/Core/Validation/Validator.php:296
    498512#: includes/REST/Middleware/Validation.php:677
     513#, php-format
    499514msgid "The %1$s field must be at least %2$d characters."
    500515msgstr ""
     
    502517#. translators: %1$s is the field name, %2$d is the maximum length.
    503518#: includes/Core/Validation/Validator.php:321
     519#, php-format
    504520msgid "The %1$s field must be at most %2$d characters."
    505521msgstr ""
     
    509525#: includes/Core/Validation/Validator.php:339
    510526#: includes/REST/Middleware/Validation.php:651
     527#, php-format
    511528msgid "The %s field must be a valid URL."
    512529msgstr ""
     
    516533#: includes/Core/Validation/Validator.php:362
    517534#: includes/REST/Middleware/Validation.php:744
     535#, php-format
    518536msgid "The %1$s field must be one of: %2$s."
    519537msgstr ""
     
    521539#. translators: %1$s is the field name, %2$s is the list of invalid values.
    522540#: includes/Core/Validation/Validator.php:385
     541#, php-format
    523542msgid "The %1$s field must not be one of: %2$s."
    524543msgstr ""
     
    528547#: includes/Core/Validation/Validator.php:410
    529548#: includes/REST/Middleware/Validation.php:820
     549#, php-format
    530550msgid "The %s field format is invalid."
    531551msgstr ""
     
    533553#. translators: %s is the field name.
    534554#: includes/Core/Validation/Validator.php:433
     555#, php-format
    535556msgid "The %s field must be a valid date."
    536557msgstr ""
     
    582603
    583604#: includes/REST/Controllers/Controller.php:388
    584 #: includes/REST/Controllers/Version1/SettingsController.php:963
    585 #: includes/REST/Controllers/Version1/SettingsController.php:1024
     605#: includes/REST/Controllers/Version1/SettingsController.php:993
     606#: includes/REST/Controllers/Version1/SettingsController.php:1054
    586607msgid "Whether the request was successful."
    587608msgstr ""
    588609
    589610#: includes/REST/Controllers/Controller.php:394
    590 #: includes/REST/Controllers/Version1/SettingsController.php:969
    591 #: includes/REST/Controllers/Version1/SettingsController.php:1029
     611#: includes/REST/Controllers/Version1/SettingsController.php:999
     612#: includes/REST/Controllers/Version1/SettingsController.php:1059
    592613msgid "Human-readable message describing the result."
    593614msgstr ""
     
    599620#. translators: 1: resource type, 2: resource ID
    600621#: includes/REST/Controllers/Controller.php:430
     622#, php-format
    601623msgid "Invalid %1$s ID: %2$s"
    602624msgstr ""
     
    604626#. translators: 1: resource type, 2: resource ID
    605627#: includes/REST/Controllers/Controller.php:453
     628#, php-format
    606629msgid "%1$s not found: %2$s"
    607630msgstr ""
     
    609632#. translators: %s: parameter name
    610633#: includes/REST/Controllers/Controller.php:475
     634#, php-format
    611635msgid "Missing required parameter: %s"
    612636msgstr ""
     
    614638#. translators: 1: resource type, 2: resource ID, 3: operation
    615639#: includes/REST/Controllers/Controller.php:498
     640#, php-format
    616641msgid "%1$s \"%2$s\" %3$s successfully."
    617642msgstr ""
     
    619644#. translators: 1: resource type, 2: operation
    620645#: includes/REST/Controllers/Controller.php:507
     646#, php-format
    621647msgid "%1$s %2$s successfully."
    622648msgstr ""
     
    640666#. translators: %d: Number of settings exported
    641667#: includes/REST/Controllers/Version1/DashboardController.php:296
     668#, php-format
    642669msgid "%d setting exported successfully."
    643670msgid_plural "%d settings exported successfully."
     
    659686#. translators: %d: Number of settings imported
    660687#: includes/REST/Controllers/Version1/DashboardController.php:390
     688#, php-format
    661689msgid "%d setting imported successfully."
    662690msgid_plural "%d settings imported successfully."
     
    670698#. translators: %s: allowed scopes
    671699#: includes/REST/Controllers/Version1/DashboardController.php:434
     700#, php-format
    672701msgid "Invalid scope. Allowed scopes: %s"
    673702msgstr ""
    674703
    675 #: includes/REST/Controllers/Version1/DashboardController.php:539
     704#: includes/REST/Controllers/Version1/DashboardController.php:541
    676705msgid "Active Features"
    677706msgstr ""
    678707
    679 #: includes/REST/Controllers/Version1/DashboardController.php:540
     708#: includes/REST/Controllers/Version1/DashboardController.php:542
    680709msgid "Number of enabled features"
    681710msgstr ""
    682711
    683 #: includes/REST/Controllers/Version1/DashboardController.php:546
     712#: includes/REST/Controllers/Version1/DashboardController.php:548
    684713#: src/admin/pages/dashboard/index.js:313
    685714msgid "Total Features"
    686715msgstr ""
    687716
    688 #: includes/REST/Controllers/Version1/DashboardController.php:547
     717#: includes/REST/Controllers/Version1/DashboardController.php:549
    689718msgid "Total available features"
    690719msgstr ""
    691720
    692 #: includes/REST/Controllers/Version1/DashboardController.php:554
     721#: includes/REST/Controllers/Version1/DashboardController.php:556
    693722msgid "Number of configured settings"
    694723msgstr ""
    695724
    696 #: includes/REST/Controllers/Version1/DashboardController.php:559
     725#: includes/REST/Controllers/Version1/DashboardController.php:561
    697726msgid "Not installed"
    698727msgstr ""
    699728
    700 #: includes/REST/Controllers/Version1/DashboardController.php:560
     729#: includes/REST/Controllers/Version1/DashboardController.php:562
    701730#: src/admin/pages/dashboard/index.js:337
    702731msgid "Dokan Version"
    703732msgstr ""
    704733
    705 #: includes/REST/Controllers/Version1/DashboardController.php:561
     734#: includes/REST/Controllers/Version1/DashboardController.php:563
    706735msgid "Installed Dokan version"
    707736msgstr ""
    708737
    709 #: includes/REST/Controllers/Version1/DashboardController.php:594
     738#: includes/REST/Controllers/Version1/DashboardController.php:596
    710739#: src/admin/pages/dashboard/index.js:301
    711740msgid "Enhance your Dokan-powered marketplace with powerful tools and customizations."
    712741msgstr ""
    713742
    714 #: includes/REST/Controllers/Version1/DashboardController.php:673
    715 #: includes/REST/Controllers/Version1/SettingsController.php:567
     743#: includes/REST/Controllers/Version1/DashboardController.php:676
     744#: includes/REST/Controllers/Version1/SettingsController.php:582
    716745msgid "Invalid setting name."
    717746msgstr ""
    718747
    719 #: includes/REST/Controllers/Version1/DashboardController.php:727
     748#: includes/REST/Controllers/Version1/DashboardController.php:732
    720749msgid "All settings have been reset to defaults."
    721750msgstr ""
    722751
    723752#. translators: %s: settings group name
    724 #: includes/REST/Controllers/Version1/DashboardController.php:731
     753#: includes/REST/Controllers/Version1/DashboardController.php:736
     754#, php-format
    725755msgid "%s settings have been reset to defaults."
    726756msgstr ""
    727757
    728 #: includes/REST/Controllers/Version1/DashboardController.php:751
     758#: includes/REST/Controllers/Version1/DashboardController.php:756
    729759msgid "Include statistics in response."
    730760msgstr ""
    731761
    732 #: includes/REST/Controllers/Version1/DashboardController.php:756
     762#: includes/REST/Controllers/Version1/DashboardController.php:761
    733763msgid "Include plugin data in response."
    734764msgstr ""
    735765
    736 #: includes/REST/Controllers/Version1/DashboardController.php:782
     766#: includes/REST/Controllers/Version1/DashboardController.php:787
    737767msgid "Force refresh of cached statistics."
    738768msgstr ""
    739769
    740 #: includes/REST/Controllers/Version1/DashboardController.php:808
     770#: includes/REST/Controllers/Version1/DashboardController.php:813
    741771msgid "Export format."
    742772msgstr ""
    743773
    744 #: includes/REST/Controllers/Version1/DashboardController.php:814
     774#: includes/REST/Controllers/Version1/DashboardController.php:819
    745775msgid "Settings groups to export."
    746776msgstr ""
    747777
    748 #: includes/REST/Controllers/Version1/DashboardController.php:844
     778#: includes/REST/Controllers/Version1/DashboardController.php:849
    749779msgid "Settings data to import as key-value pairs."
    750780msgstr ""
    751781
    752 #: includes/REST/Controllers/Version1/DashboardController.php:854
     782#: includes/REST/Controllers/Version1/DashboardController.php:859
    753783msgid "Whether to overwrite existing settings."
    754784msgstr ""
    755785
    756 #: includes/REST/Controllers/Version1/DashboardController.php:880
     786#: includes/REST/Controllers/Version1/DashboardController.php:885
    757787msgid "Scope of settings to reset."
    758788msgstr ""
    759789
    760 #: includes/REST/Controllers/Version1/DashboardController.php:886
     790#: includes/REST/Controllers/Version1/DashboardController.php:891
    761791msgid "Confirmation that you want to reset the settings."
    762792msgstr ""
    763793
    764 #: includes/REST/Controllers/Version1/DashboardController.php:918
     794#: includes/REST/Controllers/Version1/DashboardController.php:923
    765795msgid "Dashboard data."
    766796msgstr ""
    767797
    768 #: includes/REST/Controllers/Version1/DashboardController.php:922
     798#: includes/REST/Controllers/Version1/DashboardController.php:927
    769799msgid "Number of configured settings."
    770800msgstr ""
    771801
    772 #: includes/REST/Controllers/Version1/DashboardController.php:927
     802#: includes/REST/Controllers/Version1/DashboardController.php:932
    773803msgid "Last updated timestamp."
    774804msgstr ""
    775805
    776 #: includes/REST/Controllers/Version1/DashboardController.php:932
     806#: includes/REST/Controllers/Version1/DashboardController.php:937
    777807msgid "Dashboard statistics."
    778808msgstr ""
    779809
    780 #: includes/REST/Controllers/Version1/DashboardController.php:936
     810#: includes/REST/Controllers/Version1/DashboardController.php:941
    781811msgid "Plugin information."
    782812msgstr ""
    783813
    784 #: includes/REST/Controllers/Version1/DashboardController.php:971
     814#: includes/REST/Controllers/Version1/DashboardController.php:976
    785815msgid "Statistics data with metrics and their metadata."
    786816msgstr ""
    787817
    788 #: includes/REST/Controllers/Version1/DashboardController.php:977
     818#: includes/REST/Controllers/Version1/DashboardController.php:982
    789819msgid "Statistic value."
    790820msgstr ""
    791821
    792 #: includes/REST/Controllers/Version1/DashboardController.php:981
     822#: includes/REST/Controllers/Version1/DashboardController.php:986
    793823msgid "Human-readable label."
    794824msgstr ""
    795825
    796 #: includes/REST/Controllers/Version1/DashboardController.php:985
     826#: includes/REST/Controllers/Version1/DashboardController.php:990
    797827msgid "Detailed description."
    798828msgstr ""
    799829
    800 #: includes/REST/Controllers/Version1/DashboardController.php:989
     830#: includes/REST/Controllers/Version1/DashboardController.php:994
    801831msgid "Icon class or identifier."
    802832msgstr ""
    803833
    804 #: includes/REST/Controllers/Version1/DashboardController.php:993
     834#: includes/REST/Controllers/Version1/DashboardController.php:998
    805835msgid "Color theme or class."
    806836msgstr ""
    807837
    808 #: includes/REST/Controllers/Version1/DashboardController.php:1029
     838#: includes/REST/Controllers/Version1/DashboardController.php:1034
    809839msgid "Export data."
    810840msgstr ""
    811841
    812 #: includes/REST/Controllers/Version1/DashboardController.php:1033
     842#: includes/REST/Controllers/Version1/DashboardController.php:1038
    813843msgid "Exported settings data."
    814844msgstr ""
    815845
    816 #: includes/REST/Controllers/Version1/DashboardController.php:1037
     846#: includes/REST/Controllers/Version1/DashboardController.php:1042
    817847msgid "Export format used."
    818848msgstr ""
    819849
    820 #: includes/REST/Controllers/Version1/DashboardController.php:1042
     850#: includes/REST/Controllers/Version1/DashboardController.php:1047
    821851msgid "Settings groups exported."
    822852msgstr ""
    823853
    824 #: includes/REST/Controllers/Version1/DashboardController.php:1047
     854#: includes/REST/Controllers/Version1/DashboardController.php:1052
    825855msgid "Number of exported settings."
    826856msgstr ""
    827857
    828 #: includes/REST/Controllers/Version1/DashboardController.php:1052
     858#: includes/REST/Controllers/Version1/DashboardController.php:1057
    829859msgid "Export timestamp."
    830860msgstr ""
    831861
    832 #: includes/REST/Controllers/Version1/DashboardController.php:1088
     862#: includes/REST/Controllers/Version1/DashboardController.php:1093
    833863msgid "Import result data."
    834864msgstr ""
    835865
    836 #: includes/REST/Controllers/Version1/DashboardController.php:1092
     866#: includes/REST/Controllers/Version1/DashboardController.php:1097
    837867msgid "List of successfully imported settings."
    838868msgstr ""
    839869
    840 #: includes/REST/Controllers/Version1/DashboardController.php:1097
     870#: includes/REST/Controllers/Version1/DashboardController.php:1102
    841871msgid "Import errors by setting name."
    842872msgstr ""
    843873
    844 #: includes/REST/Controllers/Version1/DashboardController.php:1102
     874#: includes/REST/Controllers/Version1/DashboardController.php:1107
    845875msgid "Total number of successfully imported settings."
    846876msgstr ""
    847877
    848 #: includes/REST/Controllers/Version1/DashboardController.php:1107
     878#: includes/REST/Controllers/Version1/DashboardController.php:1112
    849879msgid "Whether existing settings were overwritten."
    850880msgstr ""
    851881
    852 #: includes/REST/Controllers/Version1/DashboardController.php:1142
     882#: includes/REST/Controllers/Version1/DashboardController.php:1147
    853883msgid "Reset operation result."
    854884msgstr ""
    855885
    856 #: includes/REST/Controllers/Version1/DashboardController.php:1146
     886#: includes/REST/Controllers/Version1/DashboardController.php:1151
    857887msgid "Scope of settings that were reset."
    858888msgstr ""
    859889
    860 #: includes/REST/Controllers/Version1/DashboardController.php:1152
     890#: includes/REST/Controllers/Version1/DashboardController.php:1157
    861891msgid "Detailed reset result message."
    862892msgstr ""
    863893
    864 #: includes/REST/Controllers/Version1/DashboardController.php:1156
     894#: includes/REST/Controllers/Version1/DashboardController.php:1161
    865895msgid "Reset operation timestamp."
    866896msgstr ""
    867897
    868898#. 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
    870901msgid "%d setting retrieved successfully."
    871902msgid_plural "%d settings retrieved successfully."
     
    873904msgstr[1] ""
    874905
    875 #: includes/REST/Controllers/Version1/SettingsController.php:149
    876 #: includes/REST/Controllers/Version1/SettingsController.php:347
     906#: includes/REST/Controllers/Version1/SettingsController.php:155
     907#: includes/REST/Controllers/Version1/SettingsController.php:355
    877908msgid "Setting name is required and must be valid."
    878909msgstr ""
    879910
    880911#. translators: %s: setting name
    881 #: includes/REST/Controllers/Version1/SettingsController.php:168
     912#: includes/REST/Controllers/Version1/SettingsController.php:176
     913#, php-format
    882914msgid "Setting \"%s\" not found."
    883915msgstr ""
    884916
    885917#. translators: %s: setting name
    886 #: includes/REST/Controllers/Version1/SettingsController.php:205
     918#: includes/REST/Controllers/Version1/SettingsController.php:213
     919#, php-format
    887920msgid "Setting \"%s\" retrieved successfully."
    888921msgstr ""
    889922
    890 #: includes/REST/Controllers/Version1/SettingsController.php:240
     923#: includes/REST/Controllers/Version1/SettingsController.php:248
    891924msgid "No settings data provided."
    892925msgstr ""
    893926
    894 #: includes/REST/Controllers/Version1/SettingsController.php:294
     927#: includes/REST/Controllers/Version1/SettingsController.php:302
    895928msgid "All settings failed to update."
    896929msgstr ""
    897930
    898 #: includes/REST/Controllers/Version1/SettingsController.php:304
     931#: includes/REST/Controllers/Version1/SettingsController.php:312
    899932msgid "Some settings failed to update."
    900933msgstr ""
    901934
    902935#. 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
    904938msgid "%d setting updated successfully."
    905939msgid_plural "%d settings updated successfully."
     
    907941msgstr[1] ""
    908942
    909 #: includes/REST/Controllers/Version1/SettingsController.php:375
     943#: includes/REST/Controllers/Version1/SettingsController.php:389
    910944msgid "Failed to retrieve updated setting."
    911945msgstr ""
    912946
    913947#. translators: %s: setting name
    914 #: includes/REST/Controllers/Version1/SettingsController.php:408
     948#: includes/REST/Controllers/Version1/SettingsController.php:422
     949#, php-format
    915950msgid "Setting \"%s\" updated successfully."
    916951msgstr ""
    917952
    918 #: includes/REST/Controllers/Version1/SettingsController.php:597
     953#: includes/REST/Controllers/Version1/SettingsController.php:617
    919954msgid "Failed to update setting."
    920955msgstr ""
    921956
    922957#. 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
    924960msgid "Invalid group \"%1$s\". Allowed groups: %2$s"
    925961msgstr ""
    926962
    927963#. translators: %s: setting name
    928 #: includes/REST/Controllers/Version1/SettingsController.php:673
     964#: includes/REST/Controllers/Version1/SettingsController.php:693
     965#, php-format
    929966msgid "Access denied for setting \"%s\"."
    930967msgstr ""
    931968
    932 #: includes/REST/Controllers/Version1/SettingsController.php:698
     969#: includes/REST/Controllers/Version1/SettingsController.php:718
    933970msgid "Invalid setting name format. Expected: group.section.option"
    934971msgstr ""
    935972
    936 #: includes/REST/Controllers/Version1/SettingsController.php:780
     973#: includes/REST/Controllers/Version1/SettingsController.php:800
    937974msgid "Invalid JSON data provided."
    938975msgstr ""
    939976
    940977#. translators: %s: context
    941 #: includes/REST/Controllers/Version1/SettingsController.php:790
     978#: includes/REST/Controllers/Version1/SettingsController.php:810
     979#, php-format
    942980msgid "Failed to %s: An unexpected error occurred."
    943981msgstr ""
    944982
    945 #: includes/REST/Controllers/Version1/SettingsController.php:808
     983#: includes/REST/Controllers/Version1/SettingsController.php:828
    946984msgid "Order by field."
    947985msgstr ""
    948986
    949 #: includes/REST/Controllers/Version1/SettingsController.php:814
     987#: includes/REST/Controllers/Version1/SettingsController.php:834
    950988msgid "Order direction."
    951989msgstr ""
    952990
    953 #: includes/REST/Controllers/Version1/SettingsController.php:820
     991#: includes/REST/Controllers/Version1/SettingsController.php:840
    954992msgid "Number of items to fetch."
    955993msgstr ""
    956994
    957 #: includes/REST/Controllers/Version1/SettingsController.php:826
     995#: includes/REST/Controllers/Version1/SettingsController.php:846
    958996msgid "Number of items to skip."
    959997msgstr ""
    960998
    961 #: includes/REST/Controllers/Version1/SettingsController.php:832
     999#: includes/REST/Controllers/Version1/SettingsController.php:852
    9621000msgid "Filter settings by group."
    9631001msgstr ""
    9641002
    965 #: includes/REST/Controllers/Version1/SettingsController.php:840
     1003#: includes/REST/Controllers/Version1/SettingsController.php:860
    9661004msgid "Search settings by name."
    9671005msgstr ""
    9681006
    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
     1009msgid "Force refresh data from database bypassing cache."
     1010msgstr ""
     1011
     1012#: includes/REST/Controllers/Version1/SettingsController.php:890
     1013#: includes/REST/Controllers/Version1/SettingsController.php:953
    9711014msgid "Setting name in format: group.section.option"
    9721015msgstr ""
    9731016
    974 #: includes/REST/Controllers/Version1/SettingsController.php:892
     1017#: includes/REST/Controllers/Version1/SettingsController.php:922
    9751018msgid "Settings data to update as key-value pairs."
    9761019msgstr ""
    9771020
    978 #: includes/REST/Controllers/Version1/SettingsController.php:929
     1021#: includes/REST/Controllers/Version1/SettingsController.php:959
    9791022msgid "Setting value to update."
    9801023msgstr ""
    9811024
    982 #: includes/REST/Controllers/Version1/SettingsController.php:975
     1025#: includes/REST/Controllers/Version1/SettingsController.php:1005
    9831026msgid "Settings collection data."
    9841027msgstr ""
    9851028
    986 #: includes/REST/Controllers/Version1/SettingsController.php:980
     1029#: includes/REST/Controllers/Version1/SettingsController.php:1010
    9871030msgid "Settings as key-value pairs."
    9881031msgstr ""
    9891032
    990 #: includes/REST/Controllers/Version1/SettingsController.php:987
     1033#: includes/REST/Controllers/Version1/SettingsController.php:1017
    9911034msgid "Number of settings in the collection."
    9921035msgstr ""
    9931036
    994 #: includes/REST/Controllers/Version1/SettingsController.php:1034
     1037#: includes/REST/Controllers/Version1/SettingsController.php:1064
    9951038msgid "Single setting data."
    9961039msgstr ""
    9971040
    998 #: includes/REST/Controllers/Version1/SettingsController.php:1038
     1041#: includes/REST/Controllers/Version1/SettingsController.php:1068
    9991042msgid "Setting name."
    10001043msgstr ""
    10011044
    1002 #: includes/REST/Controllers/Version1/SettingsController.php:1043
     1045#: includes/REST/Controllers/Version1/SettingsController.php:1073
    10031046msgid "Setting value."
    10041047msgstr ""
    10051048
    10061049#. 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
    10081052msgid "%d database table recreated successfully."
    10091053msgid_plural "%d database tables recreated successfully."
     
    10111055msgstr[1] ""
    10121056
    1013 #: includes/REST/Controllers/Version1/ToolsController.php:338
     1057#: includes/REST/Controllers/Version1/ToolsController.php:340
    10141058msgid "Some tables could not be optimized."
    10151059msgstr ""
    10161060
    10171061#. 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
    10191064msgid "%d database table optimized successfully."
    10201065msgid_plural "%d database tables optimized successfully."
     
    10221067msgstr[1] ""
    10231068
    1024 #: includes/REST/Controllers/Version1/ToolsController.php:388
     1069#: includes/REST/Controllers/Version1/ToolsController.php:390
    10251070msgid "A migration is already in progress."
    10261071msgstr ""
    10271072
    10281073#. 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
    10301076msgid "%d migration version executed successfully."
    10311077msgid_plural "%d migration versions executed successfully."
     
    10331079msgstr[1] ""
    10341080
    1035 #: includes/REST/Controllers/Version1/ToolsController.php:469
     1081#: includes/REST/Controllers/Version1/ToolsController.php:471
    10361082msgid "Migration status retrieved successfully."
    10371083msgstr ""
    10381084
    1039 #: includes/REST/Controllers/Version1/ToolsController.php:521
     1085#: includes/REST/Controllers/Version1/ToolsController.php:523
    10401086msgid "System diagnostics completed successfully."
    10411087msgstr ""
    10421088
    1043 #: includes/REST/Controllers/Version1/ToolsController.php:577
     1089#: includes/REST/Controllers/Version1/ToolsController.php:579
    10441090msgid "Log files prepared for download successfully."
    10451091msgstr ""
    10461092
    1047 #: includes/REST/Controllers/Version1/ToolsController.php:656
     1093#: includes/REST/Controllers/Version1/ToolsController.php:658
    10481094msgid "Failed to repair or optimize table."
    10491095msgstr ""
    10501096
    1051 #: includes/REST/Controllers/Version1/ToolsController.php:784
     1097#: includes/REST/Controllers/Version1/ToolsController.php:787
    10521098msgid "Dokan plugin is not installed or active."
    10531099msgstr ""
    10541100
    1055 #: includes/REST/Controllers/Version1/ToolsController.php:798
     1101#: includes/REST/Controllers/Version1/ToolsController.php:801
    10561102msgid "WooCommerce is not installed or active."
    10571103msgstr ""
    10581104
    1059 #: includes/REST/Controllers/Version1/ToolsController.php:806
     1105#: includes/REST/Controllers/Version1/ToolsController.php:809
    10601106msgid "System requirements met."
    10611107msgstr ""
    10621108
    1063 #: includes/REST/Controllers/Version1/ToolsController.php:806
     1109#: includes/REST/Controllers/Version1/ToolsController.php:809
    10641110msgid "System requirements not met."
    10651111msgstr ""
    10661112
    1067 #: includes/REST/Controllers/Version1/ToolsController.php:874
     1113#: includes/REST/Controllers/Version1/ToolsController.php:877
    10681114msgid "Table does not exist"
    10691115msgstr ""
    10701116
    1071 #: includes/REST/Controllers/Version1/ToolsController.php:897
     1117#: includes/REST/Controllers/Version1/ToolsController.php:900
    10721118msgid "Could not create log directory."
    10731119msgstr ""
    10741120
    1075 #: includes/REST/Controllers/Version1/ToolsController.php:922
     1121#: includes/REST/Controllers/Version1/ToolsController.php:925
    10761122msgid "Could not write to log file."
    10771123msgstr ""
    10781124
    1079 #: includes/REST/Controllers/Version1/ToolsController.php:1063
     1125#: includes/REST/Controllers/Version1/ToolsController.php:1066
    10801126msgid "Database operation result."
    10811127msgstr ""
    10821128
    1083 #: includes/REST/Controllers/Version1/ToolsController.php:1067
     1129#: includes/REST/Controllers/Version1/ToolsController.php:1070
    10841130msgid "List of successfully processed tables."
    10851131msgstr ""
    10861132
    1087 #: includes/REST/Controllers/Version1/ToolsController.php:1072
     1133#: includes/REST/Controllers/Version1/ToolsController.php:1075
    10881134msgid "Failed operations by table name."
    10891135msgstr ""
    10901136
    1091 #: includes/REST/Controllers/Version1/ToolsController.php:1077
     1137#: includes/REST/Controllers/Version1/ToolsController.php:1080
    10921138msgid "Total number of successfully processed tables."
    10931139msgstr ""
    10941140
    1095 #: includes/REST/Controllers/Version1/ToolsController.php:1113
     1141#: includes/REST/Controllers/Version1/ToolsController.php:1116
    10961142msgid "Migration operation result."
    10971143msgstr ""
    10981144
    1099 #: includes/REST/Controllers/Version1/ToolsController.php:1117
     1145#: includes/REST/Controllers/Version1/ToolsController.php:1120
    11001146msgid "List of executed migration versions."
    11011147msgstr ""
    11021148
    1103 #: includes/REST/Controllers/Version1/ToolsController.php:1122
     1149#: includes/REST/Controllers/Version1/ToolsController.php:1125
    11041150msgid "Total number of executed migrations."
    11051151msgstr ""
    11061152
    1107 #: includes/REST/Controllers/Version1/ToolsController.php:1127
     1153#: includes/REST/Controllers/Version1/ToolsController.php:1130
    11081154msgid "Migration execution timestamp."
    11091155msgstr ""
    11101156
    1111 #: includes/REST/Controllers/Version1/ToolsController.php:1163
     1157#: includes/REST/Controllers/Version1/ToolsController.php:1166
    11121158msgid "Migration status information."
    11131159msgstr ""
    11141160
    1115 #: includes/REST/Controllers/Version1/ToolsController.php:1167
     1161#: includes/REST/Controllers/Version1/ToolsController.php:1170
    11161162msgid "Whether migration is currently running."
    11171163msgstr ""
    11181164
    1119 #: includes/REST/Controllers/Version1/ToolsController.php:1171
     1165#: includes/REST/Controllers/Version1/ToolsController.php:1174
    11201166msgid "Whether migration is needed."
    11211167msgstr ""
    11221168
    1123 #: includes/REST/Controllers/Version1/ToolsController.php:1175
     1169#: includes/REST/Controllers/Version1/ToolsController.php:1178
    11241170msgid "Current plugin version."
    11251171msgstr ""
    11261172
    1127 #: includes/REST/Controllers/Version1/ToolsController.php:1179
     1173#: includes/REST/Controllers/Version1/ToolsController.php:1182
    11281174msgid "Historical migration data."
    11291175msgstr ""
    11301176
    1131 #: includes/REST/Controllers/Version1/ToolsController.php:1183
     1177#: includes/REST/Controllers/Version1/ToolsController.php:1186
    11321178msgid "Available migration versions."
    11331179msgstr ""
    11341180
    1135 #: includes/REST/Controllers/Version1/ToolsController.php:1188
     1181#: includes/REST/Controllers/Version1/ToolsController.php:1191
    11361182msgid "Last status check timestamp."
    11371183msgstr ""
    11381184
    1139 #: includes/REST/Controllers/Version1/ToolsController.php:1224
     1185#: includes/REST/Controllers/Version1/ToolsController.php:1227
    11401186msgid "System diagnostics information."
    11411187msgstr ""
    11421188
    1143 #: includes/REST/Controllers/Version1/ToolsController.php:1228
     1189#: includes/REST/Controllers/Version1/ToolsController.php:1231
    11441190msgid "WordPress environment information."
    11451191msgstr ""
    11461192
    1147 #: includes/REST/Controllers/Version1/ToolsController.php:1232
     1193#: includes/REST/Controllers/Version1/ToolsController.php:1235
    11481194msgid "PHP environment information."
    11491195msgstr ""
    11501196
    1151 #: includes/REST/Controllers/Version1/ToolsController.php:1236
     1197#: includes/REST/Controllers/Version1/ToolsController.php:1239
    11521198msgid "Server environment information."
    11531199msgstr ""
    11541200
    1155 #: includes/REST/Controllers/Version1/ToolsController.php:1240
     1201#: includes/REST/Controllers/Version1/ToolsController.php:1243
    11561202msgid "Dokan Kits specific information."
    11571203msgstr ""
    11581204
    1159 #: includes/REST/Controllers/Version1/ToolsController.php:1244
     1205#: includes/REST/Controllers/Version1/ToolsController.php:1247
    11601206msgid "Dokan plugin information."
    11611207msgstr ""
    11621208
    1163 #: includes/REST/Controllers/Version1/ToolsController.php:1248
     1209#: includes/REST/Controllers/Version1/ToolsController.php:1251
    11641210msgid "WooCommerce information."
    11651211msgstr ""
    11661212
    1167 #: includes/REST/Controllers/Version1/ToolsController.php:1252
     1213#: includes/REST/Controllers/Version1/ToolsController.php:1255
    11681214msgid "System requirements check result."
    11691215msgstr ""
    11701216
    1171 #: includes/REST/Controllers/Version1/ToolsController.php:1256
     1217#: includes/REST/Controllers/Version1/ToolsController.php:1259
    11721218msgid "Whether system check passed."
    11731219msgstr ""
    11741220
    1175 #: includes/REST/Controllers/Version1/ToolsController.php:1260
     1221#: includes/REST/Controllers/Version1/ToolsController.php:1263
    11761222msgid "System check message."
    11771223msgstr ""
    11781224
    1179 #: includes/REST/Controllers/Version1/ToolsController.php:1297
     1225#: includes/REST/Controllers/Version1/ToolsController.php:1300
    11801226msgid "Log file information."
    11811227msgstr ""
    11821228
    1183 #: includes/REST/Controllers/Version1/ToolsController.php:1301
     1229#: includes/REST/Controllers/Version1/ToolsController.php:1304
    11841230msgid "Generated log file name."
    11851231msgstr ""
    11861232
    1187 #: includes/REST/Controllers/Version1/ToolsController.php:1305
     1233#: includes/REST/Controllers/Version1/ToolsController.php:1308
    11881234msgid "URL to download the log file."
    11891235msgstr ""
    11901236
    1191 #: includes/REST/Controllers/Version1/ToolsController.php:1310
     1237#: includes/REST/Controllers/Version1/ToolsController.php:1313
    11921238msgid "Server path to the log file."
    11931239msgstr ""
    11941240
    1195 #: includes/REST/Controllers/Version1/ToolsController.php:1314
     1241#: includes/REST/Controllers/Version1/ToolsController.php:1317
    11961242msgid "Human-readable file size."
    11971243msgstr ""
    11981244
    1199 #: includes/REST/Controllers/Version1/ToolsController.php:1318
     1245#: includes/REST/Controllers/Version1/ToolsController.php:1321
    12001246msgid "File creation date identifier."
    12011247msgstr ""
    12021248
    1203 #: includes/REST/Controllers/Version1/ToolsController.php:1322
     1249#: includes/REST/Controllers/Version1/ToolsController.php:1325
    12041250msgid "File creation timestamp."
    12051251msgstr ""
     
    12151261#. translators: %s: capability name
    12161262#: includes/REST/Middleware/Authentication.php:278
     1263#, php-format
    12171264msgid "You do not have the required capability: %s"
    12181265msgstr ""
     
    12281275#. translators: %s: field name
    12291276#: includes/REST/Middleware/Validation.php:551
     1277#, php-format
    12301278msgid "The %s field must be a string."
    12311279msgstr ""
     
    12331281#. translators: %s: field name
    12341282#: includes/REST/Middleware/Validation.php:571
     1283#, php-format
    12351284msgid "The %s field must be a number."
    12361285msgstr ""
     
    12381287#. translators: %s: field name
    12391288#: includes/REST/Middleware/Validation.php:611
     1289#, php-format
    12401290msgid "The %s field must be true or false."
    12411291msgstr ""
     
    12431293#. translators: 1: field name, 2: minimum value
    12441294#: includes/REST/Middleware/Validation.php:686
     1295#, php-format
    12451296msgid "The %1$s field must be at least %2$d."
    12461297msgstr ""
     
    12481299#. translators: 1: field name, 2: maximum length
    12491300#: includes/REST/Middleware/Validation.php:713
     1301#, php-format
    12501302msgid "The %1$s field must not exceed %2$d characters."
    12511303msgstr ""
     
    12531305#. translators: 1: field name, 2: maximum value
    12541306#: includes/REST/Middleware/Validation.php:722
     1307#, php-format
    12551308msgid "The %1$s field must not exceed %2$d."
    12561309msgstr ""
     
    12581311#. translators: %s: field name
    12591312#: includes/REST/Middleware/Validation.php:765
     1313#, php-format
    12601314msgid "The %s field must be an array."
    12611315msgstr ""
     
    12631317#. translators: 1: field name, 2: date format
    12641318#: includes/REST/Middleware/Validation.php:793
     1319#, php-format
    12651320msgid "The %1$s field must be a valid date in the format %2$s."
    12661321msgstr ""
     
    12681323#. translators: %s: field name
    12691324#: includes/REST/Middleware/Validation.php:840
     1325#, php-format
    12701326msgid "The %s field may only contain letters."
    12711327msgstr ""
     
    12731329#. translators: %s: field name
    12741330#: includes/REST/Middleware/Validation.php:860
     1331#, php-format
    12751332msgid "The %s field may only contain letters and numbers."
    12761333msgstr ""
     
    12791336#: includes/REST/Middleware/Validation.php:884
    12801337#: includes/REST/Middleware/Validation.php:893
     1338#, php-format
    12811339msgid "The %s field must be a valid JSON string."
    12821340msgstr ""
     
    12841342#. translators: %s: field name
    12851343#: includes/REST/Middleware/Validation.php:924
     1344#, php-format
    12861345msgid "The selected %s is invalid."
    12871346msgstr ""
     
    12891348#. translators: %s: field name
    12901349#: includes/REST/Middleware/Validation.php:949
     1350#, php-format
    12911351msgid "The %s field must be a file."
    12921352msgstr ""
     
    12941354#. translators: %s: field name
    12951355#: includes/REST/Middleware/Validation.php:957
     1356#, php-format
    12961357msgid "The %s field must be a valid uploaded file."
    12971358msgstr ""
     
    12991360#. translators: %s: field name
    13001361#: includes/REST/Middleware/Validation.php:989
     1362#, php-format
    13011363msgid "The %s field must be an image."
    13021364msgstr ""
     
    13041366#. translators: %s: field name
    13051367#: includes/REST/Middleware/Validation.php:1013
     1368#, php-format
    13061369msgid "The %s confirmation field is required."
    13071370msgstr ""
     
    13091372#. translators: %s: field name
    13101373#: includes/REST/Middleware/Validation.php:1021
     1374#, php-format
    13111375msgid "The %s confirmation does not match."
    13121376msgstr ""
     
    13141378#. translators: %s: field name
    13151379#: includes/REST/Middleware/Validation.php:1053
     1380#, php-format
    13161381msgid "The %s has already been taken."
    13171382msgstr ""
     
    13191384#. translators: %1$s: Current PHP version, %2$s: Required PHP version.
    13201385#: includes/Setup/SystemCheck.php:175
     1386#, php-format
    13211387msgid "Current PHP version (%1$s) does not meet the minimum required version (%2$s)."
    13221388msgstr ""
     
    13241390#. translators: %1$s: Current WordPress version, %2$s: Required WordPress version.
    13251391#: includes/Setup/SystemCheck.php:186
     1392#, php-format
    13261393msgid "Current WordPress version (%1$s) does not meet the minimum required version (%2$s)."
    13271394msgstr ""
     
    13291396#. translators: %1$s: Current Dokan version, %2$s: Required Dokan version.
    13301397#: includes/Setup/SystemCheck.php:197
     1398#, php-format
    13311399msgid "Current Dokan version (%1$s) does not meet the minimum required version (%2$s)."
    13321400msgstr ""
     
    13381406#. translators: %s: PHP extension name.
    13391407#: includes/Setup/SystemCheck.php:211
     1408#, php-format
    13401409msgid "Required PHP extension %s is missing."
    13411410msgstr ""
     
    19071976#. translators: %s: Page title
    19081977#: src/admin/components/layout/index.js:51
     1978#, js-format
    19091979msgid "%s - Dokan Kits"
    19101980msgstr ""
  • dokan-kits/trunk/readme.txt

    r3335424 r3342033  
    55Requires at least: 6.4.2
    66Tested up to: 6.8
    7 Stable tag: 3.0.5
     7Stable tag: 3.0.6
    88Requires PHP: 7.4
    99License: GPLv2 or later
     
    122122== Changelog ==
    123123
     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
    124138= 3.0.5 - Jul 28, 2025 =
    125139* Fix: Resolve an critical issue on plugin dependency management.
  • dokan-kits/trunk/vendor/composer/autoload_files.php

    r3316541 r3342033  
    88return array(
    99    '01291fb7cfd94d60789aab7b301a2759' => $baseDir . '/includes/functions.php',
    10     '35307db28518236067ef9fbb750f5259' => $baseDir . '/includes/functions-settings.php',
    1110);
  • dokan-kits/trunk/vendor/composer/autoload_static.php

    r3316541 r3342033  
    99    public static $files = array (
    1010        '01291fb7cfd94d60789aab7b301a2759' => __DIR__ . '/../..' . '/includes/functions.php',
    11         '35307db28518236067ef9fbb750f5259' => __DIR__ . '/../..' . '/includes/functions-settings.php',
    1211    );
    1312
  • dokan-kits/trunk/vendor/composer/installed.php

    r3335424 r3342033  
    44        'pretty_version' => 'dev-trunk',
    55        'version' => 'dev-trunk',
    6         'reference' => '5d7b2d955c641f3cd4ead22335b127cad4b6d33b',
     6        'reference' => '97b7d859902423feca4890bc84a4a33701648445',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    1414            'pretty_version' => 'dev-trunk',
    1515            'version' => 'dev-trunk',
    16             'reference' => '5d7b2d955c641f3cd4ead22335b127cad4b6d33b',
     16            'reference' => '97b7d859902423feca4890bc84a4a33701648445',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.