vue-command-kit 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -242
- package/dist/__tests__/highlight.test.d.ts +1 -0
- package/dist/types.d.ts +4 -0
- package/dist/utils/highlight.d.ts +9 -0
- package/dist/utils/shortcut.d.ts +12 -0
- package/dist/vue-cmdk.js +322 -288
- package/dist/vue-cmdk.umd.cjs +1 -1
- package/package.json +1 -1
package/dist/vue-cmdk.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(y,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(y=typeof globalThis<"u"?globalThis:y||self,e(y.VueCmdk={},y.Vue))})(this,(function(y,e){"use strict";const S="__ungrouped__",U={"⌘":"metaKey","⌃":"ctrlKey","⌥":"altKey","⇧":"shiftKey"},q=/^([⌘⌃⌥⇧]+)(.+)$/;function z(n){if(!n)return null;const t=q.exec(n);if(!t)return{key:n.toLowerCase()};const[,a,c]=t,d={};for(const l of a){const m=U[l];m&&(d[m]=!0)}return{...d,key:c.toLowerCase()}}function H(n,t){return t?n.key.toLowerCase()===t.key&&!!n.metaKey==!!t.metaKey&&!!n.ctrlKey==!!t.ctrlKey&&!!n.altKey==!!t.altKey&&!!n.shiftKey==!!t.shiftKey:!1}function K(n,t){const a=typeof n=="function"?{filter:n}:n??{},{filter:c,shouldFilter:d=!0,loop:l=!0}=a,m=e.ref(!1),r=e.ref(""),o=e.ref(0),u=e.ref(),i=e.ref([]),k=()=>{m.value=!m.value},f=()=>{m.value=!0,o.value=0},_=()=>{m.value=!1,r.value=""};function I(s,h){if(!h.trim())return s;const p=h.toLowerCase();return s.filter(g=>{var b,G;return!!(g.value.toLowerCase().includes(p)||(b=g.label)!=null&&b.toLowerCase().includes(p)||(G=g.keywords)!=null&&G.some(Be=>Be.toLowerCase().includes(p)))})}function j(s){const h=new Map;for(const g of s){const b=g.group||S;h.has(b)?h.get(b).push(g):h.set(b,[g])}const p=[];h.has(S)&&(p.push({heading:"",items:h.get(S)}),h.delete(S));for(const g of[...h.keys()].sort())p.push({heading:g,items:h.get(g)});return p}const E=e.computed(()=>{if(c){const s=c(i.value,r.value);if(s!==null)return s}return d?I(i.value,r.value):i.value}),ge=e.computed(()=>j(E.value));function _e(){const s=E.value.length;s!==0&&(l?o.value=(o.value+1)%s:o.value=Math.min(o.value+1,s-1))}function Ce(){const s=E.value.length;s!==0&&(l?o.value=(o.value-1+s)%s:o.value=Math.max(o.value-1,0))}function be(){var h;const s=E.value[o.value];s&&!s.disabled&&(u.value=s.value,(h=s.onSelect)==null||h.call(s,s),_())}function A(s){var h;for(const p of i.value){if(p.disabled||!p.shortcut)continue;const g=z(p.shortcut);if(H(s,g)){s.preventDefault(),s.stopPropagation(),u.value=p.value,(h=p.onSelect)==null||h.call(p,p),t==null||t(p),_();return}}}let C=null;return e.watch(i,s=>{C&&(C(),C=null),s.some(p=>p.shortcut)&&typeof window<"u"&&(window.addEventListener("keydown",A),C=()=>window.removeEventListener("keydown",A))},{immediate:!0,deep:!0,flush:"post"}),e.onUnmounted(()=>{C&&C()}),{visible:m,searchQuery:r,activeIndex:o,selectedValue:u,items:i,toggle:k,open:f,close:_,defaultFilter:I,groupItems:j,filteredItems:E,groupedItems:ge,selectNext:_e,selectPrev:Ce,selectCurrent:be}}const B=Symbol("cmdk-state"),T=Symbol("cmdk-loading"),Q=Symbol("cmdk-close-on-select"),N=Symbol("cmdk-select-handler"),O=Symbol("cmdk-item-index-map");function v(n,t,a){const{filter:c,loading:d=!1,closeOnSelect:l=!0,shouldFilter:m=!0,loop:r=!0}=n,u=K({filter:c,shouldFilter:m,loop:r},f=>{t("select",f),t("update:value",f.value),l&&u.close()});e.watch(()=>n.value,f=>{f!==void 0&&(u.selectedValue.value=f)},{immediate:!0}),e.provide(B,u),e.provide(T,()=>d),e.provide(Q,()=>l),e.provide(N,f=>{t("select",f),l&&u.close()});const i=e.computed(()=>{const f=new Map;return u.filteredItems.value.forEach((_,I)=>f.set(_.value,I)),f});e.provide(O,()=>i.value);function k(f){t("select",f),l&&u.close()}return{state:u,handleSelect:k}}const X={"data-cmdk-root":"",role:"combobox","aria-expanded":"true","aria-haspopup":"listbox"},P=e.defineComponent({__name:"CommandMenu",props:{visible:{type:Boolean,default:!0},searchQuery:{},placeholder:{default:"Type a command or search..."},filter:{},autoFocus:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},loading:{type:Boolean},label:{},shouldFilter:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},value:{}},emits:["update:visible","update:searchQuery","update:value","select"],setup(n,{expose:t,emit:a}){const c=n,d=a,{state:l,handleSelect:m}=v({filter:c.filter,loading:c.loading,closeOnSelect:c.closeOnSelect,shouldFilter:c.shouldFilter,loop:c.loop,value:c.value},d);return e.watch(()=>c.visible,r=>{r!==void 0&&(l.visible.value=r)},{immediate:!0}),e.watch(l.visible,r=>d("update:visible",r)),e.watch(()=>c.searchQuery,r=>{r!==void 0&&(l.searchQuery.value=r)}),e.watch(l.searchQuery,r=>d("update:searchQuery",r)),t({open:l.open,close:l.close,toggle:l.toggle,searchQuery:l.searchQuery,items:l.items,filteredItems:l.filteredItems}),(r,o)=>(e.openBlock(),e.createElementBlock("div",X,[e.renderSlot(r.$slots,"default",{items:e.unref(l).items,filteredItems:e.unref(l).filteredItems,searchQuery:e.unref(l).searchQuery,selectNext:e.unref(l).selectNext,selectPrev:e.unref(l).selectPrev,selectCurrent:e.unref(l).selectCurrent,handleSelect:e.unref(m)})]))}});function w(n,t){const a=e.inject(n);if(a==null)throw new Error(`[vue-cmdk] <${t}> must be used inside <CommandMenu> or <CommandDialog>.`);return a}const Y=["value","placeholder","aria-activedescendant","autofocus"],$=e.defineComponent({__name:"CommandInput",props:{placeholder:{default:"Type a command or search..."},autoFocus:{type:Boolean,default:!0}},setup(n,{expose:t}){const a=w(B,"CommandInput"),c=e.inject(N,()=>{}),d=e.ref(null);t({inputRef:d});const l=e.computed(()=>{const o=a.filteredItems.value[a.activeIndex.value];return o?`cmdk-item-${o.value}`:void 0});function m(o){const u=o.target;u&&(a.searchQuery.value=u.value,a.activeIndex.value=0)}function r(o){var u;if(o.key==="ArrowDown")o.preventDefault(),a.selectNext();else if(o.key==="ArrowUp")o.preventDefault(),a.selectPrev();else if(o.key==="Enter"){o.preventDefault();const i=a.filteredItems.value[a.activeIndex.value];i&&!i.disabled&&((u=i.onSelect)==null||u.call(i,i),c(i))}}return(o,u)=>(e.openBlock(),e.createElementBlock("input",{ref_key:"inputRef",ref:d,"data-cmdk-input":"",value:e.unref(a).searchQuery.value,placeholder:n.placeholder,role:"searchbox","aria-activedescendant":l.value,autocomplete:"off",autocorrect:"off",spellcheck:"false",autofocus:n.autoFocus,onInput:m,onKeydown:r},null,40,Y))}}),J={key:0,"data-cmdk-empty":""},V=e.defineComponent({__name:"CommandEmpty",setup(n){const t=w(B,"CommandEmpty");return(a,c)=>e.unref(t).searchQuery.value&&e.unref(t).filteredItems.value.length===0?(e.openBlock(),e.createElementBlock("div",J,[e.renderSlot(a.$slots,"default",{},()=>[c[0]||(c[0]=e.createElementVNode("span",null,"No results found.",-1))])])):e.createCommentVNode("",!0)}}),W={key:0,"data-cmdk-loading":""},D=e.defineComponent({__name:"CommandLoading",props:{loading:{type:Boolean}},setup(n){return(t,a)=>n.loading?(e.openBlock(),e.createElementBlock("div",W,[e.renderSlot(t.$slots,"default",{},()=>[a[0]||(a[0]=e.createElementVNode("span",null,"Loading...",-1))])])):e.createCommentVNode("",!0)}}),Z={"data-cmdk-group":"",role:"group"},ee={key:0,"data-cmdk-group-heading":"",role:"presentation"},te={"data-cmdk-group-items":"",role:"group"},L=e.defineComponent({__name:"CommandGroup",props:{heading:{}},setup(n){return(t,a)=>(e.openBlock(),e.createElementBlock("div",Z,[n.heading?(e.openBlock(),e.createElementBlock("div",ee,e.toDisplayString(n.heading),1)):e.createCommentVNode("",!0),e.createElementVNode("div",te,[e.renderSlot(t.$slots,"default")])]))}}),oe=["id","aria-selected","aria-disabled","data-value"],ne={key:0,"data-cmdk-item-icon":""},ae={"data-cmdk-item-label":""},le={key:1,"data-cmdk-item-shortcut":""},M=e.defineComponent({__name:"CommandItem",props:{value:{},label:{default:void 0},keywords:{default:void 0},shortcut:{default:void 0},disabled:{type:Boolean,default:!1},icon:{type:[Object,Function],default:void 0},onSelect:{type:Function,default:void 0}},setup(n){const t=n,a=w(B,"CommandItem"),c=e.inject(O,()=>new Map),d=e.computed(()=>`cmdk-item-${t.value}`),l=e.computed(()=>({value:t.value,label:t.label,keywords:t.keywords,shortcut:t.shortcut,disabled:t.disabled,icon:t.icon,onSelect:t.onSelect})),m=e.computed(()=>t.icon?e.isVNode(t.icon)?()=>t.icon:t.icon:null),r=e.computed(()=>{const k=a.filteredItems.value[a.activeIndex.value];return(k==null?void 0:k.value)===t.value}),o=e.inject(Q,()=>!0),u=e.inject(N,()=>{});function i(){var k;t.disabled||((k=t.onSelect)==null||k.call(t,l.value),u(l.value),o()&&a.close())}return(k,f)=>(e.openBlock(),e.createElementBlock("div",{id:d.value,"data-cmdk-item":"",role:"option","aria-selected":r.value,"aria-disabled":n.disabled,"data-value":n.value,class:e.normalizeClass({active:r.value,disabled:n.disabled}),onClick:i,onPointerenter:f[0]||(f[0]=()=>{const _=e.unref(c)().get(n.value);_!==void 0&&(e.unref(a).activeIndex.value=_)})},[e.renderSlot(k.$slots,"default",{item:l.value,active:r.value},()=>[m.value?(e.openBlock(),e.createElementBlock("span",ne,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(m.value)))])):e.createCommentVNode("",!0),e.createElementVNode("span",ae,e.toDisplayString(n.label||n.value),1),n.shortcut?(e.openBlock(),e.createElementBlock("span",le,e.toDisplayString(n.shortcut),1)):e.createCommentVNode("",!0)])],42,oe))}}),re=(n,t)=>{const a=n.__vccOpts||n;for(const[c,d]of t)a[c]=d;return a},ce={},se={"data-cmdk-separator":"",role:"separator"};function de(n,t){return e.openBlock(),e.createElementBlock("div",se)}const x=re(ce,[["render",de]]),ie={"data-cmdk-list":"",role:"listbox"},ue={"aria-live":"polite","aria-atomic":"true",class:"sr-only"},F=e.defineComponent({__name:"CommandList",setup(n){const t=w(B,"CommandList"),a=e.inject(T,()=>!1);return(c,d)=>(e.openBlock(),e.createElementBlock("div",ie,[e.createElementVNode("div",ue,[e.unref(t).searchQuery.value&&e.unref(t).filteredItems.value.length===0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode("No results found")],64)):e.unref(a)()?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode("Loading")],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(e.unref(t).filteredItems.value.length)+" items",1)],64))]),e.createVNode(V),e.createVNode(D,{loading:e.unref(a)()},null,8,["loading"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t).groupedItems.value,(l,m)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l.heading||"__ungrouped__"},[e.createVNode(L,{heading:l.heading},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.items,r=>(e.openBlock(),e.createBlock(M,{key:r.value,value:r.value,label:r.label,keywords:r.keywords,shortcut:r.shortcut,disabled:r.disabled,icon:r.icon,"on-select":r.onSelect},null,8,["value","label","keywords","shortcut","disabled","icon","on-select"]))),128))]),_:2},1032,["heading"]),m!==e.unref(t).groupedItems.value.length-1?(e.openBlock(),e.createBlock(x,{key:0})):e.createCommentVNode("",!0)],64))),128))]))}}),me=["aria-label"],fe={"data-cmdk-dialog-wrapper":""},pe={"data-cmdk-dialog-header":""},he={"data-cmdk-dialog-body":""},ye={key:0,"data-cmdk-dialog-footer":""},R=e.defineComponent({__name:"CommandDialog",props:{items:{default:()=>[]},visible:{type:Boolean,default:!1},searchQuery:{},placeholder:{default:"Type a command or search..."},filter:{},autoFocus:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},loading:{type:Boolean,default:!1},label:{},shouldFilter:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},value:{}},emits:["update:visible","update:searchQuery","update:value","select"],setup(n,{emit:t}){const a=n,c=t,{state:d}=v({filter:a.filter,loading:a.loading,closeOnSelect:a.closeOnSelect,shouldFilter:a.shouldFilter,loop:a.loop,value:a.value},c),l=e.ref(null);e.watch(()=>a.items,o=>{d.items.value=o},{immediate:!0}),e.watch(()=>a.visible,o=>{d.visible.value=o},{immediate:!0}),e.watch(()=>a.searchQuery,o=>{o!==void 0&&(d.searchQuery.value=o)}),e.watch(d.searchQuery,o=>c("update:searchQuery",o)),e.watch(d.visible,async o=>{var u,i;c("update:visible",o),o&&(await e.nextTick(),(i=(u=l.value)==null?void 0:u.inputRef)==null||i.focus())});function m(o){o.target===o.currentTarget&&d.close()}function r(o){if(o.key==="Escape"&&(o.preventDefault(),d.close()),o.key==="Tab"){const i=o.currentTarget.querySelectorAll('input, button, [href], select, textarea, [tabindex]:not([tabindex="-1"])');if(i.length===0)return;const k=i[0],f=i[i.length-1];o.shiftKey?document.activeElement===k&&(o.preventDefault(),f.focus()):document.activeElement===f&&(o.preventDefault(),k.focus())}}return(o,u)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"cmdk-dialog"},{default:e.withCtx(()=>[e.unref(d).visible.value?(e.openBlock(),e.createElementBlock("div",{key:0,"data-cmdk-dialog":"",role:"dialog","aria-modal":"true","aria-label":a.label??"Command menu",onKeydown:r},[e.createElementVNode("div",{"data-cmdk-dialog-mask":"","aria-hidden":"true",onClick:m}),e.createElementVNode("div",fe,[e.createElementVNode("div",pe,[e.renderSlot(o.$slots,"header",{},()=>[e.createVNode($,{ref_key:"commandInputRef",ref:l,placeholder:n.placeholder,"auto-focus":n.autoFocus},null,8,["placeholder","auto-focus"])])]),e.createElementVNode("div",he,[e.renderSlot(o.$slots,"body",{},()=>[e.createVNode(F)])]),o.$slots.footer?(e.openBlock(),e.createElementBlock("div",ye,[e.renderSlot(o.$slots,"footer")])):e.createCommentVNode("",!0)])],40,me)):e.createCommentVNode("",!0)]),_:3})]))}}),ke={Menu:P,Dialog:R,Input:$,List:F,Group:L,Item:M,Empty:V,Separator:x,Loading:D};y.Command=ke,y.CommandDialog=R,y.CommandEmpty=V,y.CommandGroup=L,y.CommandInput=$,y.CommandItem=M,y.CommandList=F,y.CommandLoading=D,y.CommandMenu=P,y.CommandSeparator=x,y.useCommandMenu=K,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(k,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(k=typeof globalThis<"u"?globalThis:k||self,e(k.VueCmdk={},k.Vue))})(this,(function(k,e){"use strict";const v={"⌘":"metaKey","⌃":"ctrlKey","⌥":"altKey","⇧":"shiftKey"},U=/^([⌘⌃⌥⇧]+)(.+)$/;function z(a){if(!a)return null;const t=U.exec(a);if(!t)return{key:a.toLowerCase()};const[,n,d]=t,s={};for(const l of n){const u=v[l];u&&(s[u]=!0)}return{...s,key:d.toLowerCase()}}function H(a,t){return t?a.key.toLowerCase()===t.key&&!!a.metaKey==!!t.metaKey&&!!a.ctrlKey==!!t.ctrlKey&&!!a.altKey==!!t.altKey&&!!a.shiftKey==!!t.shiftKey:!1}const N="__ungrouped__";function Q(a,t){const n=typeof a=="function"?{filter:a}:a??{},{filter:d,shouldFilter:s=!0,loop:l=!0}=n,u=e.ref(!1),r=e.ref(""),o=e.ref(0),f=e.ref(),m=e.ref([]),_=()=>{u.value=!u.value},c=()=>{u.value=!0,o.value=0},C=()=>{u.value=!1,r.value=""};function g(i,h){if(!h.trim())return i;const p=h.toLowerCase();return i.filter(y=>{var b,G;return!!(y.forceMount||y.value.toLowerCase().includes(p)||(b=y.label)!=null&&b.toLowerCase().includes(p)||(G=y.keywords)!=null&&G.some(be=>be.toLowerCase().includes(p)))})}function I(i){const h=new Map;for(const y of i){const b=y.group||N;h.has(b)?h.get(b).push(y):h.set(b,[y])}const p=[];h.has(N)&&(p.push({heading:"",items:h.get(N)}),h.delete(N));for(const y of[...h.keys()].sort())p.push({heading:y,items:h.get(y)});return p}const S=e.computed(()=>{if(d){const i=d(m.value,r.value);if(i!==null)return i}return s?g(m.value,r.value):m.value}),ge=e.computed(()=>I(S.value));function _e(){const i=S.value.length;i!==0&&(l?o.value=(o.value+1)%i:o.value=Math.min(o.value+1,i-1))}function Ce(){const i=S.value.length;i!==0&&(l?o.value=(o.value-1+i)%i:o.value=Math.max(o.value-1,0))}function Be(){var h;const i=S.value[o.value];i&&!i.disabled&&(f.value=i.value,(h=i.onSelect)==null||h.call(i,i),t==null||t(i),C())}function j(i){var h;for(const p of m.value){if(p.disabled||!p.shortcut)continue;const y=z(p.shortcut);if(H(i,y)){i.preventDefault(),i.stopPropagation(),f.value=p.value,(h=p.onSelect)==null||h.call(p,p),t==null||t(p),C();return}}}let B=null;return e.watch(m,i=>{B&&(B(),B=null),i.some(p=>p.shortcut)&&typeof window<"u"&&(window.addEventListener("keydown",j),B=()=>window.removeEventListener("keydown",j))},{immediate:!0}),e.onUnmounted(()=>{B&&B()}),{visible:u,searchQuery:r,activeIndex:o,selectedValue:f,items:m,toggle:_,open:c,close:C,defaultFilter:g,groupItems:I,filteredItems:S,groupedItems:ge,selectNext:_e,selectPrev:Ce,selectCurrent:Be}}const E=Symbol("cmdk-state"),K=Symbol("cmdk-loading"),X=Symbol("cmdk-close-on-select"),$=Symbol("cmdk-select-handler"),O=Symbol("cmdk-item-index-map");function R(a,t,n){const{filter:d,loading:s=!1,closeOnSelect:l=!0,shouldFilter:u=!0,loop:r=!0}=a,f=Q({filter:d,shouldFilter:u,loop:r},c=>{t("select",c),t("update:value",c.value),l&&f.close()});e.watch(()=>a.value,c=>{c!==void 0&&(f.selectedValue.value=c)},{immediate:!0}),e.provide(E,f),e.provide(K,()=>s),e.provide(X,()=>l),e.provide($,c=>{t("select",c),t("update:value",c.value),l&&f.close()});const m=e.computed(()=>{const c=new Map;return f.filteredItems.value.forEach((C,g)=>c.set(C.value,g)),c});e.provide(O,()=>m.value);function _(c){t("select",c),t("update:value",c.value),l&&f.close()}return{state:f,handleSelect:_}}const Y=["aria-expanded","aria-label"],P=e.defineComponent({__name:"CommandMenu",props:{visible:{type:Boolean,default:!1},searchQuery:{},placeholder:{default:"Type a command or search..."},filter:{},autoFocus:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},loading:{type:Boolean},label:{},shouldFilter:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},value:{}},emits:["update:visible","update:searchQuery","update:value","select"],setup(a,{expose:t,emit:n}){const d=a,s=n,{state:l,handleSelect:u}=R({filter:d.filter,loading:d.loading,closeOnSelect:d.closeOnSelect,shouldFilter:d.shouldFilter,loop:d.loop,value:d.value},s);return e.watch(()=>d.visible,r=>{r!==void 0&&(l.visible.value=r)},{immediate:!0}),e.watch(l.visible,r=>s("update:visible",r)),e.watch(()=>d.searchQuery,r=>{r!==void 0&&(l.searchQuery.value=r)}),e.watch(l.searchQuery,r=>s("update:searchQuery",r)),t({open:l.open,close:l.close,toggle:l.toggle,searchQuery:l.searchQuery,items:l.items,filteredItems:l.filteredItems}),(r,o)=>(e.openBlock(),e.createElementBlock("div",{"data-cmdk-root":"",role:"combobox","aria-expanded":e.unref(l).visible.value,"aria-label":a.label??"Command menu","aria-haspopup":"listbox"},[e.renderSlot(r.$slots,"default",{items:e.unref(l).items,filteredItems:e.unref(l).filteredItems,searchQuery:e.unref(l).searchQuery,selectNext:e.unref(l).selectNext,selectPrev:e.unref(l).selectPrev,selectCurrent:e.unref(l).selectCurrent,handleSelect:e.unref(u)})],8,Y))}});function w(a,t){const n=e.inject(a);if(n==null)throw new Error(`[vue-cmdk] <${t}> must be used inside <CommandMenu> or <CommandDialog>.`);return n}const q=["value","placeholder","aria-activedescendant","autofocus"],D=e.defineComponent({__name:"CommandInput",props:{placeholder:{default:"Type a command or search..."},autoFocus:{type:Boolean,default:!0}},setup(a,{expose:t}){const n=w(E,"CommandInput"),d=e.inject($,()=>{}),s=e.ref(null);t({inputRef:s});const l=e.computed(()=>{const o=n.filteredItems.value[n.activeIndex.value];return o?`cmdk-item-${o.value}`:void 0});function u(o){const f=o.target;f&&(n.searchQuery.value=f.value,n.activeIndex.value=0)}function r(o){var f;if(o.key==="ArrowDown")o.preventDefault(),n.selectNext();else if(o.key==="ArrowUp")o.preventDefault(),n.selectPrev();else if(o.key==="Enter"){o.preventDefault();const m=n.filteredItems.value[n.activeIndex.value];m&&!m.disabled&&((f=m.onSelect)==null||f.call(m,m),d(m))}}return(o,f)=>(e.openBlock(),e.createElementBlock("input",{ref_key:"inputRef",ref:s,"data-cmdk-input":"",value:e.unref(n).searchQuery.value,placeholder:a.placeholder,role:"searchbox","aria-activedescendant":l.value,autocomplete:"off",autocorrect:"off",spellcheck:"false",autofocus:a.autoFocus,onInput:u,onKeydown:r},null,40,q))}}),J={key:0,"data-cmdk-empty":""},L=e.defineComponent({__name:"CommandEmpty",setup(a){const t=w(E,"CommandEmpty");return(n,d)=>e.unref(t).searchQuery.value&&e.unref(t).filteredItems.value.length===0?(e.openBlock(),e.createElementBlock("div",J,[e.renderSlot(n.$slots,"default",{},()=>[d[0]||(d[0]=e.createElementVNode("span",null,"No results found.",-1))])])):e.createCommentVNode("",!0)}}),W={key:0,"data-cmdk-loading":""},V=e.defineComponent({__name:"CommandLoading",props:{loading:{type:Boolean}},setup(a){return(t,n)=>a.loading?(e.openBlock(),e.createElementBlock("div",W,[e.renderSlot(t.$slots,"default",{},()=>[n[0]||(n[0]=e.createElementVNode("span",null,"Loading...",-1))])])):e.createCommentVNode("",!0)}}),Z={"data-cmdk-group":"",role:"group"},ee={key:0,"data-cmdk-group-heading":"",role:"presentation"},te={"data-cmdk-group-items":"",role:"group"},M=e.defineComponent({__name:"CommandGroup",props:{heading:{},forceMount:{type:Boolean}},setup(a){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Z,[a.heading?(e.openBlock(),e.createElementBlock("div",ee,e.toDisplayString(a.heading),1)):e.createCommentVNode("",!0),e.createElementVNode("div",te,[e.renderSlot(t.$slots,"default")])]))}});function oe(a,t){if(!t.trim())return[{text:a,highlighted:!1}];const n=a.toLowerCase(),d=t.toLowerCase(),s=[];let l=0;for(;l<a.length;){const u=n.indexOf(d,l);if(u===-1){s.push({text:a.slice(l),highlighted:!1});break}u>l&&s.push({text:a.slice(l,u),highlighted:!1}),s.push({text:a.slice(u,u+t.length),highlighted:!0}),l=u+t.length}return s}const ae=["id","aria-selected","aria-disabled","data-value"],ne={key:0,"data-cmdk-item-icon":""},le={"data-cmdk-item-label":""},re={key:0},ce={key:1},se={key:1,"data-cmdk-item-shortcut":""},x=e.defineComponent({__name:"CommandItem",props:{value:{},label:{default:void 0},keywords:{default:void 0},shortcut:{default:void 0},disabled:{type:Boolean,default:!1},forceMount:{type:Boolean,default:!1},icon:{type:[Object,Function],default:void 0},onSelect:{type:Function,default:void 0}},setup(a){const t=a,n=w(E,"CommandItem"),d=e.inject(O,()=>new Map),s=e.computed(()=>`cmdk-item-${t.value}`),l=e.computed(()=>({value:t.value,label:t.label,keywords:t.keywords,shortcut:t.shortcut,disabled:t.disabled,forceMount:t.forceMount,icon:t.icon,onSelect:t.onSelect})),u=e.computed(()=>t.icon?e.isVNode(t.icon)?()=>t.icon:t.icon:null),r=e.computed(()=>{const c=n.filteredItems.value[n.activeIndex.value];return(c==null?void 0:c.value)===t.value}),o=e.inject($,()=>{}),f=e.computed(()=>t.label||t.value),m=e.computed(()=>{const c=n.searchQuery.value;return c.trim()?oe(f.value,c):null});function _(){var c;t.disabled||((c=t.onSelect)==null||c.call(t,l.value),o(l.value))}return(c,C)=>(e.openBlock(),e.createElementBlock("div",{id:s.value,"data-cmdk-item":"",role:"option","aria-selected":r.value,"aria-disabled":a.disabled,"data-value":a.value,class:e.normalizeClass({active:r.value,disabled:a.disabled}),onClick:_,onPointerenter:C[0]||(C[0]=()=>{const g=e.unref(d)().get(a.value);g!==void 0&&(e.unref(n).activeIndex.value=g)})},[e.renderSlot(c.$slots,"default",{item:l.value,active:r.value},()=>[u.value?(e.openBlock(),e.createElementBlock("span",ne,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(u.value)))])):e.createCommentVNode("",!0),e.createElementVNode("span",le,[m.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(m.value,(g,I)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:I},[g.highlighted?(e.openBlock(),e.createElementBlock("mark",re,e.toDisplayString(g.text),1)):(e.openBlock(),e.createElementBlock("span",ce,e.toDisplayString(g.text),1))],64))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(f.value),1)],64))]),a.shortcut?(e.openBlock(),e.createElementBlock("span",se,e.toDisplayString(a.shortcut),1)):e.createCommentVNode("",!0)])],42,ae))}}),ie={"data-cmdk-separator":"",role:"separator"},F=e.defineComponent({__name:"CommandSeparator",props:{alwaysRender:{type:Boolean}},setup(a){return(t,n)=>(e.openBlock(),e.createElementBlock("div",ie))}}),de={"data-cmdk-list":"",role:"listbox"},ue={"aria-live":"polite","aria-atomic":"true",class:"sr-only"},T=e.defineComponent({__name:"CommandList",props:{alwaysRenderSeparator:{type:Boolean}},setup(a){const t=w(E,"CommandList"),n=w(K,"CommandList");return(d,s)=>(e.openBlock(),e.createElementBlock("div",de,[e.createElementVNode("div",ue,[e.unref(t).searchQuery.value&&e.unref(t).filteredItems.value.length===0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode("No results found")],64)):e.unref(n)()?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode("Loading")],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(e.unref(t).filteredItems.value.length)+" items",1)],64))]),e.createVNode(L),e.createVNode(V,{loading:e.unref(n)()},null,8,["loading"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(t).groupedItems.value,(l,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l.heading||"__ungrouped__"},[e.createVNode(M,{heading:l.heading},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.items,r=>(e.openBlock(),e.createBlock(x,{key:r.value,value:r.value,label:r.label,keywords:r.keywords,shortcut:r.shortcut,disabled:r.disabled,icon:r.icon,"on-select":r.onSelect},null,8,["value","label","keywords","shortcut","disabled","icon","on-select"]))),128))]),_:2},1032,["heading"]),a.alwaysRenderSeparator||u!==e.unref(t).groupedItems.value.length-1?(e.openBlock(),e.createBlock(F,{key:0})):e.createCommentVNode("",!0)],64))),128))]))}}),me=["aria-label"],fe={"data-cmdk-dialog-wrapper":""},pe={"data-cmdk-dialog-header":""},he={"data-cmdk-dialog-body":""},ke={key:0,"data-cmdk-dialog-footer":""},A=e.defineComponent({__name:"CommandDialog",props:{items:{default:()=>[]},container:{},visible:{type:Boolean,default:!1},searchQuery:{},placeholder:{default:"Type a command or search..."},filter:{},autoFocus:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},loading:{type:Boolean,default:!1},label:{},shouldFilter:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},value:{}},emits:["update:visible","update:searchQuery","update:value","select"],setup(a,{emit:t}){const n=a,d=t,{state:s}=R({filter:n.filter,loading:n.loading,closeOnSelect:n.closeOnSelect,shouldFilter:n.shouldFilter,loop:n.loop,value:n.value},d),l=e.ref(null);e.watch(()=>n.items,o=>{s.items.value=o},{immediate:!0}),e.watch(()=>n.visible,o=>{s.visible.value=o},{immediate:!0}),e.watch(()=>n.searchQuery,o=>{o!==void 0&&(s.searchQuery.value=o)}),e.watch(s.searchQuery,o=>d("update:searchQuery",o)),e.watch(s.visible,async o=>{var f,m;d("update:visible",o),o&&(await e.nextTick(),(m=(f=l.value)==null?void 0:f.inputRef)==null||m.focus())});function u(o){o.target===o.currentTarget&&s.close()}function r(o){if(o.key==="Escape"&&(o.preventDefault(),s.close()),o.key==="Tab"){const m=o.currentTarget.querySelectorAll('input, button, [href], select, textarea, [tabindex]:not([tabindex="-1"])');if(m.length===0)return;const _=m[0],c=m[m.length-1];o.shiftKey?document.activeElement===_&&(o.preventDefault(),c.focus()):document.activeElement===c&&(o.preventDefault(),_.focus())}}return(o,f)=>(e.openBlock(),e.createBlock(e.Teleport,{to:a.container??"body"},[e.createVNode(e.Transition,{name:"cmdk-dialog"},{default:e.withCtx(()=>[e.unref(s).visible.value?(e.openBlock(),e.createElementBlock("div",{key:0,"data-cmdk-dialog":"",role:"dialog","aria-modal":"true","aria-label":n.label??"Command menu",onKeydown:r},[e.createElementVNode("div",{"data-cmdk-dialog-mask":"","aria-hidden":"true",onClick:u}),e.createElementVNode("div",fe,[e.createElementVNode("div",pe,[e.renderSlot(o.$slots,"header",{},()=>[e.createVNode(D,{ref_key:"commandInputRef",ref:l,placeholder:a.placeholder,"auto-focus":a.autoFocus},null,8,["placeholder","auto-focus"])])]),e.createElementVNode("div",he,[e.renderSlot(o.$slots,"body",{},()=>[e.createVNode(T)])]),o.$slots.footer?(e.openBlock(),e.createElementBlock("div",ke,[e.renderSlot(o.$slots,"footer")])):e.createCommentVNode("",!0)])],40,me)):e.createCommentVNode("",!0)]),_:3})],8,["to"]))}}),ye={Menu:P,Dialog:A,Input:D,List:T,Group:M,Item:x,Empty:L,Separator:F,Loading:V};k.Command=ye,k.CommandDialog=A,k.CommandEmpty=L,k.CommandGroup=M,k.CommandInput=D,k.CommandItem=x,k.CommandList=T,k.CommandLoading=V,k.CommandMenu=P,k.CommandSeparator=F,k.useCommandMenu=Q,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})}));
|