Plugin Directory

Changeset 3249973


Ignore:
Timestamp:
03/03/2025 10:52:58 PM (13 months ago)
Author:
stephen1204paul
Message:

Update to version 1.1.0

Location:
lexia-command
Files:
14 edited
1 copied

Legend:

Unmodified
Added
Removed
  • lexia-command/tags/1.1.0/README.txt

    r3239250 r3249973  
    44Requires at least: 6.0
    55Tested up to: 6.7
    6 Stable tag: 1.0.1
     6Stable tag: 1.1.0
    77Requires PHP: 7.4
    88License: GPLv2 or later
     
    7373== Changelog ==
    7474
     75= 1.1.0 =
     76* Updated plugin core for improved performance and compatibility
     77* Enhanced command bar interface
     78* Added new keyboard shortcuts for faster navigation
     79
    7580= 1.0.1 =
    7681* Added feedback notice for collecting feedback
     
    8590== Upgrade Notice ==
    8691
     92= 1.1.0 =
     93* Updated plugin core for improved performance and compatibility
     94* Enhanced command bar interface
     95* Added new keyboard shortcuts for faster navigation
     96
    8797= 1.0.1 =
    8898* Added feedback notice for collecting feedback
  • lexia-command/tags/1.1.0/build/index.asset.php

    r3210776 r3249973  
    1 <?php return array('dependencies' => array('react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => '476128092f82f3574087');
     1<?php return array('dependencies' => array('react', 'react-dom', 'wp-api-fetch', 'wp-element', 'wp-i18n'), 'version' => 'e7743b0175f6dd968ecd');
  • lexia-command/tags/1.1.0/build/index.css

    r3210776 r3249973  
    1 .lexia-command-modal{margin:auto;max-width:600px!important}.lexia-command-container{display:flex;flex-direction:column;gap:1rem}.lexia-command-search{width:100%}.lexia-command-search input{background:#f8f9fa;border:1px solid #ddd;border-radius:6px;font-size:1.2em;padding:.8em;width:100%}.lexia-command-results{max-height:400px;overflow-y:auto;padding:.5rem}.lexia-command-results ul{list-style:none;margin:0;padding:0}.lexia-command-result{align-items:center;border-radius:6px;cursor:pointer;display:flex;margin:.3em 0;padding:.8em;transition:all .2s ease}.lexia-command-result.selected{background-color:#0073aa;color:#fff}.lexia-command-result:not(.selected):hover{background-color:#f0f0f0}.lexia-command-result-icon{font-size:1.2em;margin-right:12px;min-width:24px;text-align:center}.lexia-command-result-title{flex-grow:1;font-size:1em}.lexia-command-empty-state,.lexia-command-loading,.lexia-command-no-results{color:#666;padding:2em;text-align:center}.components-modal__screen-overlay{animation:fadeIn .2s ease-in-out;background-color:rgba(0,0,0,.7)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lexia-command-shortcut{align-items:center;color:#666;display:flex;font-size:.9em;gap:4px;margin-left:auto;padding-left:12px}.lexia-command-shortcut kbd{background:#f0f0f0;border:1px solid #ddd;border-radius:4px;font-family:monospace;padding:2px 6px}
     1.lexia-command-modal{background:rgba(32,33,35,.95)!important;border:1px solid hsla(0,0%,100%,.1)!important;border-radius:12px!important;box-shadow:0 8px 32px rgba(0,0,0,.3)!important;max-width:980px!important;width:100%}.lexia-command-container{display:flex;flex-direction:column;gap:.5rem;max-height:80vh;overflow:hidden;padding:8px}.lexia-command-search{background:rgba(32,33,35,.95);background:hsla(0,0%,100%,.05)!important;border-bottom:1px solid hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.1)!important;border-radius:8px!important;caret-color:#fff!important;color:#fff!important;font-weight:500!important;margin-bottom:8px;padding:8px 0;padding:12px 16px!important;position:sticky;text-shadow:0 0 1px hsla(0,0%,100%,.5)!important;top:0;transition:all .2s ease!important;width:100%;z-index:10}.lexia-command-search:focus{background:hsla(0,0%,100%,.08)!important;border-color:hsla(0,0%,100%,.2)!important;outline:none!important}.lexia-command-results{flex:1;overflow-y:auto;padding:4px;scroll-behavior:auto}.lexia-command-results::-webkit-scrollbar{width:6px}.lexia-command-results::-webkit-scrollbar-track{background:transparent}.lexia-command-results::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2);border-radius:3px}.lexia-command-results ul{list-style:none;margin:0;padding:0}.lexia-command-result{align-items:center;border-radius:6px;color:#fff;cursor:pointer;display:flex;margin:2px 0;padding:8px 12px;transition:all .15s ease}.lexia-command-result.selected{background-color:hsla(0,0%,100%,.1)}.lexia-command-result:not(.selected):hover{background-color:hsla(0,0%,100%,.05)}.lexia-command-result-icon{font-size:1.1em;margin-right:12px;min-width:24px;opacity:.8;text-align:center}.lexia-command-result-title{flex-grow:1;font-size:.95em}.lexia-command-empty-state,.lexia-command-loading,.lexia-command-no-results{color:hsla(0,0%,100%,.6);font-size:.9em;padding:2em;text-align:center}.components-modal__screen-overlay{animation:fadeIn .2s ease-in-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:rgba(0,0,0,.7)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lexia-command-shortcut{align-items:center;color:hsla(0,0%,100%,.4);display:flex;font-size:.85em;gap:4px;margin-left:auto;padding-left:12px}.lexia-command-shortcut kbd{background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2);border-radius:4px;font-family:monospace;font-size:.9em;padding:2px 6px}.components-modal__header{background:transparent!important;border-bottom:1px solid hsla(0,0%,100%,.1)!important}.components-modal__header .components-modal__header-heading{color:#fff!important;font-size:1rem!important}.components-modal__header .components-button{color:hsla(0,0%,100%,.6)!important}.install-plugin-icon{max-width:90px}.px-4{padding-left:1rem!important;padding-right:1rem!important}.w-10{width:10%!important}.w-20{width:20%!important}.w-65{width:65%!important}.w-5{width:5%!important}.w-100{width:100%!important}.lexia-command-modal .components-modal__content{overflow-y:hidden!important}.lexia-command-modal-overlay{align-items:flex-start;bottom:0;display:flex;justify-content:center;left:0;padding-top:15vh;position:fixed;right:0;top:0;z-index:100000}[cmdk-root]{background:rgba(32,33,35,.95);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.3);max-width:980px;overflow:hidden}[cmdk-input],[cmdk-root]{border:1px solid hsla(0,0%,100%,.1);width:100%}[cmdk-input]{background:hsla(0,0%,100%,.05);border-radius:8px;caret-color:#fff;color:#fff;font-size:1rem;padding:12px 16px;transition:all .2s ease}[cmdk-input]:focus{background:hsla(0,0%,100%,.08);border-color:hsla(0,0%,100%,.2);outline:none}[cmdk-list]{margin:0;max-height:70vh;overflow-y:auto;padding:4px;scroll-behavior:auto;scrollbar-width:thin}[cmdk-list]::-webkit-scrollbar{width:6px}[cmdk-list]::-webkit-scrollbar-track{background:transparent}[cmdk-list]::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2);border-radius:3px}[cmdk-item]{align-items:center;border-radius:6px;box-sizing:border-box;color:#fff;cursor:pointer;display:flex;margin:2px 0;padding:8px 12px;transition:all .15s ease;width:100%}[cmdk-item][data-selected=true]{background-color:hsla(0,0%,100%,.1)}[cmdk-item]:not([data-selected=true]):hover{background-color:hsla(0,0%,100%,.05)}
  • lexia-command/tags/1.1.0/build/index.js

    r3210776 r3249973  
    1 (()=>{"use strict";var e={n:a=>{var n=a&&a.__esModule?()=>a.default:()=>a;return e.d(n,{a:n}),n},d:(a,n)=>{for(var t in n)e.o(n,t)&&!e.o(a,t)&&Object.defineProperty(a,t,{enumerable:!0,get:n[t]})},o:(e,a)=>Object.prototype.hasOwnProperty.call(e,a)};const a=window.wp.element,n=window.wp.i18n,t=window.wp.apiFetch;var o=e.n(t);const i=window.wp.components;function s(e,n){(0,a.useEffect)((()=>{const a=a=>{(/Mac|iPod|iPhone|iPad/.test(navigator.platform)?a.metaKey:a.ctrlKey)&&a.key.toLowerCase()===e.key.toLowerCase()&&n(a)};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)}),[e,n])}const r="create",l="manage",c="content",d="plugins",m="settings",w="users",p=[{id:"create-page",type:r,category:c,title:(0,n.__)("Create a new page","lexia-command"),keywords:["new page","add page","create page"],icon:"📄",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}post-new.php?post_type=page`}},{id:"create-post",type:r,category:c,title:(0,n.__)("Create a new post","lexia-command"),keywords:["new post","add post","create post","write"],icon:"✏️",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}post-new.php`}},{id:"media-library",type:l,category:c,title:(0,n.__)("Open Media Library","lexia-command"),keywords:["media","images","library","files"],icon:"🖼️",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}upload.php`}},{id:"plugins",type:l,category:d,title:(0,n.__)("Manage Plugins","lexia-command"),keywords:["plugins","add plugin","install plugin"],icon:"🔌",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}plugins.php`}},{id:"settings",type:l,category:m,title:(0,n.__)("Site Settings","lexia-command"),keywords:["settings","options","configure"],icon:"⚙️",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}options-general.php`}},{id:"create-user",type:r,category:w,title:(0,n.__)("Create a new user","lexia-command"),keywords:["new user","add user","create user"],icon:"👤",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}user-new.php`}},{id:"manage-users",type:l,category:w,title:(0,n.__)("Manage Users","lexia-command"),keywords:["users","all users","user list"],icon:"👥",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}users.php`}},{id:"customize",type:l,category:m,title:(0,n.__)("Customize Theme","lexia-command"),keywords:["customize","theme","appearance"],icon:"🎨",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}customize.php`}},{id:"menus",type:l,category:c,title:(0,n.__)("Manage Menus","lexia-command"),keywords:["menus","navigation","nav"],icon:"📋",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}nav-menus.php`}}],u=window.ReactJSXRuntime,y=function(){const[e,t]=(0,a.useState)(!1),[r,l]=(0,a.useState)(""),[c,y]=(0,a.useState)([]),[g,h]=(0,a.useState)(!1),[x,f]=(0,a.useState)(0),_=(0,a.useCallback)((()=>{t(!0),f(0)}),[]),C=(0,a.useCallback)((()=>{t(!1),l(""),y([]),f(0)}),[]);return s({key:"k",metaKey:!0},(e=>{e.preventDefault(),_()})),s({key:"ArrowDown"},(a=>{e&&c.length>0&&(a.preventDefault(),f((e=>(e+1)%c.length)))})),s({key:"ArrowUp"},(a=>{e&&c.length>0&&(a.preventDefault(),f((e=>(e-1+c.length)%c.length)))})),s({key:"Enter"},(a=>{if(e&&c.length>0){a.preventDefault();const e=c[x];e.action&&(e.action(),C())}})),(0,a.useEffect)((()=>{if(!r)return y([]),void f(0);const e=setTimeout((async()=>{h(!0);try{const e=function(e){if(!e)return[];const a=e.toLowerCase();return p.filter((e=>!(e.category===d&&!window.lexiaCommandData.userCaps.manage_options)&&!(e.category===m&&!window.lexiaCommandData.userCaps.manage_options)&&!(e.category===w&&!window.lexiaCommandData.userCaps.manage_options)&&(e.title.toLowerCase().includes(a)||e.keywords.some((e=>e.toLowerCase().includes(a))))))}(r),a=new URLSearchParams({query:r}).toString(),n=await o()({path:`/${window.lexiaCommandData.restNamespace}/search?${a}`,method:"GET"});y([...e,...n.data.map((e=>({...e,icon:"📝",action:()=>{window.location.href=e.url}})))])}catch(e){console.error("Search failed:",e),y(commandResults||[])}finally{h(!1)}}),300);return()=>clearTimeout(e)}),[r]),e?(0,u.jsx)(i.Modal,{title:(0,n.__)("LexiaCommand","lexia-command"),onRequestClose:C,className:"lexia-command-modal",children:(0,u.jsxs)("div",{className:"lexia-command-container",children:[(0,u.jsx)(i.SearchControl,{value:r,onChange:l,placeholder:(0,n.__)("Type a command or search...","lexia-command"),className:"lexia-command-search",autoComplete:"off",autoFocus:!0}),(0,u.jsx)("div",{className:"lexia-command-results",children:g?(0,u.jsx)("div",{className:"lexia-command-loading",children:(0,n.__)("Searching...","lexia-command")}):c.length>0?(0,u.jsx)("ul",{children:c.map(((e,a)=>(0,u.jsxs)("li",{className:"lexia-command-result "+(a===x?"selected":""),onClick:()=>{e.action(),C()},onMouseEnter:()=>f(a),children:[(0,u.jsx)("span",{className:"lexia-command-result-icon",children:e.icon}),(0,u.jsx)("span",{className:"lexia-command-result-title",children:e.title})]},e.id||a)))}):r?(0,u.jsx)("div",{className:"lexia-command-no-results",children:(0,n.__)("No results found","lexia-command")}):(0,u.jsx)("div",{className:"lexia-command-empty-state",children:(0,n.__)("Start typing to search...","lexia-command")})})]})}):null};(0,a.render)((0,u.jsx)(y,{}),document.getElementById("lexia-command-root"))})();
     1(()=>{"use strict";var e,t,n={20:(e,t,n)=>{var r=n(609),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,a={},u=null,s=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(s=t.ref),t)i.call(t,r)&&!c.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:o,type:e,key:u,ref:s,props:a,_owner:l.current}}t.Fragment=a,t.jsx=u,t.jsxs=u},848:(e,t,n)=>{e.exports=n(20)},493:(e,t,n)=>{var r=n(609),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useState,i=r.useEffect,l=r.useLayoutEffect,c=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(e){return!0}}var s="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),o=r[0].inst,s=r[1];return l((function(){o.value=n,o.getSnapshot=t,u(o)&&s({inst:o})}),[e,n,t]),i((function(){return u(o)&&s({inst:o}),e((function(){u(o)&&s({inst:o})}))}),[e]),c(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:s},888:(e,t,n)=>{e.exports=n(493)},609:e=>{e.exports=window.React}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={exports:{}};return n[e](a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(n,r){if(1&r&&(n=this(n)),8&r)return n;if("object"==typeof n&&n){if(4&r&&n.__esModule)return n;if(16&r&&"function"==typeof n.then)return n}var a=Object.create(null);o.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var l=2&r&&n;"object"==typeof l&&!~e.indexOf(l);l=t(l))Object.getOwnPropertyNames(l).forEach((e=>i[e]=()=>n[e]));return i.default=()=>n,o.d(a,i),a},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nc=void 0;var a=o(609),i=o.t(a,2);const l=window.wp.element,c=window.wp.i18n,u=window.wp.apiFetch;var s=o.n(u),d=.999,f=/[\\\/_+.#"@\[\(\{&]/,m=/[\\\/_+.#"@\[\(\{&]/g,p=/[\s-]/,v=/[\s-]/g;function g(e,t,n,r,o,a,i){if(a===t.length)return o===e.length?1:.99;var l=`${o},${a}`;if(void 0!==i[l])return i[l];for(var c,u,s,h,y=r.charAt(a),w=n.indexOf(y,o),E=0;w>=0;)(c=g(e,t,n,r,w+1,a+1,i))>E&&(w===o?c*=1:f.test(e.charAt(w-1))?(c*=.8,(s=e.slice(o,w-1).match(m))&&o>0&&(c*=Math.pow(d,s.length))):p.test(e.charAt(w-1))?(c*=.9,(h=e.slice(o,w-1).match(v))&&o>0&&(c*=Math.pow(d,h.length))):(c*=.17,o>0&&(c*=Math.pow(d,w-o))),e.charAt(w)!==t.charAt(a)&&(c*=.9999)),(c<.1&&n.charAt(w-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(w-1)!==r.charAt(a))&&.1*(u=g(e,t,n,r,w+1,a+2,i))>c&&(c=.1*u),c>E&&(E=c),w=n.indexOf(y,w+1);return i[l]=E,E}function h(e){return e.toLowerCase().replace(v," ")}function y(e,t,n){return g(e=n&&n.length>0?e+" "+n.join(" "):e,t,h(e),h(t),0,0,{})}function w(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}function E(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function b(...e){return t=>{let n=!1;const r=e.map((e=>{const r=E(e,t);return n||"function"!=typeof r||(n=!0),r}));if(n)return()=>{for(let t=0;t<r.length;t++){const n=r[t];"function"==typeof n?n():E(e[t],null)}}}}function x(...e){return a.useCallback(b(...e),e)}var C=o(848);function S(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const r=n.reduce(((t,{useScope:n,scopeName:r})=>({...t,...n(e)[`__scope${r}`]})),{});return a.useMemo((()=>({[`__scope${t.scopeName}`]:r})),[r])}};return n.scopeName=t.scopeName,n}var N=Boolean(globalThis?.document)?a.useLayoutEffect:()=>{},_=i["useId".toString()]||(()=>{}),P=0;function R(e){const[t,n]=a.useState(_());return N((()=>{e||n((e=>e??String(P++)))}),[e]),e||(t?`radix-${t}`:"")}function k(e){const t=a.useRef(e);return a.useEffect((()=>{t.current=e})),a.useMemo((()=>(...e)=>t.current?.(...e)),[])}const D=window.ReactDOM;var O=a.forwardRef(((e,t)=>{const{children:n,...r}=e,o=a.Children.toArray(n),i=o.find(A);if(i){const e=i.props.children,n=o.map((t=>t===i?a.Children.count(e)>1?a.Children.only(null):a.isValidElement(e)?e.props.children:null:t));return(0,C.jsx)(M,{...r,ref:t,children:a.isValidElement(e)?a.cloneElement(e,void 0,n):null})}return(0,C.jsx)(M,{...r,ref:t,children:n})}));O.displayName="Slot";var M=a.forwardRef(((e,t)=>{const{children:n,...r}=e;if(a.isValidElement(n)){const e=function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}(n),o=function(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...e)=>{a(...e),o(...e)}:o&&(n[r]=o):"style"===r?n[r]={...o,...a}:"className"===r&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}(r,n.props);return n.type!==a.Fragment&&(o.ref=t?b(t,e):e),a.cloneElement(n,o)}return a.Children.count(n)>1?a.Children.only(null):null}));M.displayName="SlotClone";var I=({children:e})=>(0,C.jsx)(C.Fragment,{children:e});function A(e){return a.isValidElement(e)&&e.type===I}var L,T=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,t)=>{const n=a.forwardRef(((e,n)=>{const{asChild:r,...o}=e,a=r?O:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,C.jsx)(a,{...o,ref:n})}));return n.displayName=`Primitive.${t}`,{...e,[t]:n}}),{}),j="dismissableLayer.update",F=a.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),$=a.forwardRef(((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:l,onDismiss:c,...u}=e,s=a.useContext(F),[d,f]=a.useState(null),m=d?.ownerDocument??globalThis?.document,[,p]=a.useState({}),v=x(t,(e=>f(e))),g=Array.from(s.layers),[h]=[...s.layersWithOutsidePointerEventsDisabled].slice(-1),y=g.indexOf(h),E=d?g.indexOf(d):-1,b=s.layersWithOutsidePointerEventsDisabled.size>0,S=E>=y,N=function(e,t=globalThis?.document){const n=k(e),r=a.useRef(!1),o=a.useRef((()=>{}));return a.useEffect((()=>{const e=e=>{if(e.target&&!r.current){let r=function(){U("dismissableLayer.pointerDownOutside",n,a,{discrete:!0})};const a={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",o.current),o.current=r,t.addEventListener("click",o.current,{once:!0})):r()}else t.removeEventListener("click",o.current);r.current=!1},a=window.setTimeout((()=>{t.addEventListener("pointerdown",e)}),0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",e),t.removeEventListener("click",o.current)}}),[t,n]),{onPointerDownCapture:()=>r.current=!0}}((e=>{const t=e.target,n=[...s.branches].some((e=>e.contains(t)));S&&!n&&(o?.(e),l?.(e),e.defaultPrevented||c?.())}),m),_=function(e,t=globalThis?.document){const n=k(e),r=a.useRef(!1);return a.useEffect((()=>{const e=e=>{e.target&&!r.current&&U("dismissableLayer.focusOutside",n,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)}),[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}((e=>{const t=e.target;[...s.branches].some((e=>e.contains(t)))||(i?.(e),l?.(e),e.defaultPrevented||c?.())}),m);return function(e,t=globalThis?.document){const n=k(e);a.useEffect((()=>{const e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})}),[n,t])}((e=>{E===s.layers.size-1&&(r?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))}),m),a.useEffect((()=>{if(d)return n&&(0===s.layersWithOutsidePointerEventsDisabled.size&&(L=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),s.layersWithOutsidePointerEventsDisabled.add(d)),s.layers.add(d),W(),()=>{n&&1===s.layersWithOutsidePointerEventsDisabled.size&&(m.body.style.pointerEvents=L)}}),[d,m,n,s]),a.useEffect((()=>()=>{d&&(s.layers.delete(d),s.layersWithOutsidePointerEventsDisabled.delete(d),W())}),[d,s]),a.useEffect((()=>{const e=()=>p({});return document.addEventListener(j,e),()=>document.removeEventListener(j,e)}),[]),(0,C.jsx)(T.div,{...u,ref:v,style:{pointerEvents:b?S?"auto":"none":void 0,...e.style},onFocusCapture:w(e.onFocusCapture,_.onFocusCapture),onBlurCapture:w(e.onBlurCapture,_.onBlurCapture),onPointerDownCapture:w(e.onPointerDownCapture,N.onPointerDownCapture)})}));function W(){const e=new CustomEvent(j);document.dispatchEvent(e)}function U(e,t,n,{discrete:r}){const o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?function(e,t){e&&D.flushSync((()=>e.dispatchEvent(t)))}(o,a):o.dispatchEvent(a)}$.displayName="DismissableLayer",a.forwardRef(((e,t)=>{const n=a.useContext(F),r=a.useRef(null),o=x(t,r);return a.useEffect((()=>{const e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}}),[n.branches]),(0,C.jsx)(T.div,{...e,ref:o})})).displayName="DismissableLayerBranch";var B="focusScope.autoFocusOnMount",K="focusScope.autoFocusOnUnmount",q={bubbles:!1,cancelable:!0},V=a.forwardRef(((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...l}=e,[c,u]=a.useState(null),s=k(o),d=k(i),f=a.useRef(null),m=x(t,(e=>u(e))),p=a.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;a.useEffect((()=>{if(r){let e=function(e){if(p.paused||!c)return;const t=e.target;c.contains(t)?f.current=t:X(f.current,{select:!0})},t=function(e){if(p.paused||!c)return;const t=e.relatedTarget;null!==t&&(c.contains(t)||X(f.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(const t of e)t.removedNodes.length>0&&X(c)};document.addEventListener("focusin",e),document.addEventListener("focusout",t);const r=new MutationObserver(n);return c&&r.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}}),[r,c,p.paused]),a.useEffect((()=>{if(c){Z.add(p);const e=document.activeElement;if(!c.contains(e)){const t=new CustomEvent(B,q);c.addEventListener(B,s),c.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(X(r,{select:t}),document.activeElement!==n)return}(z(c).filter((e=>"A"!==e.tagName)),{select:!0}),document.activeElement===e&&X(c))}return()=>{c.removeEventListener(B,s),setTimeout((()=>{const t=new CustomEvent(K,q);c.addEventListener(K,d),c.dispatchEvent(t),t.defaultPrevented||X(e??document.body,{select:!0}),c.removeEventListener(K,d),Z.remove(p)}),0)}}}),[c,s,d,p]);const v=a.useCallback((e=>{if(!n&&!r)return;if(p.paused)return;const t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,o=document.activeElement;if(t&&o){const t=e.currentTarget,[r,a]=function(e){const t=z(e);return[H(t,e),H(t.reverse(),e)]}(t);r&&a?e.shiftKey||o!==a?e.shiftKey&&o===r&&(e.preventDefault(),n&&X(a,{select:!0})):(e.preventDefault(),n&&X(r,{select:!0})):o===t&&e.preventDefault()}}),[n,r,p.paused]);return(0,C.jsx)(T.div,{tabIndex:-1,...l,ref:m,onKeyDown:v})}));function z(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function H(e,t){for(const n of e)if(!Y(n,{upTo:t}))return n}function Y(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(void 0!==t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}function X(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&function(e){return e instanceof HTMLInputElement&&"select"in e}(e)&&t&&e.select()}}V.displayName="FocusScope";var Z=function(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=G(e,t),e.unshift(t)},remove(t){e=G(e,t),e[0]?.resume()}}}();function G(e,t){const n=[...e],r=n.indexOf(t);return-1!==r&&n.splice(r,1),n}var J=a.forwardRef(((e,t)=>{const{container:n,...r}=e,[o,i]=a.useState(!1);N((()=>i(!0)),[]);const l=n||o&&globalThis?.document?.body;return l?D.createPortal((0,C.jsx)(T.div,{...r,ref:t}),l):null}));J.displayName="Portal";var Q=e=>{const{present:t,children:n}=e,r=function(e){const[t,n]=a.useState(),r=a.useRef({}),o=a.useRef(e),i=a.useRef("none"),l=e?"mounted":"unmounted",[c,u]=function(e,t){return a.useReducer(((e,n)=>t[e][n]??e),e)}(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return a.useEffect((()=>{const e=ee(r.current);i.current="mounted"===c?e:"none"}),[c]),N((()=>{const t=r.current,n=o.current;if(n!==e){const r=i.current,a=ee(t);u(e?"MOUNT":"none"===a||"none"===t?.display?"UNMOUNT":n&&r!==a?"ANIMATION_OUT":"UNMOUNT"),o.current=e}}),[e,u]),N((()=>{if(t){let e;const n=t.ownerDocument.defaultView??window,a=a=>{const i=ee(r.current).includes(a.animationName);if(a.target===t&&i&&(u("ANIMATION_END"),!o.current)){const r=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout((()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=r)}))}},l=e=>{e.target===t&&(i.current=ee(r.current))};return t.addEventListener("animationstart",l),t.addEventListener("animationcancel",a),t.addEventListener("animationend",a),()=>{n.clearTimeout(e),t.removeEventListener("animationstart",l),t.removeEventListener("animationcancel",a),t.removeEventListener("animationend",a)}}u("ANIMATION_END")}),[t,u]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:a.useCallback((e=>{e&&(r.current=getComputedStyle(e)),n(e)}),[])}}(t),o="function"==typeof n?n({present:r.isPresent}):a.Children.only(n),i=x(r.ref,function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}(o));return"function"==typeof n||r.isPresent?a.cloneElement(o,{ref:i}):null};function ee(e){return e?.animationName||"none"}Q.displayName="Presence";var te=0;function ne(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var re=function(){return re=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},re.apply(this,arguments)};function oe(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var ae="right-scroll-bar-position",ie="width-before-scroll-bar";function le(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var ce="undefined"!=typeof window?a.useLayoutEffect:a.useEffect,ue=new WeakMap;function se(e){return e}var de=function(e){void 0===e&&(e={});var t=function(e,t){void 0===t&&(t=se);var n=[],r=!1;return{read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var o=t(e,r);return n.push(o),function(){n=n.filter((function(e){return e!==o}))}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var o=n;n=[],o.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},i=function(){return Promise.resolve().then(a)};i(),n={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),n}}}}}(null);return t.options=re({async:!0,ssr:!1},e),t}(),fe=function(){},me=a.forwardRef((function(e,t){var n=a.useRef(null),r=a.useState({onScrollCapture:fe,onWheelCapture:fe,onTouchMoveCapture:fe}),o=r[0],i=r[1],l=e.forwardProps,c=e.children,u=e.className,s=e.removeScrollBar,d=e.enabled,f=e.shards,m=e.sideCar,p=e.noIsolation,v=e.inert,g=e.allowPinchZoom,h=e.as,y=void 0===h?"div":h,w=e.gapMode,E=oe(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as","gapMode"]),b=m,x=function(e,t){var n,r,o,i=(n=t||null,r=function(t){return e.forEach((function(e){return le(e,t)}))},(o=(0,a.useState)((function(){return{value:n,callback:r,facade:{get current(){return o.value},set current(e){var t=o.value;t!==e&&(o.value=e,o.callback(e,t))}}}}))[0]).callback=r,o.facade);return ce((function(){var t=ue.get(i);if(t){var n=new Set(t),r=new Set(e),o=i.current;n.forEach((function(e){r.has(e)||le(e,null)})),r.forEach((function(e){n.has(e)||le(e,o)}))}ue.set(i,e)}),[e]),i}([n,t]),C=re(re({},E),o);return a.createElement(a.Fragment,null,d&&a.createElement(b,{sideCar:de,removeScrollBar:s,shards:f,noIsolation:p,inert:v,setCallbacks:i,allowPinchZoom:!!g,lockRef:n,gapMode:w}),l?a.cloneElement(a.Children.only(c),re(re({},C),{ref:x})):a.createElement(y,re({},C,{className:u,ref:x}),c))}));me.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},me.classNames={fullWidth:ie,zeroRight:ae};var pe=function(e){var t=e.sideCar,n=oe(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return a.createElement(r,re({},n))};pe.isSideCarExport=!0;var ve=function(){var e=0,t=null;return{add:function(n){var r,a;0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=o.nc;return t&&e.setAttribute("nonce",t),e}())&&(a=n,(r=t).styleSheet?r.styleSheet.cssText=a:r.appendChild(document.createTextNode(a)),function(e){(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}(t)),e++},remove:function(){! --e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},ge=function(){var e,t=(e=ve(),function(t,n){a.useEffect((function(){return e.add(t),function(){e.remove()}}),[t&&n])});return function(e){var n=e.styles,r=e.dynamic;return t(n,r),null}},he={left:0,top:0,right:0,gap:0},ye=function(e){return parseInt(e||"",10)||0},we=ge(),Ee="data-scroll-locked",be=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,l=e.gap;return void 0===n&&(n="margin"),"\n  .".concat("with-scroll-bars-hidden"," {\n   overflow: hidden ").concat(r,";\n   padding-right: ").concat(l,"px ").concat(r,";\n  }\n  body[").concat(Ee,"] {\n    overflow: hidden ").concat(r,";\n    overscroll-behavior: contain;\n    ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n    padding-left: ".concat(o,"px;\n    padding-top: ").concat(a,"px;\n    padding-right: ").concat(i,"px;\n    margin-left:0;\n    margin-top:0;\n    margin-right: ").concat(l,"px ").concat(r,";\n    "),"padding"===n&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),"\n  }\n  \n  .").concat(ae," {\n    right: ").concat(l,"px ").concat(r,";\n  }\n  \n  .").concat(ie," {\n    margin-right: ").concat(l,"px ").concat(r,";\n  }\n  \n  .").concat(ae," .").concat(ae," {\n    right: 0 ").concat(r,";\n  }\n  \n  .").concat(ie," .").concat(ie," {\n    margin-right: 0 ").concat(r,";\n  }\n  \n  body[").concat(Ee,"] {\n    ").concat("--removed-body-scroll-bar-size",": ").concat(l,"px;\n  }\n")},xe=function(){var e=parseInt(document.body.getAttribute(Ee)||"0",10);return isFinite(e)?e:0},Ce=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;a.useEffect((function(){return document.body.setAttribute(Ee,(xe()+1).toString()),function(){var e=xe()-1;e<=0?document.body.removeAttribute(Ee):document.body.setAttribute(Ee,e.toString())}}),[]);var i=a.useMemo((function(){return function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return he;var t=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[ye(n),ye(r),ye(o)]}(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}}(o)}),[o]);return a.createElement(we,{styles:be(i,!t,o,n?"":"!important")})},Se=!1;if("undefined"!=typeof window)try{var Ne=Object.defineProperty({},"passive",{get:function(){return Se=!0,!0}});window.addEventListener("test",Ne,Ne),window.removeEventListener("test",Ne,Ne)}catch(e){Se=!1}var _e=!!Se&&{passive:!1},Pe=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&!function(e){return"TEXTAREA"===e.tagName}(e)&&"visible"===n[t])},Re=function(e,t){var n=t.ownerDocument,r=t;do{if("undefined"!=typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),ke(e,r)){var o=De(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},ke=function(e,t){return"v"===e?function(e){return Pe(e,"overflowY")}(t):function(e){return Pe(e,"overflowX")}(t)},De=function(e,t){return"v"===e?[(n=t).scrollTop,n.scrollHeight,n.clientHeight]:function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]}(t);var n},Oe=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Me=function(e){return[e.deltaX,e.deltaY]},Ie=function(e){return e&&"current"in e?e.current:e},Ae=function(e){return"\n  .block-interactivity-".concat(e," {pointer-events: none;}\n  .allow-interactivity-").concat(e," {pointer-events: all;}\n")},Le=0,Te=[];function je(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Fe=($e=function(e){var t=a.useRef([]),n=a.useRef([0,0]),r=a.useRef(),o=a.useState(Le++)[0],i=a.useState(ge)[0],l=a.useRef(e);a.useEffect((function(){l.current=e}),[e]),a.useEffect((function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}([e.lockRef.current],(e.shards||[]).map(Ie),!0).filter(Boolean);return t.forEach((function(e){return e.classList.add("allow-interactivity-".concat(o))})),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach((function(e){return e.classList.remove("allow-interactivity-".concat(o))}))}}}),[e.inert,e.lockRef.current,e.shards]);var c=a.useCallback((function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!l.current.allowPinchZoom;var o,a=Oe(e),i=n.current,c="deltaX"in e?e.deltaX:i[0]-a[0],u="deltaY"in e?e.deltaY:i[1]-a[1],s=e.target,d=Math.abs(c)>Math.abs(u)?"h":"v";if("touches"in e&&"h"===d&&"range"===s.type)return!1;var f=Re(d,s);if(!f)return!0;if(f?o=d:(o="v"===d?"h":"v",f=Re(d,s)),!f)return!1;if(!r.current&&"changedTouches"in e&&(c||u)&&(r.current=o),!o)return!0;var m=r.current||o;return function(e,t,n,r){var o=function(e,t){return"h"===e&&"rtl"===t?-1:1}(e,window.getComputedStyle(t).direction),a=o*r,i=n.target,l=t.contains(i),c=!1,u=a>0,s=0,d=0;do{var f=De(e,i),m=f[0],p=f[1]-f[2]-o*m;(m||p)&&ke(e,i)&&(s+=p,d+=m),i=i instanceof ShadowRoot?i.host:i.parentNode}while(!l&&i!==document.body||l&&(t.contains(i)||t===i));return(u&&(Math.abs(s)<1||!1)||!u&&(Math.abs(d)<1||!1))&&(c=!0),c}(m,t,e,"h"===m?c:u)}),[]),u=a.useCallback((function(e){var n=e;if(Te.length&&Te[Te.length-1]===i){var r="deltaY"in n?Me(n):Oe(n),o=t.current.filter((function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&(t=e.delta,o=r,t[0]===o[0]&&t[1]===o[1]);var t,o}))[0];if(o&&o.should)n.cancelable&&n.preventDefault();else if(!o){var a=(l.current.shards||[]).map(Ie).filter(Boolean).filter((function(e){return e.contains(n.target)}));(a.length>0?c(n,a[0]):!l.current.noIsolation)&&n.cancelable&&n.preventDefault()}}}),[]),s=a.useCallback((function(e,n,r,o){var a={name:e,delta:n,target:r,should:o,shadowParent:je(r)};t.current.push(a),setTimeout((function(){t.current=t.current.filter((function(e){return e!==a}))}),1)}),[]),d=a.useCallback((function(e){n.current=Oe(e),r.current=void 0}),[]),f=a.useCallback((function(t){s(t.type,Me(t),t.target,c(t,e.lockRef.current))}),[]),m=a.useCallback((function(t){s(t.type,Oe(t),t.target,c(t,e.lockRef.current))}),[]);a.useEffect((function(){return Te.push(i),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:m}),document.addEventListener("wheel",u,_e),document.addEventListener("touchmove",u,_e),document.addEventListener("touchstart",d,_e),function(){Te=Te.filter((function(e){return e!==i})),document.removeEventListener("wheel",u,_e),document.removeEventListener("touchmove",u,_e),document.removeEventListener("touchstart",d,_e)}}),[]);var p=e.removeScrollBar,v=e.inert;return a.createElement(a.Fragment,null,v?a.createElement(i,{styles:Ae(o)}):null,p?a.createElement(Ce,{gapMode:e.gapMode}):null)},de.useMedium($e),pe);var $e,We=a.forwardRef((function(e,t){return a.createElement(me,re({},e,{ref:t,sideCar:Fe}))}));We.classNames=me.classNames;const Ue=We;var Be=new WeakMap,Ke=new WeakMap,qe={},Ve=0,ze=function(e){return e&&(e.host||ze(e.parentNode))},He=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||function(e){return"undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body}(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live]"))),function(e,t,n,r){var o=function(e,t){return t.map((function(t){if(e.contains(t))return t;var n=ze(t);return n&&e.contains(n)?n:(console.error("aria-hidden",t,"in not contained inside",e,". Doing nothing"),null)})).filter((function(e){return Boolean(e)}))}(t,Array.isArray(e)?e:[e]);qe[n]||(qe[n]=new WeakMap);var a=qe[n],i=[],l=new Set,c=new Set(o),u=function(e){e&&!l.has(e)&&(l.add(e),u(e.parentNode))};o.forEach(u);var s=function(e){e&&!c.has(e)&&Array.prototype.forEach.call(e.children,(function(e){if(l.has(e))s(e);else try{var t=e.getAttribute(r),o=null!==t&&"false"!==t,c=(Be.get(e)||0)+1,u=(a.get(e)||0)+1;Be.set(e,c),a.set(e,u),i.push(e),1===c&&o&&Ke.set(e,!0),1===u&&e.setAttribute(n,"true"),o||e.setAttribute(r,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}}))};return s(t),l.clear(),Ve++,function(){i.forEach((function(e){var t=Be.get(e)-1,o=a.get(e)-1;Be.set(e,t),a.set(e,o),t||(Ke.has(e)||e.removeAttribute(r),Ke.delete(e)),o||e.removeAttribute(n)})),--Ve||(Be=new WeakMap,Be=new WeakMap,Ke=new WeakMap,qe={})}}(r,o,n,"aria-hidden")):function(){return null}},Ye="Dialog",[Xe,Ze]=function(e,t=[]){let n=[];const r=()=>{const t=n.map((e=>a.createContext(e)));return function(n){const r=n?.[e]||t;return a.useMemo((()=>({[`__scope${e}`]:{...n,[e]:r}})),[n,r])}};return r.scopeName=e,[function(t,r){const o=a.createContext(r),i=n.length;n=[...n,r];const l=t=>{const{scope:n,children:r,...l}=t,c=n?.[e]?.[i]||o,u=a.useMemo((()=>l),Object.values(l));return(0,C.jsx)(c.Provider,{value:u,children:r})};return l.displayName=t+"Provider",[l,function(n,l){const c=l?.[e]?.[i]||o,u=a.useContext(c);if(u)return u;if(void 0!==r)return r;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},S(r,...t)]}(Ye),[Ge,Je]=Xe(Ye),Qe=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:i,modal:l=!0}=e,c=a.useRef(null),u=a.useRef(null),[s=!1,d]=function({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,o]=function({defaultProp:e,onChange:t}){const n=a.useState(e),[r]=n,o=a.useRef(r),i=k(t);return a.useEffect((()=>{o.current!==r&&(i(r),o.current=r)}),[r,o,i]),n}({defaultProp:t,onChange:n}),i=void 0!==e,l=i?e:r,c=k(n);return[l,a.useCallback((t=>{if(i){const n="function"==typeof t?t(e):t;n!==e&&c(n)}else o(t)}),[i,e,o,c])]}({prop:r,defaultProp:o,onChange:i});return(0,C.jsx)(Ge,{scope:t,triggerRef:c,contentRef:u,contentId:R(),titleId:R(),descriptionId:R(),open:s,onOpenChange:d,onOpenToggle:a.useCallback((()=>d((e=>!e))),[d]),modal:l,children:n})};Qe.displayName=Ye;var et="DialogTrigger";a.forwardRef(((e,t)=>{const{__scopeDialog:n,...r}=e,o=Je(et,n),a=x(t,o.triggerRef);return(0,C.jsx)(T.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":gt(o.open),...r,ref:a,onClick:w(e.onClick,o.onOpenToggle)})})).displayName=et;var tt="DialogPortal",[nt,rt]=Xe(tt,{forceMount:void 0}),ot=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,i=Je(tt,t);return(0,C.jsx)(nt,{scope:t,forceMount:n,children:a.Children.map(r,(e=>(0,C.jsx)(Q,{present:n||i.open,children:(0,C.jsx)(J,{asChild:!0,container:o,children:e})})))})};ot.displayName=tt;var at="DialogOverlay",it=a.forwardRef(((e,t)=>{const n=rt(at,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=Je(at,e.__scopeDialog);return a.modal?(0,C.jsx)(Q,{present:r||a.open,children:(0,C.jsx)(lt,{...o,ref:t})}):null}));it.displayName=at;var lt=a.forwardRef(((e,t)=>{const{__scopeDialog:n,...r}=e,o=Je(at,n);return(0,C.jsx)(Ue,{as:O,allowPinchZoom:!0,shards:[o.contentRef],children:(0,C.jsx)(T.div,{"data-state":gt(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})})),ct="DialogContent",ut=a.forwardRef(((e,t)=>{const n=rt(ct,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=Je(ct,e.__scopeDialog);return(0,C.jsx)(Q,{present:r||a.open,children:a.modal?(0,C.jsx)(st,{...o,ref:t}):(0,C.jsx)(dt,{...o,ref:t})})}));ut.displayName=ct;var st=a.forwardRef(((e,t)=>{const n=Je(ct,e.__scopeDialog),r=a.useRef(null),o=x(t,n.contentRef,r);return a.useEffect((()=>{const e=r.current;if(e)return He(e)}),[]),(0,C.jsx)(ft,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:w(e.onCloseAutoFocus,(e=>{e.preventDefault(),n.triggerRef.current?.focus()})),onPointerDownOutside:w(e.onPointerDownOutside,(e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()})),onFocusOutside:w(e.onFocusOutside,(e=>e.preventDefault()))})})),dt=a.forwardRef(((e,t)=>{const n=Je(ct,e.__scopeDialog),r=a.useRef(!1),o=a.useRef(!1);return(0,C.jsx)(ft,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));const a=t.target,i=n.triggerRef.current?.contains(a);i&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})})),ft=a.forwardRef(((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:i,...l}=e,c=Je(ct,n),u=a.useRef(null),s=x(t,u);return a.useEffect((()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??ne()),document.body.insertAdjacentElement("beforeend",e[1]??ne()),te++,()=>{1===te&&document.querySelectorAll("[data-radix-focus-guard]").forEach((e=>e.remove())),te--}}),[]),(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(V,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:i,children:(0,C.jsx)($,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":gt(c.open),...l,ref:s,onDismiss:()=>c.onOpenChange(!1)})}),(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(Et,{titleId:c.titleId}),(0,C.jsx)(bt,{contentRef:u,descriptionId:c.descriptionId})]})]})})),mt="DialogTitle";a.forwardRef(((e,t)=>{const{__scopeDialog:n,...r}=e,o=Je(mt,n);return(0,C.jsx)(T.h2,{id:o.titleId,...r,ref:t})})).displayName=mt;var pt="DialogDescription";a.forwardRef(((e,t)=>{const{__scopeDialog:n,...r}=e,o=Je(pt,n);return(0,C.jsx)(T.p,{id:o.descriptionId,...r,ref:t})})).displayName=pt;var vt="DialogClose";function gt(e){return e?"open":"closed"}a.forwardRef(((e,t)=>{const{__scopeDialog:n,...r}=e,o=Je(vt,n);return(0,C.jsx)(T.button,{type:"button",...r,ref:t,onClick:w(e.onClick,(()=>o.onOpenChange(!1)))})})).displayName=vt;var ht="DialogTitleWarning",[yt,wt]=function(e,t){const n=a.createContext(t),r=e=>{const{children:t,...r}=e,o=a.useMemo((()=>r),Object.values(r));return(0,C.jsx)(n.Provider,{value:o,children:t})};return r.displayName=e+"Provider",[r,function(r){const o=a.useContext(n);if(o)return o;if(void 0!==t)return t;throw new Error(`\`${r}\` must be used within \`${e}\``)}]}(ht,{contentName:ct,titleName:mt,docsSlug:"dialog"}),Et=({titleId:e})=>{const t=wt(ht),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return a.useEffect((()=>{e&&(document.getElementById(e)||console.error(n))}),[n,e]),null},bt=({contentRef:e,descriptionId:t})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${wt("DialogDescriptionWarning").contentName}}.`;return a.useEffect((()=>{const r=e.current?.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(n))}),[n,e,t]),null},xt=Qe,Ct=ot,St=it,Nt=ut,_t=o(888),Pt='[cmdk-group=""]',Rt='[cmdk-group-items=""]',kt='[cmdk-item=""]',Dt=`${kt}:not([aria-disabled="true"])`,Ot="cmdk-item-select",Mt="data-value",It=(e,t,n)=>y(e,t,n),At=a.createContext(void 0),Lt=()=>a.useContext(At),Tt=a.createContext(void 0),jt=()=>a.useContext(Tt),Ft=a.createContext(void 0),$t=a.forwardRef(((e,t)=>{let n=Qt((()=>{var t,n;return{search:"",value:null!=(n=null!=(t=e.value)?t:e.defaultValue)?n:"",filtered:{count:0,items:new Map,groups:new Set}}})),r=Qt((()=>new Set)),o=Qt((()=>new Map)),i=Qt((()=>new Map)),l=Qt((()=>new Set)),c=Gt(e),{label:u,children:s,value:d,onValueChange:f,filter:m,shouldFilter:p,loop:v,disablePointerSelection:g=!1,vimBindings:h=!0,...y}=e,w=R(),E=R(),b=R(),x=a.useRef(null),C=rn();Jt((()=>{if(void 0!==d){let e=d.trim();n.current.value=e,S.emit()}}),[d]),Jt((()=>{C(6,O)}),[]);let S=a.useMemo((()=>({subscribe:e=>(l.current.add(e),()=>l.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var o,a,i;if(!Object.is(n.current[e],t)){if(n.current[e]=t,"search"===e)D(),P(),C(1,k);else if("value"===e&&(r||C(5,O),void 0!==(null==(o=c.current)?void 0:o.value))){let e=null!=t?t:"";return void(null==(i=(a=c.current).onValueChange)||i.call(a,e))}S.emit()}},emit:()=>{l.current.forEach((e=>e()))}})),[]),N=a.useMemo((()=>({value:(e,t,r)=>{var o;t!==(null==(o=i.current.get(e))?void 0:o.value)&&(i.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,_(t,r)),C(2,(()=>{P(),S.emit()})))},item:(e,t)=>(r.current.add(e),t&&(o.current.has(t)?o.current.get(t).add(e):o.current.set(t,new Set([e]))),C(3,(()=>{D(),P(),n.current.value||k(),S.emit()})),()=>{i.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=M();C(4,(()=>{D(),(null==t?void 0:t.getAttribute("id"))===e&&k(),S.emit()}))}),group:e=>(o.current.has(e)||o.current.set(e,new Set),()=>{i.current.delete(e),o.current.delete(e)}),filter:()=>c.current.shouldFilter,label:u||e["aria-label"],getDisablePointerSelection:()=>c.current.disablePointerSelection,listId:w,inputId:b,labelId:E,listInnerRef:x})),[]);function _(e,t){var r,o;let a=null!=(o=null==(r=c.current)?void 0:r.filter)?o:It;return e?a(e,n.current.search,t):0}function P(){if(!n.current.search||!1===c.current.shouldFilter)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach((n=>{let r=o.current.get(n),a=0;r.forEach((t=>{let n=e.get(t);a=Math.max(n,a)})),t.push([n,a])}));let r=x.current;I().sort(((t,n)=>{var r,o;let a=t.getAttribute("id"),i=n.getAttribute("id");return(null!=(r=e.get(i))?r:0)-(null!=(o=e.get(a))?o:0)})).forEach((e=>{let t=e.closest(Rt);t?t.appendChild(e.parentElement===t?e:e.closest(`${Rt} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${Rt} > *`))})),t.sort(((e,t)=>t[1]-e[1])).forEach((e=>{var t;let n=null==(t=x.current)?void 0:t.querySelector(`${Pt}[${Mt}="${encodeURIComponent(e[0])}"]`);null==n||n.parentElement.appendChild(n)}))}function k(){let e=I().find((e=>"true"!==e.getAttribute("aria-disabled"))),t=null==e?void 0:e.getAttribute(Mt);S.setState("value",t||void 0)}function D(){var e,t,a,l;if(!n.current.search||!1===c.current.shouldFilter)return void(n.current.filtered.count=r.current.size);n.current.filtered.groups=new Set;let u=0;for(let o of r.current){let r=_(null!=(t=null==(e=i.current.get(o))?void 0:e.value)?t:"",null!=(l=null==(a=i.current.get(o))?void 0:a.keywords)?l:[]);n.current.filtered.items.set(o,r),r>0&&u++}for(let[e,t]of o.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=u}function O(){var e,t,n;let r=M();r&&((null==(e=r.parentElement)?void 0:e.firstChild)===r&&(null==(n=null==(t=r.closest(Pt))?void 0:t.querySelector('[cmdk-group-heading=""]'))||n.scrollIntoView({block:"nearest"})),r.scrollIntoView({block:"nearest"}))}function M(){var e;return null==(e=x.current)?void 0:e.querySelector(`${kt}[aria-selected="true"]`)}function I(){var e;return Array.from((null==(e=x.current)?void 0:e.querySelectorAll(Dt))||[])}function A(e){let t=I()[e];t&&S.setState("value",t.getAttribute(Mt))}function L(e){var t;let n=M(),r=I(),o=r.findIndex((e=>e===n)),a=r[o+e];null!=(t=c.current)&&t.loop&&(a=o+e<0?r[r.length-1]:o+e===r.length?r[0]:r[o+e]),a&&S.setState("value",a.getAttribute(Mt))}function j(e){let t,n=M(),r=null==n?void 0:n.closest(Pt);for(;r&&!t;)r=e>0?Xt(r,Pt):Zt(r,Pt),t=null==r?void 0:r.querySelector(Dt);t?S.setState("value",t.getAttribute(Mt)):L(e)}let F=()=>A(I().length-1),$=e=>{e.preventDefault(),e.metaKey?F():e.altKey?j(1):L(1)},W=e=>{e.preventDefault(),e.metaKey?A(0):e.altKey?j(-1):L(-1)};return a.createElement(T.div,{ref:t,tabIndex:-1,...y,"cmdk-root":"",onKeyDown:e=>{var t;if(null==(t=y.onKeyDown)||t.call(y,e),!e.defaultPrevented)switch(e.key){case"n":case"j":h&&e.ctrlKey&&$(e);break;case"ArrowDown":$(e);break;case"p":case"k":h&&e.ctrlKey&&W(e);break;case"ArrowUp":W(e);break;case"Home":e.preventDefault(),A(0);break;case"End":e.preventDefault(),F();break;case"Enter":if(!e.nativeEvent.isComposing&&229!==e.keyCode){e.preventDefault();let t=M();if(t){let e=new Event(Ot);t.dispatchEvent(e)}}}}},a.createElement("label",{"cmdk-label":"",htmlFor:N.inputId,id:N.labelId,style:an},u),on(e,(e=>a.createElement(Tt.Provider,{value:S},a.createElement(At.Provider,{value:N},e)))))})),Wt=a.forwardRef(((e,t)=>{var n,r;let o=R(),i=a.useRef(null),l=a.useContext(Ft),c=Lt(),u=Gt(e),s=null!=(r=null==(n=u.current)?void 0:n.forceMount)?r:null==l?void 0:l.forceMount;Jt((()=>{if(!s)return c.item(o,null==l?void 0:l.id)}),[s]);let d=nn(o,i,[e.value,e.children,i],e.keywords),f=jt(),m=tn((e=>e.value&&e.value===d.current)),p=tn((e=>!(!s&&!1!==c.filter())||!e.search||e.filtered.items.get(o)>0));function v(){var e,t;g(),null==(t=(e=u.current).onSelect)||t.call(e,d.current)}function g(){f.setState("value",d.current,!0)}if(a.useEffect((()=>{let t=i.current;if(t&&!e.disabled)return t.addEventListener(Ot,v),()=>t.removeEventListener(Ot,v)}),[p,e.onSelect,e.disabled]),!p)return null;let{disabled:h,value:y,onSelect:w,forceMount:E,keywords:b,...x}=e;return a.createElement(T.div,{ref:en([i,t]),...x,id:o,"cmdk-item":"",role:"option","aria-disabled":!!h,"aria-selected":!!m,"data-disabled":!!h,"data-selected":!!m,onPointerMove:h||c.getDisablePointerSelection()?void 0:g,onClick:h?void 0:v},e.children)})),Ut=a.forwardRef(((e,t)=>{let{heading:n,children:r,forceMount:o,...i}=e,l=R(),c=a.useRef(null),u=a.useRef(null),s=R(),d=Lt(),f=tn((e=>!(!o&&!1!==d.filter())||!e.search||e.filtered.groups.has(l)));Jt((()=>d.group(l)),[]),nn(l,c,[e.value,e.heading,u]);let m=a.useMemo((()=>({id:l,forceMount:o})),[o]);return a.createElement(T.div,{ref:en([c,t]),...i,"cmdk-group":"",role:"presentation",hidden:!f||void 0},n&&a.createElement("div",{ref:u,"cmdk-group-heading":"","aria-hidden":!0,id:s},n),on(e,(e=>a.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?s:void 0},a.createElement(Ft.Provider,{value:m},e)))))})),Bt=a.forwardRef(((e,t)=>{let{alwaysRender:n,...r}=e,o=a.useRef(null),i=tn((e=>!e.search));return n||i?a.createElement(T.div,{ref:en([o,t]),...r,"cmdk-separator":"",role:"separator"}):null})),Kt=a.forwardRef(((e,t)=>{let{onValueChange:n,...r}=e,o=null!=e.value,i=jt(),l=tn((e=>e.search)),c=tn((e=>e.value)),u=Lt(),s=a.useMemo((()=>{var e;let t=null==(e=u.listInnerRef.current)?void 0:e.querySelector(`${kt}[${Mt}="${encodeURIComponent(c)}"]`);return null==t?void 0:t.getAttribute("id")}),[]);return a.useEffect((()=>{null!=e.value&&i.setState("search",e.value)}),[e.value]),a.createElement(T.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":u.listId,"aria-labelledby":u.labelId,"aria-activedescendant":s,id:u.inputId,type:"text",value:o?e.value:l,onChange:e=>{o||i.setState("search",e.target.value),null==n||n(e.target.value)}})})),qt=a.forwardRef(((e,t)=>{let{children:n,label:r="Suggestions",...o}=e,i=a.useRef(null),l=a.useRef(null),c=Lt();return a.useEffect((()=>{if(l.current&&i.current){let e,t=l.current,n=i.current,r=new ResizeObserver((()=>{e=requestAnimationFrame((()=>{let e=t.offsetHeight;n.style.setProperty("--cmdk-list-height",e.toFixed(1)+"px")}))}));return r.observe(t),()=>{cancelAnimationFrame(e),r.unobserve(t)}}}),[]),a.createElement(T.div,{ref:en([i,t]),...o,"cmdk-list":"",role:"listbox","aria-label":r,id:c.listId},on(e,(e=>a.createElement("div",{ref:en([l,c.listInnerRef]),"cmdk-list-sizer":""},e))))})),Vt=a.forwardRef(((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:o,contentClassName:i,container:l,...c}=e;return a.createElement(xt,{open:n,onOpenChange:r},a.createElement(Ct,{container:l},a.createElement(St,{"cmdk-overlay":"",className:o}),a.createElement(Nt,{"aria-label":e.label,"cmdk-dialog":"",className:i},a.createElement($t,{ref:t,...c}))))})),zt=a.forwardRef(((e,t)=>tn((e=>0===e.filtered.count))?a.createElement(T.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null)),Ht=a.forwardRef(((e,t)=>{let{progress:n,children:r,label:o="Loading...",...i}=e;return a.createElement(T.div,{ref:t,...i,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":o},on(e,(e=>a.createElement("div",{"aria-hidden":!0},e))))})),Yt=Object.assign($t,{List:qt,Item:Wt,Input:Kt,Group:Ut,Separator:Bt,Dialog:Vt,Empty:zt,Loading:Ht});function Xt(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function Zt(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function Gt(e){let t=a.useRef(e);return Jt((()=>{t.current=e})),t}var Jt="undefined"==typeof window?a.useEffect:a.useLayoutEffect;function Qt(e){let t=a.useRef();return void 0===t.current&&(t.current=e()),t}function en(e){return t=>{e.forEach((e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)}))}}function tn(e){let t=jt(),n=()=>e(t.snapshot());return(0,_t.useSyncExternalStore)(t.subscribe,n,n)}function nn(e,t,n,r=[]){let o=a.useRef(),i=Lt();return Jt((()=>{var a;let l=(()=>{var e;for(let t of n){if("string"==typeof t)return t.trim();if("object"==typeof t&&"current"in t)return t.current?null==(e=t.current.textContent)?void 0:e.trim():o.current}})(),c=r.map((e=>e.trim()));i.value(e,l,c),null==(a=t.current)||a.setAttribute(Mt,l),o.current=l})),o}var rn=()=>{let[e,t]=a.useState(),n=Qt((()=>new Map));return Jt((()=>{n.current.forEach((e=>e())),n.current=new Map}),[e]),(e,r)=>{n.current.set(e,r),t({})}};function on({asChild:e,children:t},n){return e&&a.isValidElement(t)?a.cloneElement(function(e){let t=e.type;return"function"==typeof t?t(e.props):"render"in t?t.render(e.props):e}(t),{ref:t.ref},n(t.props.children)):n(t)}var an={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function ln(e,t){(0,l.useEffect)((()=>{const n=n=>{const r="ArrowUp"===e.key||"ArrowDown"===e.key,o=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?n.metaKey:n.ctrlKey,a=n.key.toLowerCase()===e.key.toLowerCase();(r&&a||!r&&a&&(e.metaKey&&o||!e.metaKey))&&t(n)};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)}),[e,t])}const cn="create",un="manage",sn="content",dn="plugins",fn="settings",mn=[{id:"create-page",type:cn,category:sn,title:(0,c.__)("Create a new page","lexia-command"),keywords:["new page","add page","create page"],icon:"📄",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}post-new.php?post_type=page`}},{id:"create-post",type:cn,category:sn,title:(0,c.__)("Create a new post","lexia-command"),keywords:["new post","add post","create post","write"],icon:"✏️",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}post-new.php`}},{id:"media-library",type:un,category:sn,title:(0,c.__)("Open Media Library","lexia-command"),keywords:["media","images","library","files"],icon:"🖼️",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}upload.php`}},{id:"settings",type:un,category:fn,title:(0,c.__)("Site Settings","lexia-command"),keywords:["settings","options","configure"],icon:"⚙️",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}options-general.php`}},{id:"customize",type:un,category:fn,title:(0,c.__)("Customize Theme","lexia-command"),keywords:["customize","theme","appearance"],icon:"🎨",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}customize.php`}},{id:"menus",type:un,category:sn,title:(0,c.__)("Manage Menus","lexia-command"),keywords:["menus","navigation","nav"],icon:"📋",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}nav-menus.php`}},{id:"plugins",type:un,category:dn,title:(0,c.__)("Manage Plugins","lexia-command"),keywords:["plugins","add plugin","install plugin"],icon:"🔌",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}plugins.php`}},{id:"install-plugins",type:"action",category:dn,title:(0,c.__)("Install Plugin","lexia-command"),keywords:["install","plugin"],icon:"🔌",action:e=>{const t=new CustomEvent("lexiaCommand:showPluginSearch");return window.dispatchEvent(t),!1}}];function pn(e){if(!e)return[];const t=e.toLowerCase();return mn.filter((e=>!(e.category===dn&&!window.lexiaCommandData.userCaps.manage_options)&&!(e.category===fn&&!window.lexiaCommandData.userCaps.manage_options)&&!("users"===e.category&&!window.lexiaCommandData.userCaps.manage_options)&&(e.title.toLowerCase().includes(t)||e.keywords.some((e=>e.toLowerCase().includes(t))))))}const vn=function({pluginResults:e,searchTerm:t,selectedIndex:n,setSelectedIndex:r,installPlugin:o,activatePlugin:i,installingPlugin:l,activatingPlugin:u,loadingMore:s,hasMorePages:d}){return e.length>0?(0,a.createElement)(Yt.Group,null,e.map(((e,t)=>(0,a.createElement)(Yt.Item,{key:e.slug,value:e.slug,className:"lexia-command-result",onMouseEnter:()=>r(t),onSelect:()=>{e.installed?e.installed&&!e.active&&i(e.slug):o(e.slug)},"data-selected":t===n},(0,a.createElement)("div",{className:"lexia-command-plugin-result px-4 w-10"},(0,a.createElement)("img",{className:"install-plugin-icon w-100",src:e.icons&&(e.icons["1x"]||e.icons.default||e.icons.svg||e.icons["2x"]),alt:`${e.name} icon`})),(0,a.createElement)("div",{className:"lexia-command-plugin-result-name w-20"},(0,a.createElement)("span",{className:"lexia-command-result-title"},e.name)),(0,a.createElement)("div",{className:"lexia-command-result-details w-65"},(0,a.createElement)("p",{className:"lexia-command-result-description"},e.short_description),(0,a.createElement)("br",null),(0,a.createElement)("span",{className:"lexia-command-result-rating"},"⭐".repeat(Math.round(e.rating/20))," ",(e.rating/20).toFixed(1)),(0,a.createElement)("br",null),(0,a.createElement)("span",{className:"lexia-command-result-installs"},(new Intl.NumberFormat).format(e.active_installs),"+ active installs")),(0,a.createElement)("div",{className:"lexia-command-result-meta w-5"},!e.installed&&(0,a.createElement)("span",null,l===e.slug?(0,a.createElement)("span",{className:"loading-spinner"},"⌛"):(0,a.createElement)("span",{className:"lexia-command-shortcut"},"Enter to install")),e.installed&&!e.active&&(0,a.createElement)("span",null,u===e.slug?(0,a.createElement)("span",{className:"loading-spinner"},"⌛"):(0,a.createElement)("span",{className:"lexia-command-shortcut"},"Enter to activate")))))),s&&(0,a.createElement)(Yt.Item,{className:"lexia-command-loading-more",value:"loading-more"},(0,a.createElement)("div",{className:"lexia-command-loading-indicator"},(0,c.__)("Loading more plugins...","lexia-command"))),!s&&d&&(0,a.createElement)(Yt.Item,{className:"lexia-command-scroll-hint",value:"scroll-hint"},(0,a.createElement)("div",{className:"lexia-command-scroll-hint-text"},(0,c.__)("Scroll for more results","lexia-command")))):t?(0,a.createElement)(Yt.Empty,{className:"lexia-command-no-results"},(0,c.__)("No plugins found","lexia-command")):(0,a.createElement)(Yt.Empty,{className:"lexia-command-empty-state"},(0,c.__)("Search for WordPress plugins...","lexia-command"))},gn=function({results:e,selectedIndex:t,setSelectedIndex:n,closeCommandBar:r}){return e.length>0?(0,a.createElement)(Yt.Group,null,e.map(((e,o)=>(0,a.createElement)(Yt.Item,{key:e.id||o,value:e.id||String(o),className:"lexia-command-result",onSelect:()=>{!1!==e.action(r)&&r()},onMouseEnter:()=>n(o),"data-selected":o===t},(0,a.createElement)("span",{className:"lexia-command-result-icon"},e.icon),(0,a.createElement)("span",{className:"lexia-command-result-title"},e.title))))):(0,a.createElement)(Yt.Empty,{className:"lexia-command-no-results"},(0,c.__)("No results found","lexia-command"))};(0,l.render)((0,a.createElement)((function(){const[e,t]=(0,l.useState)(!1),[n,r]=(0,l.useState)(""),[o,i]=(0,l.useState)([]),[u,d]=(0,l.useState)(!1),[f,m]=(0,l.useState)(0),[p,v]=(0,l.useState)(!1),[g,h]=(0,l.useState)([]),[y,w]=(0,l.useState)(1),[E,b]=(0,l.useState)(0),[x,C]=(0,l.useState)(!1),S=(0,l.useRef)(!1),{installingPlugin:N,activatingPlugin:_,pluginStatuses:P,fetchPluginStatuses:R,installPlugin:k,activatePlugin:D}=function(){const[e,t]=(0,l.useState)(null),[n,r]=(0,l.useState)(null),[o,a]=(0,l.useState)({});return{installingPlugin:e,activatingPlugin:n,pluginStatuses:o,fetchPluginStatuses:async()=>{try{const e=await s()({path:`/${window.lexiaCommandData.restNamespace}/get-plugin-statuses`,method:"GET"});a(e.data||{})}catch(e){console.error("Failed to fetch plugin statuses:",e)}},installPlugin:async e=>{t(e);try{return await s()({path:`${window.lexiaCommandData.restNamespace}/install-plugin`,method:"POST",data:{slug:e}}),a((t=>({...t,[e]:{...t[e],installed:!0}}))),!0}catch(e){return console.error("Plugin installation failed:",e),!1}finally{t(null)}},activatePlugin:async e=>{r(e);try{return await s()({path:`${window.lexiaCommandData.restNamespace}/activate-plugin`,method:"POST",data:{slug:e}}),a((t=>({...t,[e]:{...t[e],installed:!0,active:!0}}))),!0}catch(e){return console.error("Plugin activation failed:",e),!1}finally{r(null)}}}}(),O=(0,l.useCallback)((()=>mn.filter((e=>!("plugins"===e.category&&!window.lexiaCommandData.userCaps.manage_options||"settings"===e.category&&!window.lexiaCommandData.userCaps.manage_options||"users"===e.category&&!window.lexiaCommandData.userCaps.manage_options)))),[]);(0,l.useEffect)((()=>{!e||p||n||i(O())}),[e,p,n,O]),(0,l.useEffect)((()=>{const e=()=>{v(!0),r(""),i([]),h([]),w(1),b(0),R()};return window.addEventListener("lexiaCommand:showPluginSearch",e),()=>window.removeEventListener("lexiaCommand:showPluginSearch",e)}),[R]),(0,l.useEffect)((()=>{if(S.current)return;if(!n)return p?h([]):i(O()),void m(0);if(p&&1!==y)return void w(1);const e=setTimeout((async()=>{d(!0);try{if(p){const e=await fetch(`https://api.wordpress.org/plugins/info/1.2/?action=query_plugins&per_page=10&page=${y}&search=${encodeURIComponent(n)}`),t=await e.json(),r=(t.plugins||[]).map((e=>{const t=P[e.slug]||{};return{...e,installed:t.installed||!1,active:t.active||!1}}));h(1===y?r:e=>[...e,...r]),b(Math.ceil(t.info?.results||0)/10)}else{const e=pn(n),t=new URLSearchParams({query:n}).toString(),r=await s()({path:`/${window.lexiaCommandData.restNamespace}/search?${t}`,method:"GET"});i([...e,...r.data.map((e=>({...e,icon:"📝",action:()=>{window.location.href=e.url}})))])}}catch(e){console.error("Search failed:",e),p||i(pn(n)||[])}finally{d(!1)}}),300);return()=>clearTimeout(e)}),[n,p,P,y,O]);const M=(0,l.useCallback)((()=>{t(!0),m(0)}),[]),I=(0,l.useCallback)((()=>{t(!1),r(""),i([]),h([]),m(0),v(!1),w(1),b(0)}),[]),A=(0,l.useRef)(null);return(0,l.useEffect)((()=>{if(!e||!p)return;const t=e=>{A.current&&clearTimeout(A.current),A.current=setTimeout((()=>{const t=e.target;t.scrollHeight-t.scrollTop<=1.5*t.clientHeight&&(async()=>{if(!x&&p&&n&&!(y>=E)){C(!0),S.current=!0;try{const e=y+1,t=await fetch(`https://api.wordpress.org/plugins/info/1.2/?action=query_plugins&per_page=10&page=${e}&search=${encodeURIComponent(n)}`),r=((await t.json()).plugins||[]).map((e=>{const t=P[e.slug]||{};return{...e,installed:t.installed||!1,active:t.active||!1}})),o=new Set(g.map((e=>e.slug))),a=r.filter((e=>!o.has(e.slug)));h((e=>[...e,...a])),w(e)}catch(e){console.error("Failed to load more plugins:",e)}finally{C(!1),setTimeout((()=>{S.current=!1}),100)}}})()}),150)},r=document.querySelector(".lexia-command-results");return r&&r.addEventListener("scroll",t),()=>{r&&r.removeEventListener("scroll",t),A.current&&clearTimeout(A.current)}}),[e,p,y,E,x,n]),ln({key:"k",metaKey:!0},(e=>{e.preventDefault(),M()})),ln({key:"Backspace"},(t=>{e&&p&&!n&&(t.preventDefault(),v(!1))})),ln({key:"Delete"},(t=>{e&&p&&!n&&(t.preventDefault(),v(!1))})),e?(0,a.createElement)("div",{className:"lexia-command-modal-overlay components-modal__screen-overlay"},(0,a.createElement)(Yt,{className:"lexia-command-modal",label:"Command Menu"},(0,a.createElement)("div",{className:"components-modal__header"},(0,a.createElement)("div",{className:"components-modal__header-heading"},p?(0,c.__)("Search WordPress Plugins","lexia-command"):(0,c.__)("LexiaCommand","lexia-command")),(0,a.createElement)("button",{type:"button",className:"components-button has-icon",onClick:I,"aria-label":(0,c.__)("Close dialog","lexia-command")},(0,a.createElement)("svg",{width:"24",height:"24",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-hidden":"true",focusable:"false"},(0,a.createElement)("path",{d:"M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"})))),(0,a.createElement)("div",{className:"lexia-command-container"},(0,a.createElement)(Yt.Input,{value:n,onValueChange:r,placeholder:p?(0,c.__)("Search for plugins...","lexia-command"):(0,c.__)("Type a command or search...","lexia-command"),className:"lexia-command-search",autoComplete:"off",autoFocus:!0}),(0,a.createElement)(Yt.List,{className:"lexia-command-results"},!u||x||N||_?p?(0,a.createElement)(vn,{pluginResults:g,searchTerm:n,selectedIndex:f,setSelectedIndex:m,installPlugin:k,activatePlugin:D,installingPlugin:N,activatingPlugin:_,loadingMore:x,hasMorePages:y<E}):o.length>0?(0,a.createElement)(gn,{results:o,selectedIndex:f,setSelectedIndex:m,closeCommandBar:I}):n?(0,a.createElement)(Yt.Empty,{className:"lexia-command-no-results"},(0,c.__)("No results found","lexia-command")):(0,a.createElement)(gn,{results:O(),selectedIndex:f,setSelectedIndex:m,closeCommandBar:I}):(0,a.createElement)(Yt.Empty,{className:"lexia-command-loading"},(0,c.__)("Searching...","lexia-command")))))):null}),null),document.getElementById("lexia-command-root"))})();
  • lexia-command/tags/1.1.0/includes/class-lexia-command.php

    r3210776 r3249973  
    145145            ),
    146146        ));
     147
     148        register_rest_route('lexia-command/v1', '/install-plugin', array(
     149            'methods' => WP_REST_Server::CREATABLE,
     150            'callback' => array($this, 'handle_install_plugin'),
     151            'permission_callback' => function () {
     152                return current_user_can('install_plugins');
     153            },
     154            'args' => array(
     155                'slug' => array(
     156                    'required' => true,
     157                    'type' => 'string',
     158                    'sanitize_callback' => 'sanitize_text_field',
     159                ),
     160            ),
     161        ));
     162
     163        register_rest_route('lexia-command/v1', '/activate-plugin', array(
     164            'methods' => WP_REST_Server::CREATABLE,
     165            'callback' => array($this, 'handle_activate_plugin'),
     166            'permission_callback' => function () {
     167                return current_user_can('activate_plugins');
     168            },
     169            'args' => array(
     170                'slug' => array(
     171                    'required' => true,
     172                    'type' => 'string',
     173                    'sanitize_callback' => 'sanitize_text_field',
     174                ),
     175            ),
     176        ));
     177
     178        // Add new endpoint for getting plugin statuses
     179        register_rest_route('lexia-command/v1', '/get-plugin-statuses', array(
     180            'methods' => WP_REST_Server::READABLE,
     181            'callback' => array($this, 'handle_get_plugin_statuses'),
     182            'permission_callback' => function () {
     183                return current_user_can('install_plugins');
     184            },
     185        ));
    147186    }
    148187
     
    172211        ));
    173212    }
     213
     214    public function handle_install_plugin($request) {
     215        if (!current_user_can('install_plugins')) {
     216            return new WP_Error('rest_forbidden', __('Sorry, you are not allowed to install plugins.'), array('status' => 403));
     217        }
     218
     219        $slug = sanitize_text_field($request->get_param('slug'));
     220        require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
     221        require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
     222        require_once ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php';
     223        require_once ABSPATH . 'wp-admin/includes/file.php';
     224
     225        // Get plugin information
     226        $api = plugins_api('plugin_information', array('slug' => $slug));
     227        if (is_wp_error($api)) {
     228            return new WP_Error('plugin_api_error', $api->get_error_message(), array('status' => 400));
     229        }
     230
     231        $skin = new WP_Ajax_Upgrader_Skin();
     232        $upgrader = new Plugin_Upgrader($skin);
     233        $result = $upgrader->install($api->download_link);
     234
     235        if (is_wp_error($result)) {
     236            return new WP_Error('plugin_install_error', $result->get_error_message(), array('status' => 400));
     237        }
     238
     239        return new WP_REST_Response(array(
     240            'success' => true,
     241            'message' => __('Plugin installed successfully.'),
     242        ));
     243    }
     244
     245    public function handle_activate_plugin($request) {
     246        if (!current_user_can('activate_plugins')) {
     247            return new WP_Error('rest_forbidden', __('Sorry, you are not allowed to activate plugins.'), array('status' => 403));
     248        }
     249
     250        $slug = sanitize_text_field($request->get_param('slug'));
     251        $plugins = get_plugins();
     252        $plugin_file = false;
     253
     254        // Find the plugin file based on the slug
     255        foreach ($plugins as $file => $data) {
     256            if (strpos($file, $slug . '/') === 0 || $file === $slug . '.php') {
     257                $plugin_file = $file;
     258                break;
     259            }
     260        }
     261
     262        if (!$plugin_file) {
     263            return new WP_Error('plugin_not_found', __('Plugin not found.'), array('status' => 404));
     264        }
     265
     266        $result = activate_plugin($plugin_file);
     267        if (is_wp_error($result)) {
     268            return new WP_Error('plugin_activation_error', $result->get_error_message(), array('status' => 400));
     269        }
     270
     271        return new WP_REST_Response(array(
     272            'success' => true,
     273            'message' => __('Plugin activated successfully.'),
     274        ));
     275    }
     276
     277    /**
     278     * Handle the request to get plugin statuses
     279     *
     280     * @param WP_REST_Request $request The request object
     281     * @return WP_REST_Response Response with plugin statuses
     282     */
     283    public function handle_get_plugin_statuses($request) {
     284        require_once plugin_dir_path(dirname(__FILE__)) . 'includes/class-lexia-command-plugin-status.php';
     285       
     286        $plugin_statuses = Lexia_Command_Plugin_Status::get_plugin_statuses();
     287       
     288        return new WP_REST_Response(array(
     289            'success' => true,
     290            'data' => $plugin_statuses,
     291        ));
     292    }
    174293}
  • lexia-command/tags/1.1.0/languages/lexia-command.pot

    r3210776 r3249973  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Lexia Command 1.0.0\n"
     5"Project-Id-Version: Lexia Command 1.1.0\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/lexia-command\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  • lexia-command/tags/1.1.0/lexia-command.php

    r3239250 r3249973  
    1212 * Plugin URI:        https://github.com/stephen1204paul/lexia-command
    1313 * Description:       A powerful, keyboard-driven command bar for WordPress, inspired by macOS Spotlight.
    14  * Version:           1.0.1
     14 * Version:           1.1.0
    1515 * Author:            Stephen Paul
    1616 * Author URI:        https://profiles.wordpress.org/stephen1204paul/
     
    3030 * Start at version 1.0.0 and use SemVer - https://semver.org
    3131 */
    32 define('LEXIA_COMMAND_VERSION', '1.0.1');
     32define('LEXIA_COMMAND_VERSION', '1.1.0');
    3333
    3434/**
  • lexia-command/trunk/README.txt

    r3239250 r3249973  
    44Requires at least: 6.0
    55Tested up to: 6.7
    6 Stable tag: 1.0.1
     6Stable tag: 1.1.0
    77Requires PHP: 7.4
    88License: GPLv2 or later
     
    7373== Changelog ==
    7474
     75= 1.1.0 =
     76* Updated plugin core for improved performance and compatibility
     77* Enhanced command bar interface
     78* Added new keyboard shortcuts for faster navigation
     79
    7580= 1.0.1 =
    7681* Added feedback notice for collecting feedback
     
    8590== Upgrade Notice ==
    8691
     92= 1.1.0 =
     93* Updated plugin core for improved performance and compatibility
     94* Enhanced command bar interface
     95* Added new keyboard shortcuts for faster navigation
     96
    8797= 1.0.1 =
    8898* Added feedback notice for collecting feedback
  • lexia-command/trunk/build/index.asset.php

    r3210776 r3249973  
    1 <?php return array('dependencies' => array('react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => '476128092f82f3574087');
     1<?php return array('dependencies' => array('react', 'react-dom', 'wp-api-fetch', 'wp-element', 'wp-i18n'), 'version' => 'e7743b0175f6dd968ecd');
  • lexia-command/trunk/build/index.css

    r3210776 r3249973  
    1 .lexia-command-modal{margin:auto;max-width:600px!important}.lexia-command-container{display:flex;flex-direction:column;gap:1rem}.lexia-command-search{width:100%}.lexia-command-search input{background:#f8f9fa;border:1px solid #ddd;border-radius:6px;font-size:1.2em;padding:.8em;width:100%}.lexia-command-results{max-height:400px;overflow-y:auto;padding:.5rem}.lexia-command-results ul{list-style:none;margin:0;padding:0}.lexia-command-result{align-items:center;border-radius:6px;cursor:pointer;display:flex;margin:.3em 0;padding:.8em;transition:all .2s ease}.lexia-command-result.selected{background-color:#0073aa;color:#fff}.lexia-command-result:not(.selected):hover{background-color:#f0f0f0}.lexia-command-result-icon{font-size:1.2em;margin-right:12px;min-width:24px;text-align:center}.lexia-command-result-title{flex-grow:1;font-size:1em}.lexia-command-empty-state,.lexia-command-loading,.lexia-command-no-results{color:#666;padding:2em;text-align:center}.components-modal__screen-overlay{animation:fadeIn .2s ease-in-out;background-color:rgba(0,0,0,.7)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lexia-command-shortcut{align-items:center;color:#666;display:flex;font-size:.9em;gap:4px;margin-left:auto;padding-left:12px}.lexia-command-shortcut kbd{background:#f0f0f0;border:1px solid #ddd;border-radius:4px;font-family:monospace;padding:2px 6px}
     1.lexia-command-modal{background:rgba(32,33,35,.95)!important;border:1px solid hsla(0,0%,100%,.1)!important;border-radius:12px!important;box-shadow:0 8px 32px rgba(0,0,0,.3)!important;max-width:980px!important;width:100%}.lexia-command-container{display:flex;flex-direction:column;gap:.5rem;max-height:80vh;overflow:hidden;padding:8px}.lexia-command-search{background:rgba(32,33,35,.95);background:hsla(0,0%,100%,.05)!important;border-bottom:1px solid hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.1)!important;border-radius:8px!important;caret-color:#fff!important;color:#fff!important;font-weight:500!important;margin-bottom:8px;padding:8px 0;padding:12px 16px!important;position:sticky;text-shadow:0 0 1px hsla(0,0%,100%,.5)!important;top:0;transition:all .2s ease!important;width:100%;z-index:10}.lexia-command-search:focus{background:hsla(0,0%,100%,.08)!important;border-color:hsla(0,0%,100%,.2)!important;outline:none!important}.lexia-command-results{flex:1;overflow-y:auto;padding:4px;scroll-behavior:auto}.lexia-command-results::-webkit-scrollbar{width:6px}.lexia-command-results::-webkit-scrollbar-track{background:transparent}.lexia-command-results::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2);border-radius:3px}.lexia-command-results ul{list-style:none;margin:0;padding:0}.lexia-command-result{align-items:center;border-radius:6px;color:#fff;cursor:pointer;display:flex;margin:2px 0;padding:8px 12px;transition:all .15s ease}.lexia-command-result.selected{background-color:hsla(0,0%,100%,.1)}.lexia-command-result:not(.selected):hover{background-color:hsla(0,0%,100%,.05)}.lexia-command-result-icon{font-size:1.1em;margin-right:12px;min-width:24px;opacity:.8;text-align:center}.lexia-command-result-title{flex-grow:1;font-size:.95em}.lexia-command-empty-state,.lexia-command-loading,.lexia-command-no-results{color:hsla(0,0%,100%,.6);font-size:.9em;padding:2em;text-align:center}.components-modal__screen-overlay{animation:fadeIn .2s ease-in-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:rgba(0,0,0,.7)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lexia-command-shortcut{align-items:center;color:hsla(0,0%,100%,.4);display:flex;font-size:.85em;gap:4px;margin-left:auto;padding-left:12px}.lexia-command-shortcut kbd{background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2);border-radius:4px;font-family:monospace;font-size:.9em;padding:2px 6px}.components-modal__header{background:transparent!important;border-bottom:1px solid hsla(0,0%,100%,.1)!important}.components-modal__header .components-modal__header-heading{color:#fff!important;font-size:1rem!important}.components-modal__header .components-button{color:hsla(0,0%,100%,.6)!important}.install-plugin-icon{max-width:90px}.px-4{padding-left:1rem!important;padding-right:1rem!important}.w-10{width:10%!important}.w-20{width:20%!important}.w-65{width:65%!important}.w-5{width:5%!important}.w-100{width:100%!important}.lexia-command-modal .components-modal__content{overflow-y:hidden!important}.lexia-command-modal-overlay{align-items:flex-start;bottom:0;display:flex;justify-content:center;left:0;padding-top:15vh;position:fixed;right:0;top:0;z-index:100000}[cmdk-root]{background:rgba(32,33,35,.95);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.3);max-width:980px;overflow:hidden}[cmdk-input],[cmdk-root]{border:1px solid hsla(0,0%,100%,.1);width:100%}[cmdk-input]{background:hsla(0,0%,100%,.05);border-radius:8px;caret-color:#fff;color:#fff;font-size:1rem;padding:12px 16px;transition:all .2s ease}[cmdk-input]:focus{background:hsla(0,0%,100%,.08);border-color:hsla(0,0%,100%,.2);outline:none}[cmdk-list]{margin:0;max-height:70vh;overflow-y:auto;padding:4px;scroll-behavior:auto;scrollbar-width:thin}[cmdk-list]::-webkit-scrollbar{width:6px}[cmdk-list]::-webkit-scrollbar-track{background:transparent}[cmdk-list]::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.2);border-radius:3px}[cmdk-item]{align-items:center;border-radius:6px;box-sizing:border-box;color:#fff;cursor:pointer;display:flex;margin:2px 0;padding:8px 12px;transition:all .15s ease;width:100%}[cmdk-item][data-selected=true]{background-color:hsla(0,0%,100%,.1)}[cmdk-item]:not([data-selected=true]):hover{background-color:hsla(0,0%,100%,.05)}
  • lexia-command/trunk/build/index.js

    r3210776 r3249973  
    1 (()=>{"use strict";var e={n:a=>{var n=a&&a.__esModule?()=>a.default:()=>a;return e.d(n,{a:n}),n},d:(a,n)=>{for(var t in n)e.o(n,t)&&!e.o(a,t)&&Object.defineProperty(a,t,{enumerable:!0,get:n[t]})},o:(e,a)=>Object.prototype.hasOwnProperty.call(e,a)};const a=window.wp.element,n=window.wp.i18n,t=window.wp.apiFetch;var o=e.n(t);const i=window.wp.components;function s(e,n){(0,a.useEffect)((()=>{const a=a=>{(/Mac|iPod|iPhone|iPad/.test(navigator.platform)?a.metaKey:a.ctrlKey)&&a.key.toLowerCase()===e.key.toLowerCase()&&n(a)};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)}),[e,n])}const r="create",l="manage",c="content",d="plugins",m="settings",w="users",p=[{id:"create-page",type:r,category:c,title:(0,n.__)("Create a new page","lexia-command"),keywords:["new page","add page","create page"],icon:"📄",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}post-new.php?post_type=page`}},{id:"create-post",type:r,category:c,title:(0,n.__)("Create a new post","lexia-command"),keywords:["new post","add post","create post","write"],icon:"✏️",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}post-new.php`}},{id:"media-library",type:l,category:c,title:(0,n.__)("Open Media Library","lexia-command"),keywords:["media","images","library","files"],icon:"🖼️",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}upload.php`}},{id:"plugins",type:l,category:d,title:(0,n.__)("Manage Plugins","lexia-command"),keywords:["plugins","add plugin","install plugin"],icon:"🔌",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}plugins.php`}},{id:"settings",type:l,category:m,title:(0,n.__)("Site Settings","lexia-command"),keywords:["settings","options","configure"],icon:"⚙️",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}options-general.php`}},{id:"create-user",type:r,category:w,title:(0,n.__)("Create a new user","lexia-command"),keywords:["new user","add user","create user"],icon:"👤",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}user-new.php`}},{id:"manage-users",type:l,category:w,title:(0,n.__)("Manage Users","lexia-command"),keywords:["users","all users","user list"],icon:"👥",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}users.php`}},{id:"customize",type:l,category:m,title:(0,n.__)("Customize Theme","lexia-command"),keywords:["customize","theme","appearance"],icon:"🎨",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}customize.php`}},{id:"menus",type:l,category:c,title:(0,n.__)("Manage Menus","lexia-command"),keywords:["menus","navigation","nav"],icon:"📋",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}nav-menus.php`}}],u=window.ReactJSXRuntime,y=function(){const[e,t]=(0,a.useState)(!1),[r,l]=(0,a.useState)(""),[c,y]=(0,a.useState)([]),[g,h]=(0,a.useState)(!1),[x,f]=(0,a.useState)(0),_=(0,a.useCallback)((()=>{t(!0),f(0)}),[]),C=(0,a.useCallback)((()=>{t(!1),l(""),y([]),f(0)}),[]);return s({key:"k",metaKey:!0},(e=>{e.preventDefault(),_()})),s({key:"ArrowDown"},(a=>{e&&c.length>0&&(a.preventDefault(),f((e=>(e+1)%c.length)))})),s({key:"ArrowUp"},(a=>{e&&c.length>0&&(a.preventDefault(),f((e=>(e-1+c.length)%c.length)))})),s({key:"Enter"},(a=>{if(e&&c.length>0){a.preventDefault();const e=c[x];e.action&&(e.action(),C())}})),(0,a.useEffect)((()=>{if(!r)return y([]),void f(0);const e=setTimeout((async()=>{h(!0);try{const e=function(e){if(!e)return[];const a=e.toLowerCase();return p.filter((e=>!(e.category===d&&!window.lexiaCommandData.userCaps.manage_options)&&!(e.category===m&&!window.lexiaCommandData.userCaps.manage_options)&&!(e.category===w&&!window.lexiaCommandData.userCaps.manage_options)&&(e.title.toLowerCase().includes(a)||e.keywords.some((e=>e.toLowerCase().includes(a))))))}(r),a=new URLSearchParams({query:r}).toString(),n=await o()({path:`/${window.lexiaCommandData.restNamespace}/search?${a}`,method:"GET"});y([...e,...n.data.map((e=>({...e,icon:"📝",action:()=>{window.location.href=e.url}})))])}catch(e){console.error("Search failed:",e),y(commandResults||[])}finally{h(!1)}}),300);return()=>clearTimeout(e)}),[r]),e?(0,u.jsx)(i.Modal,{title:(0,n.__)("LexiaCommand","lexia-command"),onRequestClose:C,className:"lexia-command-modal",children:(0,u.jsxs)("div",{className:"lexia-command-container",children:[(0,u.jsx)(i.SearchControl,{value:r,onChange:l,placeholder:(0,n.__)("Type a command or search...","lexia-command"),className:"lexia-command-search",autoComplete:"off",autoFocus:!0}),(0,u.jsx)("div",{className:"lexia-command-results",children:g?(0,u.jsx)("div",{className:"lexia-command-loading",children:(0,n.__)("Searching...","lexia-command")}):c.length>0?(0,u.jsx)("ul",{children:c.map(((e,a)=>(0,u.jsxs)("li",{className:"lexia-command-result "+(a===x?"selected":""),onClick:()=>{e.action(),C()},onMouseEnter:()=>f(a),children:[(0,u.jsx)("span",{className:"lexia-command-result-icon",children:e.icon}),(0,u.jsx)("span",{className:"lexia-command-result-title",children:e.title})]},e.id||a)))}):r?(0,u.jsx)("div",{className:"lexia-command-no-results",children:(0,n.__)("No results found","lexia-command")}):(0,u.jsx)("div",{className:"lexia-command-empty-state",children:(0,n.__)("Start typing to search...","lexia-command")})})]})}):null};(0,a.render)((0,u.jsx)(y,{}),document.getElementById("lexia-command-root"))})();
     1(()=>{"use strict";var e,t,n={20:(e,t,n)=>{var r=n(609),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,a={},u=null,s=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(s=t.ref),t)i.call(t,r)&&!c.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:o,type:e,key:u,ref:s,props:a,_owner:l.current}}t.Fragment=a,t.jsx=u,t.jsxs=u},848:(e,t,n)=>{e.exports=n(20)},493:(e,t,n)=>{var r=n(609),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useState,i=r.useEffect,l=r.useLayoutEffect,c=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(e){return!0}}var s="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),o=r[0].inst,s=r[1];return l((function(){o.value=n,o.getSnapshot=t,u(o)&&s({inst:o})}),[e,n,t]),i((function(){return u(o)&&s({inst:o}),e((function(){u(o)&&s({inst:o})}))}),[e]),c(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:s},888:(e,t,n)=>{e.exports=n(493)},609:e=>{e.exports=window.React}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={exports:{}};return n[e](a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(n,r){if(1&r&&(n=this(n)),8&r)return n;if("object"==typeof n&&n){if(4&r&&n.__esModule)return n;if(16&r&&"function"==typeof n.then)return n}var a=Object.create(null);o.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var l=2&r&&n;"object"==typeof l&&!~e.indexOf(l);l=t(l))Object.getOwnPropertyNames(l).forEach((e=>i[e]=()=>n[e]));return i.default=()=>n,o.d(a,i),a},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nc=void 0;var a=o(609),i=o.t(a,2);const l=window.wp.element,c=window.wp.i18n,u=window.wp.apiFetch;var s=o.n(u),d=.999,f=/[\\\/_+.#"@\[\(\{&]/,m=/[\\\/_+.#"@\[\(\{&]/g,p=/[\s-]/,v=/[\s-]/g;function g(e,t,n,r,o,a,i){if(a===t.length)return o===e.length?1:.99;var l=`${o},${a}`;if(void 0!==i[l])return i[l];for(var c,u,s,h,y=r.charAt(a),w=n.indexOf(y,o),E=0;w>=0;)(c=g(e,t,n,r,w+1,a+1,i))>E&&(w===o?c*=1:f.test(e.charAt(w-1))?(c*=.8,(s=e.slice(o,w-1).match(m))&&o>0&&(c*=Math.pow(d,s.length))):p.test(e.charAt(w-1))?(c*=.9,(h=e.slice(o,w-1).match(v))&&o>0&&(c*=Math.pow(d,h.length))):(c*=.17,o>0&&(c*=Math.pow(d,w-o))),e.charAt(w)!==t.charAt(a)&&(c*=.9999)),(c<.1&&n.charAt(w-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(w-1)!==r.charAt(a))&&.1*(u=g(e,t,n,r,w+1,a+2,i))>c&&(c=.1*u),c>E&&(E=c),w=n.indexOf(y,w+1);return i[l]=E,E}function h(e){return e.toLowerCase().replace(v," ")}function y(e,t,n){return g(e=n&&n.length>0?e+" "+n.join(" "):e,t,h(e),h(t),0,0,{})}function w(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}function E(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function b(...e){return t=>{let n=!1;const r=e.map((e=>{const r=E(e,t);return n||"function"!=typeof r||(n=!0),r}));if(n)return()=>{for(let t=0;t<r.length;t++){const n=r[t];"function"==typeof n?n():E(e[t],null)}}}}function x(...e){return a.useCallback(b(...e),e)}var C=o(848);function S(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const r=n.reduce(((t,{useScope:n,scopeName:r})=>({...t,...n(e)[`__scope${r}`]})),{});return a.useMemo((()=>({[`__scope${t.scopeName}`]:r})),[r])}};return n.scopeName=t.scopeName,n}var N=Boolean(globalThis?.document)?a.useLayoutEffect:()=>{},_=i["useId".toString()]||(()=>{}),P=0;function R(e){const[t,n]=a.useState(_());return N((()=>{e||n((e=>e??String(P++)))}),[e]),e||(t?`radix-${t}`:"")}function k(e){const t=a.useRef(e);return a.useEffect((()=>{t.current=e})),a.useMemo((()=>(...e)=>t.current?.(...e)),[])}const D=window.ReactDOM;var O=a.forwardRef(((e,t)=>{const{children:n,...r}=e,o=a.Children.toArray(n),i=o.find(A);if(i){const e=i.props.children,n=o.map((t=>t===i?a.Children.count(e)>1?a.Children.only(null):a.isValidElement(e)?e.props.children:null:t));return(0,C.jsx)(M,{...r,ref:t,children:a.isValidElement(e)?a.cloneElement(e,void 0,n):null})}return(0,C.jsx)(M,{...r,ref:t,children:n})}));O.displayName="Slot";var M=a.forwardRef(((e,t)=>{const{children:n,...r}=e;if(a.isValidElement(n)){const e=function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}(n),o=function(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...e)=>{a(...e),o(...e)}:o&&(n[r]=o):"style"===r?n[r]={...o,...a}:"className"===r&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}(r,n.props);return n.type!==a.Fragment&&(o.ref=t?b(t,e):e),a.cloneElement(n,o)}return a.Children.count(n)>1?a.Children.only(null):null}));M.displayName="SlotClone";var I=({children:e})=>(0,C.jsx)(C.Fragment,{children:e});function A(e){return a.isValidElement(e)&&e.type===I}var L,T=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,t)=>{const n=a.forwardRef(((e,n)=>{const{asChild:r,...o}=e,a=r?O:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,C.jsx)(a,{...o,ref:n})}));return n.displayName=`Primitive.${t}`,{...e,[t]:n}}),{}),j="dismissableLayer.update",F=a.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),$=a.forwardRef(((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:l,onDismiss:c,...u}=e,s=a.useContext(F),[d,f]=a.useState(null),m=d?.ownerDocument??globalThis?.document,[,p]=a.useState({}),v=x(t,(e=>f(e))),g=Array.from(s.layers),[h]=[...s.layersWithOutsidePointerEventsDisabled].slice(-1),y=g.indexOf(h),E=d?g.indexOf(d):-1,b=s.layersWithOutsidePointerEventsDisabled.size>0,S=E>=y,N=function(e,t=globalThis?.document){const n=k(e),r=a.useRef(!1),o=a.useRef((()=>{}));return a.useEffect((()=>{const e=e=>{if(e.target&&!r.current){let r=function(){U("dismissableLayer.pointerDownOutside",n,a,{discrete:!0})};const a={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",o.current),o.current=r,t.addEventListener("click",o.current,{once:!0})):r()}else t.removeEventListener("click",o.current);r.current=!1},a=window.setTimeout((()=>{t.addEventListener("pointerdown",e)}),0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",e),t.removeEventListener("click",o.current)}}),[t,n]),{onPointerDownCapture:()=>r.current=!0}}((e=>{const t=e.target,n=[...s.branches].some((e=>e.contains(t)));S&&!n&&(o?.(e),l?.(e),e.defaultPrevented||c?.())}),m),_=function(e,t=globalThis?.document){const n=k(e),r=a.useRef(!1);return a.useEffect((()=>{const e=e=>{e.target&&!r.current&&U("dismissableLayer.focusOutside",n,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)}),[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}((e=>{const t=e.target;[...s.branches].some((e=>e.contains(t)))||(i?.(e),l?.(e),e.defaultPrevented||c?.())}),m);return function(e,t=globalThis?.document){const n=k(e);a.useEffect((()=>{const e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})}),[n,t])}((e=>{E===s.layers.size-1&&(r?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))}),m),a.useEffect((()=>{if(d)return n&&(0===s.layersWithOutsidePointerEventsDisabled.size&&(L=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),s.layersWithOutsidePointerEventsDisabled.add(d)),s.layers.add(d),W(),()=>{n&&1===s.layersWithOutsidePointerEventsDisabled.size&&(m.body.style.pointerEvents=L)}}),[d,m,n,s]),a.useEffect((()=>()=>{d&&(s.layers.delete(d),s.layersWithOutsidePointerEventsDisabled.delete(d),W())}),[d,s]),a.useEffect((()=>{const e=()=>p({});return document.addEventListener(j,e),()=>document.removeEventListener(j,e)}),[]),(0,C.jsx)(T.div,{...u,ref:v,style:{pointerEvents:b?S?"auto":"none":void 0,...e.style},onFocusCapture:w(e.onFocusCapture,_.onFocusCapture),onBlurCapture:w(e.onBlurCapture,_.onBlurCapture),onPointerDownCapture:w(e.onPointerDownCapture,N.onPointerDownCapture)})}));function W(){const e=new CustomEvent(j);document.dispatchEvent(e)}function U(e,t,n,{discrete:r}){const o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?function(e,t){e&&D.flushSync((()=>e.dispatchEvent(t)))}(o,a):o.dispatchEvent(a)}$.displayName="DismissableLayer",a.forwardRef(((e,t)=>{const n=a.useContext(F),r=a.useRef(null),o=x(t,r);return a.useEffect((()=>{const e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}}),[n.branches]),(0,C.jsx)(T.div,{...e,ref:o})})).displayName="DismissableLayerBranch";var B="focusScope.autoFocusOnMount",K="focusScope.autoFocusOnUnmount",q={bubbles:!1,cancelable:!0},V=a.forwardRef(((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...l}=e,[c,u]=a.useState(null),s=k(o),d=k(i),f=a.useRef(null),m=x(t,(e=>u(e))),p=a.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;a.useEffect((()=>{if(r){let e=function(e){if(p.paused||!c)return;const t=e.target;c.contains(t)?f.current=t:X(f.current,{select:!0})},t=function(e){if(p.paused||!c)return;const t=e.relatedTarget;null!==t&&(c.contains(t)||X(f.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(const t of e)t.removedNodes.length>0&&X(c)};document.addEventListener("focusin",e),document.addEventListener("focusout",t);const r=new MutationObserver(n);return c&&r.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}}),[r,c,p.paused]),a.useEffect((()=>{if(c){Z.add(p);const e=document.activeElement;if(!c.contains(e)){const t=new CustomEvent(B,q);c.addEventListener(B,s),c.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(X(r,{select:t}),document.activeElement!==n)return}(z(c).filter((e=>"A"!==e.tagName)),{select:!0}),document.activeElement===e&&X(c))}return()=>{c.removeEventListener(B,s),setTimeout((()=>{const t=new CustomEvent(K,q);c.addEventListener(K,d),c.dispatchEvent(t),t.defaultPrevented||X(e??document.body,{select:!0}),c.removeEventListener(K,d),Z.remove(p)}),0)}}}),[c,s,d,p]);const v=a.useCallback((e=>{if(!n&&!r)return;if(p.paused)return;const t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,o=document.activeElement;if(t&&o){const t=e.currentTarget,[r,a]=function(e){const t=z(e);return[H(t,e),H(t.reverse(),e)]}(t);r&&a?e.shiftKey||o!==a?e.shiftKey&&o===r&&(e.preventDefault(),n&&X(a,{select:!0})):(e.preventDefault(),n&&X(r,{select:!0})):o===t&&e.preventDefault()}}),[n,r,p.paused]);return(0,C.jsx)(T.div,{tabIndex:-1,...l,ref:m,onKeyDown:v})}));function z(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function H(e,t){for(const n of e)if(!Y(n,{upTo:t}))return n}function Y(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(void 0!==t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}function X(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&function(e){return e instanceof HTMLInputElement&&"select"in e}(e)&&t&&e.select()}}V.displayName="FocusScope";var Z=function(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=G(e,t),e.unshift(t)},remove(t){e=G(e,t),e[0]?.resume()}}}();function G(e,t){const n=[...e],r=n.indexOf(t);return-1!==r&&n.splice(r,1),n}var J=a.forwardRef(((e,t)=>{const{container:n,...r}=e,[o,i]=a.useState(!1);N((()=>i(!0)),[]);const l=n||o&&globalThis?.document?.body;return l?D.createPortal((0,C.jsx)(T.div,{...r,ref:t}),l):null}));J.displayName="Portal";var Q=e=>{const{present:t,children:n}=e,r=function(e){const[t,n]=a.useState(),r=a.useRef({}),o=a.useRef(e),i=a.useRef("none"),l=e?"mounted":"unmounted",[c,u]=function(e,t){return a.useReducer(((e,n)=>t[e][n]??e),e)}(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return a.useEffect((()=>{const e=ee(r.current);i.current="mounted"===c?e:"none"}),[c]),N((()=>{const t=r.current,n=o.current;if(n!==e){const r=i.current,a=ee(t);u(e?"MOUNT":"none"===a||"none"===t?.display?"UNMOUNT":n&&r!==a?"ANIMATION_OUT":"UNMOUNT"),o.current=e}}),[e,u]),N((()=>{if(t){let e;const n=t.ownerDocument.defaultView??window,a=a=>{const i=ee(r.current).includes(a.animationName);if(a.target===t&&i&&(u("ANIMATION_END"),!o.current)){const r=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout((()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=r)}))}},l=e=>{e.target===t&&(i.current=ee(r.current))};return t.addEventListener("animationstart",l),t.addEventListener("animationcancel",a),t.addEventListener("animationend",a),()=>{n.clearTimeout(e),t.removeEventListener("animationstart",l),t.removeEventListener("animationcancel",a),t.removeEventListener("animationend",a)}}u("ANIMATION_END")}),[t,u]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:a.useCallback((e=>{e&&(r.current=getComputedStyle(e)),n(e)}),[])}}(t),o="function"==typeof n?n({present:r.isPresent}):a.Children.only(n),i=x(r.ref,function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}(o));return"function"==typeof n||r.isPresent?a.cloneElement(o,{ref:i}):null};function ee(e){return e?.animationName||"none"}Q.displayName="Presence";var te=0;function ne(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var re=function(){return re=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},re.apply(this,arguments)};function oe(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;var ae="right-scroll-bar-position",ie="width-before-scroll-bar";function le(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var ce="undefined"!=typeof window?a.useLayoutEffect:a.useEffect,ue=new WeakMap;function se(e){return e}var de=function(e){void 0===e&&(e={});var t=function(e,t){void 0===t&&(t=se);var n=[],r=!1;return{read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var o=t(e,r);return n.push(o),function(){n=n.filter((function(e){return e!==o}))}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var o=n;n=[],o.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},i=function(){return Promise.resolve().then(a)};i(),n={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),n}}}}}(null);return t.options=re({async:!0,ssr:!1},e),t}(),fe=function(){},me=a.forwardRef((function(e,t){var n=a.useRef(null),r=a.useState({onScrollCapture:fe,onWheelCapture:fe,onTouchMoveCapture:fe}),o=r[0],i=r[1],l=e.forwardProps,c=e.children,u=e.className,s=e.removeScrollBar,d=e.enabled,f=e.shards,m=e.sideCar,p=e.noIsolation,v=e.inert,g=e.allowPinchZoom,h=e.as,y=void 0===h?"div":h,w=e.gapMode,E=oe(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as","gapMode"]),b=m,x=function(e,t){var n,r,o,i=(n=t||null,r=function(t){return e.forEach((function(e){return le(e,t)}))},(o=(0,a.useState)((function(){return{value:n,callback:r,facade:{get current(){return o.value},set current(e){var t=o.value;t!==e&&(o.value=e,o.callback(e,t))}}}}))[0]).callback=r,o.facade);return ce((function(){var t=ue.get(i);if(t){var n=new Set(t),r=new Set(e),o=i.current;n.forEach((function(e){r.has(e)||le(e,null)})),r.forEach((function(e){n.has(e)||le(e,o)}))}ue.set(i,e)}),[e]),i}([n,t]),C=re(re({},E),o);return a.createElement(a.Fragment,null,d&&a.createElement(b,{sideCar:de,removeScrollBar:s,shards:f,noIsolation:p,inert:v,setCallbacks:i,allowPinchZoom:!!g,lockRef:n,gapMode:w}),l?a.cloneElement(a.Children.only(c),re(re({},C),{ref:x})):a.createElement(y,re({},C,{className:u,ref:x}),c))}));me.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},me.classNames={fullWidth:ie,zeroRight:ae};var pe=function(e){var t=e.sideCar,n=oe(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return a.createElement(r,re({},n))};pe.isSideCarExport=!0;var ve=function(){var e=0,t=null;return{add:function(n){var r,a;0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=o.nc;return t&&e.setAttribute("nonce",t),e}())&&(a=n,(r=t).styleSheet?r.styleSheet.cssText=a:r.appendChild(document.createTextNode(a)),function(e){(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}(t)),e++},remove:function(){! --e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},ge=function(){var e,t=(e=ve(),function(t,n){a.useEffect((function(){return e.add(t),function(){e.remove()}}),[t&&n])});return function(e){var n=e.styles,r=e.dynamic;return t(n,r),null}},he={left:0,top:0,right:0,gap:0},ye=function(e){return parseInt(e||"",10)||0},we=ge(),Ee="data-scroll-locked",be=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,l=e.gap;return void 0===n&&(n="margin"),"\n  .".concat("with-scroll-bars-hidden"," {\n   overflow: hidden ").concat(r,";\n   padding-right: ").concat(l,"px ").concat(r,";\n  }\n  body[").concat(Ee,"] {\n    overflow: hidden ").concat(r,";\n    overscroll-behavior: contain;\n    ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n    padding-left: ".concat(o,"px;\n    padding-top: ").concat(a,"px;\n    padding-right: ").concat(i,"px;\n    margin-left:0;\n    margin-top:0;\n    margin-right: ").concat(l,"px ").concat(r,";\n    "),"padding"===n&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),"\n  }\n  \n  .").concat(ae," {\n    right: ").concat(l,"px ").concat(r,";\n  }\n  \n  .").concat(ie," {\n    margin-right: ").concat(l,"px ").concat(r,";\n  }\n  \n  .").concat(ae," .").concat(ae," {\n    right: 0 ").concat(r,";\n  }\n  \n  .").concat(ie," .").concat(ie," {\n    margin-right: 0 ").concat(r,";\n  }\n  \n  body[").concat(Ee,"] {\n    ").concat("--removed-body-scroll-bar-size",": ").concat(l,"px;\n  }\n")},xe=function(){var e=parseInt(document.body.getAttribute(Ee)||"0",10);return isFinite(e)?e:0},Ce=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;a.useEffect((function(){return document.body.setAttribute(Ee,(xe()+1).toString()),function(){var e=xe()-1;e<=0?document.body.removeAttribute(Ee):document.body.setAttribute(Ee,e.toString())}}),[]);var i=a.useMemo((function(){return function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return he;var t=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[ye(n),ye(r),ye(o)]}(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}}(o)}),[o]);return a.createElement(we,{styles:be(i,!t,o,n?"":"!important")})},Se=!1;if("undefined"!=typeof window)try{var Ne=Object.defineProperty({},"passive",{get:function(){return Se=!0,!0}});window.addEventListener("test",Ne,Ne),window.removeEventListener("test",Ne,Ne)}catch(e){Se=!1}var _e=!!Se&&{passive:!1},Pe=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&!function(e){return"TEXTAREA"===e.tagName}(e)&&"visible"===n[t])},Re=function(e,t){var n=t.ownerDocument,r=t;do{if("undefined"!=typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),ke(e,r)){var o=De(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},ke=function(e,t){return"v"===e?function(e){return Pe(e,"overflowY")}(t):function(e){return Pe(e,"overflowX")}(t)},De=function(e,t){return"v"===e?[(n=t).scrollTop,n.scrollHeight,n.clientHeight]:function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]}(t);var n},Oe=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Me=function(e){return[e.deltaX,e.deltaY]},Ie=function(e){return e&&"current"in e?e.current:e},Ae=function(e){return"\n  .block-interactivity-".concat(e," {pointer-events: none;}\n  .allow-interactivity-").concat(e," {pointer-events: all;}\n")},Le=0,Te=[];function je(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Fe=($e=function(e){var t=a.useRef([]),n=a.useRef([0,0]),r=a.useRef(),o=a.useState(Le++)[0],i=a.useState(ge)[0],l=a.useRef(e);a.useEffect((function(){l.current=e}),[e]),a.useEffect((function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}([e.lockRef.current],(e.shards||[]).map(Ie),!0).filter(Boolean);return t.forEach((function(e){return e.classList.add("allow-interactivity-".concat(o))})),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach((function(e){return e.classList.remove("allow-interactivity-".concat(o))}))}}}),[e.inert,e.lockRef.current,e.shards]);var c=a.useCallback((function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!l.current.allowPinchZoom;var o,a=Oe(e),i=n.current,c="deltaX"in e?e.deltaX:i[0]-a[0],u="deltaY"in e?e.deltaY:i[1]-a[1],s=e.target,d=Math.abs(c)>Math.abs(u)?"h":"v";if("touches"in e&&"h"===d&&"range"===s.type)return!1;var f=Re(d,s);if(!f)return!0;if(f?o=d:(o="v"===d?"h":"v",f=Re(d,s)),!f)return!1;if(!r.current&&"changedTouches"in e&&(c||u)&&(r.current=o),!o)return!0;var m=r.current||o;return function(e,t,n,r){var o=function(e,t){return"h"===e&&"rtl"===t?-1:1}(e,window.getComputedStyle(t).direction),a=o*r,i=n.target,l=t.contains(i),c=!1,u=a>0,s=0,d=0;do{var f=De(e,i),m=f[0],p=f[1]-f[2]-o*m;(m||p)&&ke(e,i)&&(s+=p,d+=m),i=i instanceof ShadowRoot?i.host:i.parentNode}while(!l&&i!==document.body||l&&(t.contains(i)||t===i));return(u&&(Math.abs(s)<1||!1)||!u&&(Math.abs(d)<1||!1))&&(c=!0),c}(m,t,e,"h"===m?c:u)}),[]),u=a.useCallback((function(e){var n=e;if(Te.length&&Te[Te.length-1]===i){var r="deltaY"in n?Me(n):Oe(n),o=t.current.filter((function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&(t=e.delta,o=r,t[0]===o[0]&&t[1]===o[1]);var t,o}))[0];if(o&&o.should)n.cancelable&&n.preventDefault();else if(!o){var a=(l.current.shards||[]).map(Ie).filter(Boolean).filter((function(e){return e.contains(n.target)}));(a.length>0?c(n,a[0]):!l.current.noIsolation)&&n.cancelable&&n.preventDefault()}}}),[]),s=a.useCallback((function(e,n,r,o){var a={name:e,delta:n,target:r,should:o,shadowParent:je(r)};t.current.push(a),setTimeout((function(){t.current=t.current.filter((function(e){return e!==a}))}),1)}),[]),d=a.useCallback((function(e){n.current=Oe(e),r.current=void 0}),[]),f=a.useCallback((function(t){s(t.type,Me(t),t.target,c(t,e.lockRef.current))}),[]),m=a.useCallback((function(t){s(t.type,Oe(t),t.target,c(t,e.lockRef.current))}),[]);a.useEffect((function(){return Te.push(i),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:m}),document.addEventListener("wheel",u,_e),document.addEventListener("touchmove",u,_e),document.addEventListener("touchstart",d,_e),function(){Te=Te.filter((function(e){return e!==i})),document.removeEventListener("wheel",u,_e),document.removeEventListener("touchmove",u,_e),document.removeEventListener("touchstart",d,_e)}}),[]);var p=e.removeScrollBar,v=e.inert;return a.createElement(a.Fragment,null,v?a.createElement(i,{styles:Ae(o)}):null,p?a.createElement(Ce,{gapMode:e.gapMode}):null)},de.useMedium($e),pe);var $e,We=a.forwardRef((function(e,t){return a.createElement(me,re({},e,{ref:t,sideCar:Fe}))}));We.classNames=me.classNames;const Ue=We;var Be=new WeakMap,Ke=new WeakMap,qe={},Ve=0,ze=function(e){return e&&(e.host||ze(e.parentNode))},He=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||function(e){return"undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body}(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live]"))),function(e,t,n,r){var o=function(e,t){return t.map((function(t){if(e.contains(t))return t;var n=ze(t);return n&&e.contains(n)?n:(console.error("aria-hidden",t,"in not contained inside",e,". Doing nothing"),null)})).filter((function(e){return Boolean(e)}))}(t,Array.isArray(e)?e:[e]);qe[n]||(qe[n]=new WeakMap);var a=qe[n],i=[],l=new Set,c=new Set(o),u=function(e){e&&!l.has(e)&&(l.add(e),u(e.parentNode))};o.forEach(u);var s=function(e){e&&!c.has(e)&&Array.prototype.forEach.call(e.children,(function(e){if(l.has(e))s(e);else try{var t=e.getAttribute(r),o=null!==t&&"false"!==t,c=(Be.get(e)||0)+1,u=(a.get(e)||0)+1;Be.set(e,c),a.set(e,u),i.push(e),1===c&&o&&Ke.set(e,!0),1===u&&e.setAttribute(n,"true"),o||e.setAttribute(r,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}}))};return s(t),l.clear(),Ve++,function(){i.forEach((function(e){var t=Be.get(e)-1,o=a.get(e)-1;Be.set(e,t),a.set(e,o),t||(Ke.has(e)||e.removeAttribute(r),Ke.delete(e)),o||e.removeAttribute(n)})),--Ve||(Be=new WeakMap,Be=new WeakMap,Ke=new WeakMap,qe={})}}(r,o,n,"aria-hidden")):function(){return null}},Ye="Dialog",[Xe,Ze]=function(e,t=[]){let n=[];const r=()=>{const t=n.map((e=>a.createContext(e)));return function(n){const r=n?.[e]||t;return a.useMemo((()=>({[`__scope${e}`]:{...n,[e]:r}})),[n,r])}};return r.scopeName=e,[function(t,r){const o=a.createContext(r),i=n.length;n=[...n,r];const l=t=>{const{scope:n,children:r,...l}=t,c=n?.[e]?.[i]||o,u=a.useMemo((()=>l),Object.values(l));return(0,C.jsx)(c.Provider,{value:u,children:r})};return l.displayName=t+"Provider",[l,function(n,l){const c=l?.[e]?.[i]||o,u=a.useContext(c);if(u)return u;if(void 0!==r)return r;throw new Error(`\`${n}\` must be used within \`${t}\``)}]},S(r,...t)]}(Ye),[Ge,Je]=Xe(Ye),Qe=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:i,modal:l=!0}=e,c=a.useRef(null),u=a.useRef(null),[s=!1,d]=function({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,o]=function({defaultProp:e,onChange:t}){const n=a.useState(e),[r]=n,o=a.useRef(r),i=k(t);return a.useEffect((()=>{o.current!==r&&(i(r),o.current=r)}),[r,o,i]),n}({defaultProp:t,onChange:n}),i=void 0!==e,l=i?e:r,c=k(n);return[l,a.useCallback((t=>{if(i){const n="function"==typeof t?t(e):t;n!==e&&c(n)}else o(t)}),[i,e,o,c])]}({prop:r,defaultProp:o,onChange:i});return(0,C.jsx)(Ge,{scope:t,triggerRef:c,contentRef:u,contentId:R(),titleId:R(),descriptionId:R(),open:s,onOpenChange:d,onOpenToggle:a.useCallback((()=>d((e=>!e))),[d]),modal:l,children:n})};Qe.displayName=Ye;var et="DialogTrigger";a.forwardRef(((e,t)=>{const{__scopeDialog:n,...r}=e,o=Je(et,n),a=x(t,o.triggerRef);return(0,C.jsx)(T.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":gt(o.open),...r,ref:a,onClick:w(e.onClick,o.onOpenToggle)})})).displayName=et;var tt="DialogPortal",[nt,rt]=Xe(tt,{forceMount:void 0}),ot=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,i=Je(tt,t);return(0,C.jsx)(nt,{scope:t,forceMount:n,children:a.Children.map(r,(e=>(0,C.jsx)(Q,{present:n||i.open,children:(0,C.jsx)(J,{asChild:!0,container:o,children:e})})))})};ot.displayName=tt;var at="DialogOverlay",it=a.forwardRef(((e,t)=>{const n=rt(at,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=Je(at,e.__scopeDialog);return a.modal?(0,C.jsx)(Q,{present:r||a.open,children:(0,C.jsx)(lt,{...o,ref:t})}):null}));it.displayName=at;var lt=a.forwardRef(((e,t)=>{const{__scopeDialog:n,...r}=e,o=Je(at,n);return(0,C.jsx)(Ue,{as:O,allowPinchZoom:!0,shards:[o.contentRef],children:(0,C.jsx)(T.div,{"data-state":gt(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})})),ct="DialogContent",ut=a.forwardRef(((e,t)=>{const n=rt(ct,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=Je(ct,e.__scopeDialog);return(0,C.jsx)(Q,{present:r||a.open,children:a.modal?(0,C.jsx)(st,{...o,ref:t}):(0,C.jsx)(dt,{...o,ref:t})})}));ut.displayName=ct;var st=a.forwardRef(((e,t)=>{const n=Je(ct,e.__scopeDialog),r=a.useRef(null),o=x(t,n.contentRef,r);return a.useEffect((()=>{const e=r.current;if(e)return He(e)}),[]),(0,C.jsx)(ft,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:w(e.onCloseAutoFocus,(e=>{e.preventDefault(),n.triggerRef.current?.focus()})),onPointerDownOutside:w(e.onPointerDownOutside,(e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()})),onFocusOutside:w(e.onFocusOutside,(e=>e.preventDefault()))})})),dt=a.forwardRef(((e,t)=>{const n=Je(ct,e.__scopeDialog),r=a.useRef(!1),o=a.useRef(!1);return(0,C.jsx)(ft,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));const a=t.target,i=n.triggerRef.current?.contains(a);i&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})})),ft=a.forwardRef(((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:i,...l}=e,c=Je(ct,n),u=a.useRef(null),s=x(t,u);return a.useEffect((()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??ne()),document.body.insertAdjacentElement("beforeend",e[1]??ne()),te++,()=>{1===te&&document.querySelectorAll("[data-radix-focus-guard]").forEach((e=>e.remove())),te--}}),[]),(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(V,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:i,children:(0,C.jsx)($,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":gt(c.open),...l,ref:s,onDismiss:()=>c.onOpenChange(!1)})}),(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(Et,{titleId:c.titleId}),(0,C.jsx)(bt,{contentRef:u,descriptionId:c.descriptionId})]})]})})),mt="DialogTitle";a.forwardRef(((e,t)=>{const{__scopeDialog:n,...r}=e,o=Je(mt,n);return(0,C.jsx)(T.h2,{id:o.titleId,...r,ref:t})})).displayName=mt;var pt="DialogDescription";a.forwardRef(((e,t)=>{const{__scopeDialog:n,...r}=e,o=Je(pt,n);return(0,C.jsx)(T.p,{id:o.descriptionId,...r,ref:t})})).displayName=pt;var vt="DialogClose";function gt(e){return e?"open":"closed"}a.forwardRef(((e,t)=>{const{__scopeDialog:n,...r}=e,o=Je(vt,n);return(0,C.jsx)(T.button,{type:"button",...r,ref:t,onClick:w(e.onClick,(()=>o.onOpenChange(!1)))})})).displayName=vt;var ht="DialogTitleWarning",[yt,wt]=function(e,t){const n=a.createContext(t),r=e=>{const{children:t,...r}=e,o=a.useMemo((()=>r),Object.values(r));return(0,C.jsx)(n.Provider,{value:o,children:t})};return r.displayName=e+"Provider",[r,function(r){const o=a.useContext(n);if(o)return o;if(void 0!==t)return t;throw new Error(`\`${r}\` must be used within \`${e}\``)}]}(ht,{contentName:ct,titleName:mt,docsSlug:"dialog"}),Et=({titleId:e})=>{const t=wt(ht),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return a.useEffect((()=>{e&&(document.getElementById(e)||console.error(n))}),[n,e]),null},bt=({contentRef:e,descriptionId:t})=>{const n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${wt("DialogDescriptionWarning").contentName}}.`;return a.useEffect((()=>{const r=e.current?.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(n))}),[n,e,t]),null},xt=Qe,Ct=ot,St=it,Nt=ut,_t=o(888),Pt='[cmdk-group=""]',Rt='[cmdk-group-items=""]',kt='[cmdk-item=""]',Dt=`${kt}:not([aria-disabled="true"])`,Ot="cmdk-item-select",Mt="data-value",It=(e,t,n)=>y(e,t,n),At=a.createContext(void 0),Lt=()=>a.useContext(At),Tt=a.createContext(void 0),jt=()=>a.useContext(Tt),Ft=a.createContext(void 0),$t=a.forwardRef(((e,t)=>{let n=Qt((()=>{var t,n;return{search:"",value:null!=(n=null!=(t=e.value)?t:e.defaultValue)?n:"",filtered:{count:0,items:new Map,groups:new Set}}})),r=Qt((()=>new Set)),o=Qt((()=>new Map)),i=Qt((()=>new Map)),l=Qt((()=>new Set)),c=Gt(e),{label:u,children:s,value:d,onValueChange:f,filter:m,shouldFilter:p,loop:v,disablePointerSelection:g=!1,vimBindings:h=!0,...y}=e,w=R(),E=R(),b=R(),x=a.useRef(null),C=rn();Jt((()=>{if(void 0!==d){let e=d.trim();n.current.value=e,S.emit()}}),[d]),Jt((()=>{C(6,O)}),[]);let S=a.useMemo((()=>({subscribe:e=>(l.current.add(e),()=>l.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var o,a,i;if(!Object.is(n.current[e],t)){if(n.current[e]=t,"search"===e)D(),P(),C(1,k);else if("value"===e&&(r||C(5,O),void 0!==(null==(o=c.current)?void 0:o.value))){let e=null!=t?t:"";return void(null==(i=(a=c.current).onValueChange)||i.call(a,e))}S.emit()}},emit:()=>{l.current.forEach((e=>e()))}})),[]),N=a.useMemo((()=>({value:(e,t,r)=>{var o;t!==(null==(o=i.current.get(e))?void 0:o.value)&&(i.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,_(t,r)),C(2,(()=>{P(),S.emit()})))},item:(e,t)=>(r.current.add(e),t&&(o.current.has(t)?o.current.get(t).add(e):o.current.set(t,new Set([e]))),C(3,(()=>{D(),P(),n.current.value||k(),S.emit()})),()=>{i.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=M();C(4,(()=>{D(),(null==t?void 0:t.getAttribute("id"))===e&&k(),S.emit()}))}),group:e=>(o.current.has(e)||o.current.set(e,new Set),()=>{i.current.delete(e),o.current.delete(e)}),filter:()=>c.current.shouldFilter,label:u||e["aria-label"],getDisablePointerSelection:()=>c.current.disablePointerSelection,listId:w,inputId:b,labelId:E,listInnerRef:x})),[]);function _(e,t){var r,o;let a=null!=(o=null==(r=c.current)?void 0:r.filter)?o:It;return e?a(e,n.current.search,t):0}function P(){if(!n.current.search||!1===c.current.shouldFilter)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach((n=>{let r=o.current.get(n),a=0;r.forEach((t=>{let n=e.get(t);a=Math.max(n,a)})),t.push([n,a])}));let r=x.current;I().sort(((t,n)=>{var r,o;let a=t.getAttribute("id"),i=n.getAttribute("id");return(null!=(r=e.get(i))?r:0)-(null!=(o=e.get(a))?o:0)})).forEach((e=>{let t=e.closest(Rt);t?t.appendChild(e.parentElement===t?e:e.closest(`${Rt} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${Rt} > *`))})),t.sort(((e,t)=>t[1]-e[1])).forEach((e=>{var t;let n=null==(t=x.current)?void 0:t.querySelector(`${Pt}[${Mt}="${encodeURIComponent(e[0])}"]`);null==n||n.parentElement.appendChild(n)}))}function k(){let e=I().find((e=>"true"!==e.getAttribute("aria-disabled"))),t=null==e?void 0:e.getAttribute(Mt);S.setState("value",t||void 0)}function D(){var e,t,a,l;if(!n.current.search||!1===c.current.shouldFilter)return void(n.current.filtered.count=r.current.size);n.current.filtered.groups=new Set;let u=0;for(let o of r.current){let r=_(null!=(t=null==(e=i.current.get(o))?void 0:e.value)?t:"",null!=(l=null==(a=i.current.get(o))?void 0:a.keywords)?l:[]);n.current.filtered.items.set(o,r),r>0&&u++}for(let[e,t]of o.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=u}function O(){var e,t,n;let r=M();r&&((null==(e=r.parentElement)?void 0:e.firstChild)===r&&(null==(n=null==(t=r.closest(Pt))?void 0:t.querySelector('[cmdk-group-heading=""]'))||n.scrollIntoView({block:"nearest"})),r.scrollIntoView({block:"nearest"}))}function M(){var e;return null==(e=x.current)?void 0:e.querySelector(`${kt}[aria-selected="true"]`)}function I(){var e;return Array.from((null==(e=x.current)?void 0:e.querySelectorAll(Dt))||[])}function A(e){let t=I()[e];t&&S.setState("value",t.getAttribute(Mt))}function L(e){var t;let n=M(),r=I(),o=r.findIndex((e=>e===n)),a=r[o+e];null!=(t=c.current)&&t.loop&&(a=o+e<0?r[r.length-1]:o+e===r.length?r[0]:r[o+e]),a&&S.setState("value",a.getAttribute(Mt))}function j(e){let t,n=M(),r=null==n?void 0:n.closest(Pt);for(;r&&!t;)r=e>0?Xt(r,Pt):Zt(r,Pt),t=null==r?void 0:r.querySelector(Dt);t?S.setState("value",t.getAttribute(Mt)):L(e)}let F=()=>A(I().length-1),$=e=>{e.preventDefault(),e.metaKey?F():e.altKey?j(1):L(1)},W=e=>{e.preventDefault(),e.metaKey?A(0):e.altKey?j(-1):L(-1)};return a.createElement(T.div,{ref:t,tabIndex:-1,...y,"cmdk-root":"",onKeyDown:e=>{var t;if(null==(t=y.onKeyDown)||t.call(y,e),!e.defaultPrevented)switch(e.key){case"n":case"j":h&&e.ctrlKey&&$(e);break;case"ArrowDown":$(e);break;case"p":case"k":h&&e.ctrlKey&&W(e);break;case"ArrowUp":W(e);break;case"Home":e.preventDefault(),A(0);break;case"End":e.preventDefault(),F();break;case"Enter":if(!e.nativeEvent.isComposing&&229!==e.keyCode){e.preventDefault();let t=M();if(t){let e=new Event(Ot);t.dispatchEvent(e)}}}}},a.createElement("label",{"cmdk-label":"",htmlFor:N.inputId,id:N.labelId,style:an},u),on(e,(e=>a.createElement(Tt.Provider,{value:S},a.createElement(At.Provider,{value:N},e)))))})),Wt=a.forwardRef(((e,t)=>{var n,r;let o=R(),i=a.useRef(null),l=a.useContext(Ft),c=Lt(),u=Gt(e),s=null!=(r=null==(n=u.current)?void 0:n.forceMount)?r:null==l?void 0:l.forceMount;Jt((()=>{if(!s)return c.item(o,null==l?void 0:l.id)}),[s]);let d=nn(o,i,[e.value,e.children,i],e.keywords),f=jt(),m=tn((e=>e.value&&e.value===d.current)),p=tn((e=>!(!s&&!1!==c.filter())||!e.search||e.filtered.items.get(o)>0));function v(){var e,t;g(),null==(t=(e=u.current).onSelect)||t.call(e,d.current)}function g(){f.setState("value",d.current,!0)}if(a.useEffect((()=>{let t=i.current;if(t&&!e.disabled)return t.addEventListener(Ot,v),()=>t.removeEventListener(Ot,v)}),[p,e.onSelect,e.disabled]),!p)return null;let{disabled:h,value:y,onSelect:w,forceMount:E,keywords:b,...x}=e;return a.createElement(T.div,{ref:en([i,t]),...x,id:o,"cmdk-item":"",role:"option","aria-disabled":!!h,"aria-selected":!!m,"data-disabled":!!h,"data-selected":!!m,onPointerMove:h||c.getDisablePointerSelection()?void 0:g,onClick:h?void 0:v},e.children)})),Ut=a.forwardRef(((e,t)=>{let{heading:n,children:r,forceMount:o,...i}=e,l=R(),c=a.useRef(null),u=a.useRef(null),s=R(),d=Lt(),f=tn((e=>!(!o&&!1!==d.filter())||!e.search||e.filtered.groups.has(l)));Jt((()=>d.group(l)),[]),nn(l,c,[e.value,e.heading,u]);let m=a.useMemo((()=>({id:l,forceMount:o})),[o]);return a.createElement(T.div,{ref:en([c,t]),...i,"cmdk-group":"",role:"presentation",hidden:!f||void 0},n&&a.createElement("div",{ref:u,"cmdk-group-heading":"","aria-hidden":!0,id:s},n),on(e,(e=>a.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?s:void 0},a.createElement(Ft.Provider,{value:m},e)))))})),Bt=a.forwardRef(((e,t)=>{let{alwaysRender:n,...r}=e,o=a.useRef(null),i=tn((e=>!e.search));return n||i?a.createElement(T.div,{ref:en([o,t]),...r,"cmdk-separator":"",role:"separator"}):null})),Kt=a.forwardRef(((e,t)=>{let{onValueChange:n,...r}=e,o=null!=e.value,i=jt(),l=tn((e=>e.search)),c=tn((e=>e.value)),u=Lt(),s=a.useMemo((()=>{var e;let t=null==(e=u.listInnerRef.current)?void 0:e.querySelector(`${kt}[${Mt}="${encodeURIComponent(c)}"]`);return null==t?void 0:t.getAttribute("id")}),[]);return a.useEffect((()=>{null!=e.value&&i.setState("search",e.value)}),[e.value]),a.createElement(T.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":u.listId,"aria-labelledby":u.labelId,"aria-activedescendant":s,id:u.inputId,type:"text",value:o?e.value:l,onChange:e=>{o||i.setState("search",e.target.value),null==n||n(e.target.value)}})})),qt=a.forwardRef(((e,t)=>{let{children:n,label:r="Suggestions",...o}=e,i=a.useRef(null),l=a.useRef(null),c=Lt();return a.useEffect((()=>{if(l.current&&i.current){let e,t=l.current,n=i.current,r=new ResizeObserver((()=>{e=requestAnimationFrame((()=>{let e=t.offsetHeight;n.style.setProperty("--cmdk-list-height",e.toFixed(1)+"px")}))}));return r.observe(t),()=>{cancelAnimationFrame(e),r.unobserve(t)}}}),[]),a.createElement(T.div,{ref:en([i,t]),...o,"cmdk-list":"",role:"listbox","aria-label":r,id:c.listId},on(e,(e=>a.createElement("div",{ref:en([l,c.listInnerRef]),"cmdk-list-sizer":""},e))))})),Vt=a.forwardRef(((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:o,contentClassName:i,container:l,...c}=e;return a.createElement(xt,{open:n,onOpenChange:r},a.createElement(Ct,{container:l},a.createElement(St,{"cmdk-overlay":"",className:o}),a.createElement(Nt,{"aria-label":e.label,"cmdk-dialog":"",className:i},a.createElement($t,{ref:t,...c}))))})),zt=a.forwardRef(((e,t)=>tn((e=>0===e.filtered.count))?a.createElement(T.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null)),Ht=a.forwardRef(((e,t)=>{let{progress:n,children:r,label:o="Loading...",...i}=e;return a.createElement(T.div,{ref:t,...i,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":o},on(e,(e=>a.createElement("div",{"aria-hidden":!0},e))))})),Yt=Object.assign($t,{List:qt,Item:Wt,Input:Kt,Group:Ut,Separator:Bt,Dialog:Vt,Empty:zt,Loading:Ht});function Xt(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function Zt(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function Gt(e){let t=a.useRef(e);return Jt((()=>{t.current=e})),t}var Jt="undefined"==typeof window?a.useEffect:a.useLayoutEffect;function Qt(e){let t=a.useRef();return void 0===t.current&&(t.current=e()),t}function en(e){return t=>{e.forEach((e=>{"function"==typeof e?e(t):null!=e&&(e.current=t)}))}}function tn(e){let t=jt(),n=()=>e(t.snapshot());return(0,_t.useSyncExternalStore)(t.subscribe,n,n)}function nn(e,t,n,r=[]){let o=a.useRef(),i=Lt();return Jt((()=>{var a;let l=(()=>{var e;for(let t of n){if("string"==typeof t)return t.trim();if("object"==typeof t&&"current"in t)return t.current?null==(e=t.current.textContent)?void 0:e.trim():o.current}})(),c=r.map((e=>e.trim()));i.value(e,l,c),null==(a=t.current)||a.setAttribute(Mt,l),o.current=l})),o}var rn=()=>{let[e,t]=a.useState(),n=Qt((()=>new Map));return Jt((()=>{n.current.forEach((e=>e())),n.current=new Map}),[e]),(e,r)=>{n.current.set(e,r),t({})}};function on({asChild:e,children:t},n){return e&&a.isValidElement(t)?a.cloneElement(function(e){let t=e.type;return"function"==typeof t?t(e.props):"render"in t?t.render(e.props):e}(t),{ref:t.ref},n(t.props.children)):n(t)}var an={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function ln(e,t){(0,l.useEffect)((()=>{const n=n=>{const r="ArrowUp"===e.key||"ArrowDown"===e.key,o=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?n.metaKey:n.ctrlKey,a=n.key.toLowerCase()===e.key.toLowerCase();(r&&a||!r&&a&&(e.metaKey&&o||!e.metaKey))&&t(n)};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)}),[e,t])}const cn="create",un="manage",sn="content",dn="plugins",fn="settings",mn=[{id:"create-page",type:cn,category:sn,title:(0,c.__)("Create a new page","lexia-command"),keywords:["new page","add page","create page"],icon:"📄",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}post-new.php?post_type=page`}},{id:"create-post",type:cn,category:sn,title:(0,c.__)("Create a new post","lexia-command"),keywords:["new post","add post","create post","write"],icon:"✏️",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}post-new.php`}},{id:"media-library",type:un,category:sn,title:(0,c.__)("Open Media Library","lexia-command"),keywords:["media","images","library","files"],icon:"🖼️",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}upload.php`}},{id:"settings",type:un,category:fn,title:(0,c.__)("Site Settings","lexia-command"),keywords:["settings","options","configure"],icon:"⚙️",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}options-general.php`}},{id:"customize",type:un,category:fn,title:(0,c.__)("Customize Theme","lexia-command"),keywords:["customize","theme","appearance"],icon:"🎨",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}customize.php`}},{id:"menus",type:un,category:sn,title:(0,c.__)("Manage Menus","lexia-command"),keywords:["menus","navigation","nav"],icon:"📋",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}nav-menus.php`}},{id:"plugins",type:un,category:dn,title:(0,c.__)("Manage Plugins","lexia-command"),keywords:["plugins","add plugin","install plugin"],icon:"🔌",action:()=>{window.location.href=`${window.lexiaCommandData.adminUrl}plugins.php`}},{id:"install-plugins",type:"action",category:dn,title:(0,c.__)("Install Plugin","lexia-command"),keywords:["install","plugin"],icon:"🔌",action:e=>{const t=new CustomEvent("lexiaCommand:showPluginSearch");return window.dispatchEvent(t),!1}}];function pn(e){if(!e)return[];const t=e.toLowerCase();return mn.filter((e=>!(e.category===dn&&!window.lexiaCommandData.userCaps.manage_options)&&!(e.category===fn&&!window.lexiaCommandData.userCaps.manage_options)&&!("users"===e.category&&!window.lexiaCommandData.userCaps.manage_options)&&(e.title.toLowerCase().includes(t)||e.keywords.some((e=>e.toLowerCase().includes(t))))))}const vn=function({pluginResults:e,searchTerm:t,selectedIndex:n,setSelectedIndex:r,installPlugin:o,activatePlugin:i,installingPlugin:l,activatingPlugin:u,loadingMore:s,hasMorePages:d}){return e.length>0?(0,a.createElement)(Yt.Group,null,e.map(((e,t)=>(0,a.createElement)(Yt.Item,{key:e.slug,value:e.slug,className:"lexia-command-result",onMouseEnter:()=>r(t),onSelect:()=>{e.installed?e.installed&&!e.active&&i(e.slug):o(e.slug)},"data-selected":t===n},(0,a.createElement)("div",{className:"lexia-command-plugin-result px-4 w-10"},(0,a.createElement)("img",{className:"install-plugin-icon w-100",src:e.icons&&(e.icons["1x"]||e.icons.default||e.icons.svg||e.icons["2x"]),alt:`${e.name} icon`})),(0,a.createElement)("div",{className:"lexia-command-plugin-result-name w-20"},(0,a.createElement)("span",{className:"lexia-command-result-title"},e.name)),(0,a.createElement)("div",{className:"lexia-command-result-details w-65"},(0,a.createElement)("p",{className:"lexia-command-result-description"},e.short_description),(0,a.createElement)("br",null),(0,a.createElement)("span",{className:"lexia-command-result-rating"},"⭐".repeat(Math.round(e.rating/20))," ",(e.rating/20).toFixed(1)),(0,a.createElement)("br",null),(0,a.createElement)("span",{className:"lexia-command-result-installs"},(new Intl.NumberFormat).format(e.active_installs),"+ active installs")),(0,a.createElement)("div",{className:"lexia-command-result-meta w-5"},!e.installed&&(0,a.createElement)("span",null,l===e.slug?(0,a.createElement)("span",{className:"loading-spinner"},"⌛"):(0,a.createElement)("span",{className:"lexia-command-shortcut"},"Enter to install")),e.installed&&!e.active&&(0,a.createElement)("span",null,u===e.slug?(0,a.createElement)("span",{className:"loading-spinner"},"⌛"):(0,a.createElement)("span",{className:"lexia-command-shortcut"},"Enter to activate")))))),s&&(0,a.createElement)(Yt.Item,{className:"lexia-command-loading-more",value:"loading-more"},(0,a.createElement)("div",{className:"lexia-command-loading-indicator"},(0,c.__)("Loading more plugins...","lexia-command"))),!s&&d&&(0,a.createElement)(Yt.Item,{className:"lexia-command-scroll-hint",value:"scroll-hint"},(0,a.createElement)("div",{className:"lexia-command-scroll-hint-text"},(0,c.__)("Scroll for more results","lexia-command")))):t?(0,a.createElement)(Yt.Empty,{className:"lexia-command-no-results"},(0,c.__)("No plugins found","lexia-command")):(0,a.createElement)(Yt.Empty,{className:"lexia-command-empty-state"},(0,c.__)("Search for WordPress plugins...","lexia-command"))},gn=function({results:e,selectedIndex:t,setSelectedIndex:n,closeCommandBar:r}){return e.length>0?(0,a.createElement)(Yt.Group,null,e.map(((e,o)=>(0,a.createElement)(Yt.Item,{key:e.id||o,value:e.id||String(o),className:"lexia-command-result",onSelect:()=>{!1!==e.action(r)&&r()},onMouseEnter:()=>n(o),"data-selected":o===t},(0,a.createElement)("span",{className:"lexia-command-result-icon"},e.icon),(0,a.createElement)("span",{className:"lexia-command-result-title"},e.title))))):(0,a.createElement)(Yt.Empty,{className:"lexia-command-no-results"},(0,c.__)("No results found","lexia-command"))};(0,l.render)((0,a.createElement)((function(){const[e,t]=(0,l.useState)(!1),[n,r]=(0,l.useState)(""),[o,i]=(0,l.useState)([]),[u,d]=(0,l.useState)(!1),[f,m]=(0,l.useState)(0),[p,v]=(0,l.useState)(!1),[g,h]=(0,l.useState)([]),[y,w]=(0,l.useState)(1),[E,b]=(0,l.useState)(0),[x,C]=(0,l.useState)(!1),S=(0,l.useRef)(!1),{installingPlugin:N,activatingPlugin:_,pluginStatuses:P,fetchPluginStatuses:R,installPlugin:k,activatePlugin:D}=function(){const[e,t]=(0,l.useState)(null),[n,r]=(0,l.useState)(null),[o,a]=(0,l.useState)({});return{installingPlugin:e,activatingPlugin:n,pluginStatuses:o,fetchPluginStatuses:async()=>{try{const e=await s()({path:`/${window.lexiaCommandData.restNamespace}/get-plugin-statuses`,method:"GET"});a(e.data||{})}catch(e){console.error("Failed to fetch plugin statuses:",e)}},installPlugin:async e=>{t(e);try{return await s()({path:`${window.lexiaCommandData.restNamespace}/install-plugin`,method:"POST",data:{slug:e}}),a((t=>({...t,[e]:{...t[e],installed:!0}}))),!0}catch(e){return console.error("Plugin installation failed:",e),!1}finally{t(null)}},activatePlugin:async e=>{r(e);try{return await s()({path:`${window.lexiaCommandData.restNamespace}/activate-plugin`,method:"POST",data:{slug:e}}),a((t=>({...t,[e]:{...t[e],installed:!0,active:!0}}))),!0}catch(e){return console.error("Plugin activation failed:",e),!1}finally{r(null)}}}}(),O=(0,l.useCallback)((()=>mn.filter((e=>!("plugins"===e.category&&!window.lexiaCommandData.userCaps.manage_options||"settings"===e.category&&!window.lexiaCommandData.userCaps.manage_options||"users"===e.category&&!window.lexiaCommandData.userCaps.manage_options)))),[]);(0,l.useEffect)((()=>{!e||p||n||i(O())}),[e,p,n,O]),(0,l.useEffect)((()=>{const e=()=>{v(!0),r(""),i([]),h([]),w(1),b(0),R()};return window.addEventListener("lexiaCommand:showPluginSearch",e),()=>window.removeEventListener("lexiaCommand:showPluginSearch",e)}),[R]),(0,l.useEffect)((()=>{if(S.current)return;if(!n)return p?h([]):i(O()),void m(0);if(p&&1!==y)return void w(1);const e=setTimeout((async()=>{d(!0);try{if(p){const e=await fetch(`https://api.wordpress.org/plugins/info/1.2/?action=query_plugins&per_page=10&page=${y}&search=${encodeURIComponent(n)}`),t=await e.json(),r=(t.plugins||[]).map((e=>{const t=P[e.slug]||{};return{...e,installed:t.installed||!1,active:t.active||!1}}));h(1===y?r:e=>[...e,...r]),b(Math.ceil(t.info?.results||0)/10)}else{const e=pn(n),t=new URLSearchParams({query:n}).toString(),r=await s()({path:`/${window.lexiaCommandData.restNamespace}/search?${t}`,method:"GET"});i([...e,...r.data.map((e=>({...e,icon:"📝",action:()=>{window.location.href=e.url}})))])}}catch(e){console.error("Search failed:",e),p||i(pn(n)||[])}finally{d(!1)}}),300);return()=>clearTimeout(e)}),[n,p,P,y,O]);const M=(0,l.useCallback)((()=>{t(!0),m(0)}),[]),I=(0,l.useCallback)((()=>{t(!1),r(""),i([]),h([]),m(0),v(!1),w(1),b(0)}),[]),A=(0,l.useRef)(null);return(0,l.useEffect)((()=>{if(!e||!p)return;const t=e=>{A.current&&clearTimeout(A.current),A.current=setTimeout((()=>{const t=e.target;t.scrollHeight-t.scrollTop<=1.5*t.clientHeight&&(async()=>{if(!x&&p&&n&&!(y>=E)){C(!0),S.current=!0;try{const e=y+1,t=await fetch(`https://api.wordpress.org/plugins/info/1.2/?action=query_plugins&per_page=10&page=${e}&search=${encodeURIComponent(n)}`),r=((await t.json()).plugins||[]).map((e=>{const t=P[e.slug]||{};return{...e,installed:t.installed||!1,active:t.active||!1}})),o=new Set(g.map((e=>e.slug))),a=r.filter((e=>!o.has(e.slug)));h((e=>[...e,...a])),w(e)}catch(e){console.error("Failed to load more plugins:",e)}finally{C(!1),setTimeout((()=>{S.current=!1}),100)}}})()}),150)},r=document.querySelector(".lexia-command-results");return r&&r.addEventListener("scroll",t),()=>{r&&r.removeEventListener("scroll",t),A.current&&clearTimeout(A.current)}}),[e,p,y,E,x,n]),ln({key:"k",metaKey:!0},(e=>{e.preventDefault(),M()})),ln({key:"Backspace"},(t=>{e&&p&&!n&&(t.preventDefault(),v(!1))})),ln({key:"Delete"},(t=>{e&&p&&!n&&(t.preventDefault(),v(!1))})),e?(0,a.createElement)("div",{className:"lexia-command-modal-overlay components-modal__screen-overlay"},(0,a.createElement)(Yt,{className:"lexia-command-modal",label:"Command Menu"},(0,a.createElement)("div",{className:"components-modal__header"},(0,a.createElement)("div",{className:"components-modal__header-heading"},p?(0,c.__)("Search WordPress Plugins","lexia-command"):(0,c.__)("LexiaCommand","lexia-command")),(0,a.createElement)("button",{type:"button",className:"components-button has-icon",onClick:I,"aria-label":(0,c.__)("Close dialog","lexia-command")},(0,a.createElement)("svg",{width:"24",height:"24",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24","aria-hidden":"true",focusable:"false"},(0,a.createElement)("path",{d:"M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"})))),(0,a.createElement)("div",{className:"lexia-command-container"},(0,a.createElement)(Yt.Input,{value:n,onValueChange:r,placeholder:p?(0,c.__)("Search for plugins...","lexia-command"):(0,c.__)("Type a command or search...","lexia-command"),className:"lexia-command-search",autoComplete:"off",autoFocus:!0}),(0,a.createElement)(Yt.List,{className:"lexia-command-results"},!u||x||N||_?p?(0,a.createElement)(vn,{pluginResults:g,searchTerm:n,selectedIndex:f,setSelectedIndex:m,installPlugin:k,activatePlugin:D,installingPlugin:N,activatingPlugin:_,loadingMore:x,hasMorePages:y<E}):o.length>0?(0,a.createElement)(gn,{results:o,selectedIndex:f,setSelectedIndex:m,closeCommandBar:I}):n?(0,a.createElement)(Yt.Empty,{className:"lexia-command-no-results"},(0,c.__)("No results found","lexia-command")):(0,a.createElement)(gn,{results:O(),selectedIndex:f,setSelectedIndex:m,closeCommandBar:I}):(0,a.createElement)(Yt.Empty,{className:"lexia-command-loading"},(0,c.__)("Searching...","lexia-command")))))):null}),null),document.getElementById("lexia-command-root"))})();
  • lexia-command/trunk/includes/class-lexia-command.php

    r3210776 r3249973  
    145145            ),
    146146        ));
     147
     148        register_rest_route('lexia-command/v1', '/install-plugin', array(
     149            'methods' => WP_REST_Server::CREATABLE,
     150            'callback' => array($this, 'handle_install_plugin'),
     151            'permission_callback' => function () {
     152                return current_user_can('install_plugins');
     153            },
     154            'args' => array(
     155                'slug' => array(
     156                    'required' => true,
     157                    'type' => 'string',
     158                    'sanitize_callback' => 'sanitize_text_field',
     159                ),
     160            ),
     161        ));
     162
     163        register_rest_route('lexia-command/v1', '/activate-plugin', array(
     164            'methods' => WP_REST_Server::CREATABLE,
     165            'callback' => array($this, 'handle_activate_plugin'),
     166            'permission_callback' => function () {
     167                return current_user_can('activate_plugins');
     168            },
     169            'args' => array(
     170                'slug' => array(
     171                    'required' => true,
     172                    'type' => 'string',
     173                    'sanitize_callback' => 'sanitize_text_field',
     174                ),
     175            ),
     176        ));
     177
     178        // Add new endpoint for getting plugin statuses
     179        register_rest_route('lexia-command/v1', '/get-plugin-statuses', array(
     180            'methods' => WP_REST_Server::READABLE,
     181            'callback' => array($this, 'handle_get_plugin_statuses'),
     182            'permission_callback' => function () {
     183                return current_user_can('install_plugins');
     184            },
     185        ));
    147186    }
    148187
     
    172211        ));
    173212    }
     213
     214    public function handle_install_plugin($request) {
     215        if (!current_user_can('install_plugins')) {
     216            return new WP_Error('rest_forbidden', __('Sorry, you are not allowed to install plugins.'), array('status' => 403));
     217        }
     218
     219        $slug = sanitize_text_field($request->get_param('slug'));
     220        require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
     221        require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
     222        require_once ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php';
     223        require_once ABSPATH . 'wp-admin/includes/file.php';
     224
     225        // Get plugin information
     226        $api = plugins_api('plugin_information', array('slug' => $slug));
     227        if (is_wp_error($api)) {
     228            return new WP_Error('plugin_api_error', $api->get_error_message(), array('status' => 400));
     229        }
     230
     231        $skin = new WP_Ajax_Upgrader_Skin();
     232        $upgrader = new Plugin_Upgrader($skin);
     233        $result = $upgrader->install($api->download_link);
     234
     235        if (is_wp_error($result)) {
     236            return new WP_Error('plugin_install_error', $result->get_error_message(), array('status' => 400));
     237        }
     238
     239        return new WP_REST_Response(array(
     240            'success' => true,
     241            'message' => __('Plugin installed successfully.'),
     242        ));
     243    }
     244
     245    public function handle_activate_plugin($request) {
     246        if (!current_user_can('activate_plugins')) {
     247            return new WP_Error('rest_forbidden', __('Sorry, you are not allowed to activate plugins.'), array('status' => 403));
     248        }
     249
     250        $slug = sanitize_text_field($request->get_param('slug'));
     251        $plugins = get_plugins();
     252        $plugin_file = false;
     253
     254        // Find the plugin file based on the slug
     255        foreach ($plugins as $file => $data) {
     256            if (strpos($file, $slug . '/') === 0 || $file === $slug . '.php') {
     257                $plugin_file = $file;
     258                break;
     259            }
     260        }
     261
     262        if (!$plugin_file) {
     263            return new WP_Error('plugin_not_found', __('Plugin not found.'), array('status' => 404));
     264        }
     265
     266        $result = activate_plugin($plugin_file);
     267        if (is_wp_error($result)) {
     268            return new WP_Error('plugin_activation_error', $result->get_error_message(), array('status' => 400));
     269        }
     270
     271        return new WP_REST_Response(array(
     272            'success' => true,
     273            'message' => __('Plugin activated successfully.'),
     274        ));
     275    }
     276
     277    /**
     278     * Handle the request to get plugin statuses
     279     *
     280     * @param WP_REST_Request $request The request object
     281     * @return WP_REST_Response Response with plugin statuses
     282     */
     283    public function handle_get_plugin_statuses($request) {
     284        require_once plugin_dir_path(dirname(__FILE__)) . 'includes/class-lexia-command-plugin-status.php';
     285       
     286        $plugin_statuses = Lexia_Command_Plugin_Status::get_plugin_statuses();
     287       
     288        return new WP_REST_Response(array(
     289            'success' => true,
     290            'data' => $plugin_statuses,
     291        ));
     292    }
    174293}
  • lexia-command/trunk/languages/lexia-command.pot

    r3210776 r3249973  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Lexia Command 1.0.0\n"
     5"Project-Id-Version: Lexia Command 1.1.0\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/lexia-command\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  • lexia-command/trunk/lexia-command.php

    r3239250 r3249973  
    1212 * Plugin URI:        https://github.com/stephen1204paul/lexia-command
    1313 * Description:       A powerful, keyboard-driven command bar for WordPress, inspired by macOS Spotlight.
    14  * Version:           1.0.1
     14 * Version:           1.1.0
    1515 * Author:            Stephen Paul
    1616 * Author URI:        https://profiles.wordpress.org/stephen1204paul/
     
    3030 * Start at version 1.0.0 and use SemVer - https://semver.org
    3131 */
    32 define('LEXIA_COMMAND_VERSION', '1.0.1');
     32define('LEXIA_COMMAND_VERSION', '1.1.0');
    3333
    3434/**
Note: See TracChangeset for help on using the changeset viewer.