ivt
Version:
Ivt Components Library
3 lines (2 loc) • 15 kB
JavaScript
import{c as e}from"./utils-C-nkZ_Ir.mjs";import{R as t,P as r,O as n,a as l}from"./index-D1EuiH1M.mjs";import*as a from"react";import o from"react";import{P as u}from"./index-DiPp8h7C.mjs";import{u as i}from"./index-UQBMY2z8.mjs";import{c}from"./index-C-j8pU3U.mjs";import{D as d,e as s,h as m,c as f,b as p}from"./dialog-Dxotsves.mjs";import{c as v}from"./createLucideIcon-D1jKv6AP.mjs";const h=v("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);var g=.999,b=/[\\\/_+.#"@\[\(\{&]/,E=/[\\\/_+.#"@\[\(\{&]/g,x=/[\s-]/,k=/[\s-]/g;function w(e,t,r,n,l,a,o){if(a===t.length)return l===e.length?1:.99;var u=`${l},${a}`;if(void 0!==o[u])return o[u];for(var i,c,d,s,m=n.charAt(a),f=r.indexOf(m,l),p=0;f>=0;)(i=w(e,t,r,n,f+1,a+1,o))>p&&(f===l?i*=1:b.test(e.charAt(f-1))?(i*=.8,(d=e.slice(l,f-1).match(E))&&l>0&&(i*=Math.pow(g,d.length))):x.test(e.charAt(f-1))?(i*=.9,(s=e.slice(l,f-1).match(k))&&l>0&&(i*=Math.pow(g,s.length))):(i*=.17,l>0&&(i*=Math.pow(g,f-l))),e.charAt(f)!==t.charAt(a)&&(i*=.9999)),(i<.1&&r.charAt(f-1)===n.charAt(a+1)||n.charAt(a+1)===n.charAt(a)&&r.charAt(f-1)!==n.charAt(a))&&(.1*(c=w(e,t,r,n,f+1,a+2,o))>i&&(i=.1*c)),i>p&&(p=i),f=r.indexOf(m,f+1);return o[u]=p,p}function y(e){return e.toLowerCase().replace(k," ")}function S(e,t,r){return w(e=r&&r.length>0?""+(e+" "+r.join(" ")):e,t,y(e),y(t),0,0,{})}var I='[cmdk-group=""]',C='[cmdk-group-items=""]',A='[cmdk-item=""]',_=`${A}:not([aria-disabled="true"])`,R="cmdk-item-select",N="data-value",M=(e,t,r)=>S(e,t,r),j=a.createContext(void 0),P=()=>a.useContext(j),D=a.createContext(void 0),q=()=>a.useContext(D),L=a.createContext(void 0),$=a.forwardRef((e,t)=>{let r=X(()=>{var t,r;return{search:"",value:null!=(r=null!=(t=e.value)?t:e.defaultValue)?r:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),n=X(()=>new Set),l=X(()=>new Map),o=X(()=>new Map),c=X(()=>new Set),d=Q(e),{label:s,children:m,value:f,onValueChange:p,filter:v,shouldFilter:h,loop:g,disablePointerSelection:b=!1,vimBindings:E=!0,...x}=e,k=i(),w=i(),y=i(),S=a.useRef(null),P=ee();T(()=>{if(void 0!==f){let e=f.trim();r.current.value=e,q.emit()}},[f]),T(()=>{P(6,V)},[]);let q=a.useMemo(()=>({subscribe:e=>(c.current.add(e),()=>c.current.delete(e)),snapshot:()=>r.current,setState:(e,t,n)=>{var l,a,o,u;if(!Object.is(r.current[e],t)){if(r.current[e]=t,"search"===e)O(),F(),P(1,K);else if("value"===e){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let e=document.getElementById(y);e?e.focus():null==(l=document.getElementById(k))||l.focus()}if(P(7,()=>{var e;r.current.selectedItemId=null==(e=z())?void 0:e.id,q.emit()}),n||P(5,V),void 0!==(null==(a=d.current)?void 0:a.value)){let e=null!=t?t:"";return void(null==(u=(o=d.current).onValueChange)||u.call(o,e))}}q.emit()}},emit:()=>{c.current.forEach(e=>e())}}),[]),L=a.useMemo(()=>({value:(e,t,n)=>{var l;t!==(null==(l=o.current.get(e))?void 0:l.value)&&(o.current.set(e,{value:t,keywords:n}),r.current.filtered.items.set(e,$(t,n)),P(2,()=>{F(),q.emit()}))},item:(e,t)=>(n.current.add(e),t&&(l.current.has(t)?l.current.get(t).add(e):l.current.set(t,new Set([e]))),P(3,()=>{O(),F(),r.current.value||K(),q.emit()}),()=>{o.current.delete(e),n.current.delete(e),r.current.filtered.items.delete(e);let t=z();P(4,()=>{O(),(null==t?void 0:t.getAttribute("id"))===e&&K(),q.emit()})}),group:e=>(l.current.has(e)||l.current.set(e,new Set),()=>{o.current.delete(e),l.current.delete(e)}),filter:()=>d.current.shouldFilter,label:s||e["aria-label"],getDisablePointerSelection:()=>d.current.disablePointerSelection,listId:k,inputId:y,labelId:w,listInnerRef:S}),[]);function $(e,t){var n,l;let a=null!=(l=null==(n=d.current)?void 0:n.filter)?l:M;return e?a(e,r.current.search,t):0}function F(){if(!r.current.search||!1===d.current.shouldFilter)return;let e=r.current.filtered.items,t=[];r.current.filtered.groups.forEach(r=>{let n=l.current.get(r),a=0;n.forEach(t=>{let r=e.get(t);a=Math.max(r,a)}),t.push([r,a])});let n=S.current;B().sort((t,r)=>{var n,l;let a=t.getAttribute("id"),o=r.getAttribute("id");return(null!=(n=e.get(o))?n:0)-(null!=(l=e.get(a))?l:0)}).forEach(e=>{let t=e.closest(C);t?t.appendChild(e.parentElement===t?e:e.closest(`${C} > *`)):n.appendChild(e.parentElement===n?e:e.closest(`${C} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{var t;let r=null==(t=S.current)?void 0:t.querySelector(`${I}[${N}="${encodeURIComponent(e[0])}"]`);null==r||r.parentElement.appendChild(r)})}function K(){let e=B().find(e=>"true"!==e.getAttribute("aria-disabled")),t=null==e?void 0:e.getAttribute(N);q.setState("value",t||void 0)}function O(){var e,t,a,u;if(!r.current.search||!1===d.current.shouldFilter)return void(r.current.filtered.count=n.current.size);r.current.filtered.groups=new Set;let i=0;for(let l of n.current){let n=$(null!=(t=null==(e=o.current.get(l))?void 0:e.value)?t:"",null!=(u=null==(a=o.current.get(l))?void 0:a.keywords)?u:[]);r.current.filtered.items.set(l,n),n>0&&i++}for(let[e,t]of l.current)for(let n of t)if(r.current.filtered.items.get(n)>0){r.current.filtered.groups.add(e);break}r.current.filtered.count=i}function V(){var e,t,r;let n=z();n&&((null==(e=n.parentElement)?void 0:e.firstChild)===n&&(null==(r=null==(t=n.closest(I))?void 0:t.querySelector('[cmdk-group-heading=""]'))||r.scrollIntoView({block:"nearest"})),n.scrollIntoView({block:"nearest"}))}function z(){var e;return null==(e=S.current)?void 0:e.querySelector(`${A}[aria-selected="true"]`)}function B(){var e;return Array.from((null==(e=S.current)?void 0:e.querySelectorAll(_))||[])}function G(e){let t=B()[e];t&&q.setState("value",t.getAttribute(N))}function H(e){var t;let r=z(),n=B(),l=n.findIndex(e=>e===r),a=n[l+e];null!=(t=d.current)&&t.loop&&(a=l+e<0?n[n.length-1]:l+e===n.length?n[0]:n[l+e]),a&&q.setState("value",a.getAttribute(N))}function U(e){let t,r=z(),n=null==r?void 0:r.closest(I);for(;n&&!t;)n=e>0?W(n,I):J(n,I),t=null==n?void 0:n.querySelector(_);t?q.setState("value",t.getAttribute(N)):H(e)}let Y=()=>G(B().length-1),Z=e=>{e.preventDefault(),e.metaKey?Y():e.altKey?U(1):H(1)},ne=e=>{e.preventDefault(),e.metaKey?G(0):e.altKey?U(-1):H(-1)};return a.createElement(u.div,{ref:t,tabIndex:-1,...x,"cmdk-root":"",onKeyDown:e=>{var t;null==(t=x.onKeyDown)||t.call(x,e);let r=e.nativeEvent.isComposing||229===e.keyCode;if(!e.defaultPrevented&&!r)switch(e.key){case"n":case"j":E&&e.ctrlKey&&Z(e);break;case"ArrowDown":Z(e);break;case"p":case"k":E&&e.ctrlKey&&ne(e);break;case"ArrowUp":ne(e);break;case"Home":e.preventDefault(),G(0);break;case"End":e.preventDefault(),Y();break;case"Enter":{e.preventDefault();let t=z();if(t){let e=new Event(R);t.dispatchEvent(e)}}}}},a.createElement("label",{"cmdk-label":"",htmlFor:L.inputId,id:L.labelId,style:re},s),te(e,e=>a.createElement(D.Provider,{value:q},a.createElement(j.Provider,{value:L},e))))}),F=a.forwardRef((e,t)=>{var r,n;let l=i(),o=a.useRef(null),d=a.useContext(L),s=P(),m=Q(e),f=null!=(n=null==(r=m.current)?void 0:r.forceMount)?n:null==d?void 0:d.forceMount;T(()=>{if(!f)return s.item(l,null==d?void 0:d.id)},[f]);let p=Z(l,o,[e.value,e.children,o],e.keywords),v=q(),h=Y(e=>e.value&&e.value===p.current),g=Y(e=>!(!f&&!1!==s.filter())||(!e.search||e.filtered.items.get(l)>0));function b(){var e,t;E(),null==(t=(e=m.current).onSelect)||t.call(e,p.current)}function E(){v.setState("value",p.current,!0)}if(a.useEffect(()=>{let t=o.current;if(t&&!e.disabled)return t.addEventListener(R,b),()=>t.removeEventListener(R,b)},[g,e.onSelect,e.disabled]),!g)return null;let{disabled:x,value:k,onSelect:w,forceMount:y,keywords:S,...I}=e;return a.createElement(u.div,{ref:c(o,t),...I,id:l,"cmdk-item":"",role:"option","aria-disabled":!!x,"aria-selected":!!h,"data-disabled":!!x,"data-selected":!!h,onPointerMove:x||s.getDisablePointerSelection()?void 0:E,onClick:x?void 0:b},e.children)}),K=a.forwardRef((e,t)=>{let{heading:r,children:n,forceMount:l,...o}=e,d=i(),s=a.useRef(null),m=a.useRef(null),f=i(),p=P(),v=Y(e=>!(!l&&!1!==p.filter())||(!e.search||e.filtered.groups.has(d)));T(()=>p.group(d),[]),Z(d,s,[e.value,e.heading,m]);let h=a.useMemo(()=>({id:d,forceMount:l}),[l]);return a.createElement(u.div,{ref:c(s,t),...o,"cmdk-group":"",role:"presentation",hidden:!v||void 0},r&&a.createElement("div",{ref:m,"cmdk-group-heading":"","aria-hidden":!0,id:f},r),te(e,e=>a.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?f:void 0},a.createElement(L.Provider,{value:h},e))))}),O=a.forwardRef((e,t)=>{let{alwaysRender:r,...n}=e,l=a.useRef(null),o=Y(e=>!e.search);return r||o?a.createElement(u.div,{ref:c(l,t),...n,"cmdk-separator":"",role:"separator"}):null}),V=a.forwardRef((e,t)=>{let{onValueChange:r,...n}=e,l=null!=e.value,o=q(),i=Y(e=>e.search),c=Y(e=>e.selectedItemId),d=P();return a.useEffect(()=>{null!=e.value&&o.setState("search",e.value)},[e.value]),a.createElement(u.input,{ref:t,...n,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":d.listId,"aria-labelledby":d.labelId,"aria-activedescendant":c,id:d.inputId,type:"text",value:l?e.value:i,onChange:e=>{l||o.setState("search",e.target.value),null==r||r(e.target.value)}})}),z=a.forwardRef((e,t)=>{let{children:r,label:n="Suggestions",...l}=e,o=a.useRef(null),i=a.useRef(null),d=Y(e=>e.selectedItemId),s=P();return a.useEffect(()=>{if(i.current&&o.current){let e,t=i.current,r=o.current,n=new ResizeObserver(()=>{e=requestAnimationFrame(()=>{let e=t.offsetHeight;r.style.setProperty("--cmdk-list-height",e.toFixed(1)+"px")})});return n.observe(t),()=>{cancelAnimationFrame(e),n.unobserve(t)}}},[]),a.createElement(u.div,{ref:c(o,t),...l,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":d,"aria-label":n,id:s.listId},te(e,e=>a.createElement("div",{ref:c(i,s.listInnerRef),"cmdk-list-sizer":""},e)))}),B=a.forwardRef((e,o)=>{let{open:u,onOpenChange:i,overlayClassName:c,contentClassName:d,container:s,...m}=e;return a.createElement(t,{open:u,onOpenChange:i},a.createElement(r,{container:s},a.createElement(n,{"cmdk-overlay":"",className:c}),a.createElement(l,{"aria-label":e.label,"cmdk-dialog":"",className:d},a.createElement($,{ref:o,...m}))))}),G=a.forwardRef((e,t)=>Y(e=>0===e.filtered.count)?a.createElement(u.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),H=a.forwardRef((e,t)=>{let{progress:r,children:n,label:l="Loading...",...o}=e;return a.createElement(u.div,{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,"aria-label":l},te(e,e=>a.createElement("div",{"aria-hidden":!0},e)))}),U=Object.assign($,{List:z,Item:F,Input:V,Group:K,Separator:O,Dialog:B,Empty:G,Loading:H});function W(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;r=r.nextElementSibling}}function J(e,t){let r=e.previousElementSibling;for(;r;){if(r.matches(t))return r;r=r.previousElementSibling}}function Q(e){let t=a.useRef(e);return T(()=>{t.current=e}),t}var T="undefined"==typeof window?a.useEffect:a.useLayoutEffect;function X(e){let t=a.useRef();return void 0===t.current&&(t.current=e()),t}function Y(e){let t=q(),r=()=>e(t.snapshot());return a.useSyncExternalStore(t.subscribe,r,r)}function Z(e,t,r,n=[]){let l=a.useRef(),o=P();return T(()=>{var a;let u=(()=>{var e;for(let t of r){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():l.current}})(),i=n.map(e=>e.trim());o.value(e,u,i),null==(a=t.current)||a.setAttribute(N,u),l.current=u}),l}var ee=()=>{let[e,t]=a.useState(),r=X(()=>new Map);return T(()=>{r.current.forEach(e=>e()),r.current=new Map},[e]),(e,n)=>{r.current.set(e,n),t({})}};function te({asChild:e,children:t},r){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},r(t.props.children)):r(t)}var re={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function ne({className:t,...r}){return o.createElement(U,{"data-slot":"command",className:e("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",t),...r})}function le({title:e="Command Palette",description:t="Search for a command to run...",children:r,...n}){return o.createElement(d,n,o.createElement(s,{className:"sr-only"},o.createElement(m,null,e),o.createElement(f,null,t)),o.createElement(p,{className:"overflow-hidden p-0"},o.createElement(ne,{className:"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5"},r)))}function ae({className:t,...r}){return o.createElement("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3"},o.createElement(h,{className:"size-4 shrink-0 opacity-50"}),o.createElement(U.Input,{"data-slot":"command-input",className:e("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",t),...r}))}function oe({className:t,...r}){return o.createElement(U.List,{"data-slot":"command-list",className:e("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",t),...r})}function ue({...e}){return o.createElement(U.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...e})}function ie({className:t,...r}){return o.createElement(U.Group,{"data-slot":"command-group",className:e("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",t),...r})}function ce({className:t,...r}){return o.createElement(U.Separator,{"data-slot":"command-separator",className:e("bg-border -mx-1 h-px",t),...r})}function de({className:t,...r}){return o.createElement(U.Item,{"data-slot":"command-item",className:e("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...r})}function se({className:t,...r}){return o.createElement("span",{"data-slot":"command-shortcut",className:e("text-muted-foreground ml-auto text-xs tracking-widest",t),...r})}export{ne as C,h as S,le as a,ae as b,oe as c,ue as d,ie as e,de as f,se as g,ce as h};
//# sourceMappingURL=command-uwBExuyh.mjs.map