@lobehub/cli-ui
Version:
2 lines (1 loc) • 25.7 kB
JavaScript
var ye=Object.defineProperty;var s=(e,r)=>ye(e,"name",{value:r,configurable:!0});import{consola as q}from"consola";import k from"node:process";import{jsx as u,jsxs as V,Fragment as oe}from"react/jsx-runtime";import{Box as m,Text as v,useInput as F,measureElement as Ve,useApp as we,render as Se}from"ink";import ne,{createContext as E,useContext as U,useMemo as w,useReducer as N,useCallback as h,useEffect as M,useState as L,isValidElement as te,memo as A,useRef as Ce,createElement as le}from"react";import G from"arr-rotate";import Te from"fast-deep-equal";import I from"figures";import Me from"deepmerge";import x from"chalk";import{isDeepStrictEqual as z}from"node:util";import Le from"cli-spinners";var Ae={error:s((e,r)=>{q.error(e),r&&k.exit(1)},"error"),info:s((e,r)=>{q.info(e),r&&k.exit(0)},"info"),success:s((e,r)=>{q.success(e),r&&k.exit(0)},"success"),warn:s((e,r)=>{q.warn(e),r&&k.exit(0)},"warn")};const ce={error:"red",info:"blue",success:"green",warning:"yellow"},Fe={config({variant:e}){let r;return e==="info"&&(r=I.info),e==="success"&&(r=I.tick),e==="error"&&(r=I.cross),e==="warning"&&(r=I.warning),{icon:r}},styles:{container:s(({variant:e})=>({borderColor:ce[e],borderStyle:"round",flexGrow:1,gap:1,paddingX:1}),"container"),content:s(()=>({flexDirection:"column",flexGrow:1,flexShrink:1,gap:1,minWidth:0}),"content"),icon:s(({variant:e})=>({color:ce[e]}),"icon"),iconContainer:s(()=>({flexShrink:0}),"iconContainer"),message:s(()=>({}),"message"),title:s(()=>({bold:!0}),"title")}},Pe={styles:{container:s(({color:e})=>({backgroundColor:e}),"container"),label:s(()=>({color:"black"}),"label")}},$e={styles:{input:s(({isFocused:e})=>({dimColor:!e}),"input")}},Be={styles:{value:s(()=>({}),"value")}},Re={styles:{container:s(()=>({flexDirection:"column"}),"container"),focusIndicator:s(()=>({color:"blue"}),"focusIndicator"),highlightedText:s(()=>({bold:!0}),"highlightedText"),label({isFocused:e,isSelected:r}){let o;return r&&(o="green"),e&&(o="blue"),{color:o}},option:s(({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),"option"),selectedIndicator:s(()=>({color:"green"}),"selectedIndicator")}},Ee={styles:{content:s(()=>({flexDirection:"column"}),"content"),list:s(()=>({flexDirection:"column"}),"list"),listItem:s(()=>({gap:1}),"listItem"),marker:s(()=>({dimColor:!0}),"marker")}},Ue={styles:{value:s(()=>({}),"value")}},Ne={config:s(()=>({completedCharacter:I.square,remainingCharacter:I.squareLightShade}),"config"),styles:{completed:s(()=>({color:"magenta"}),"completed"),container:s(()=>({flexGrow:1,minWidth:0}),"container"),remaining:s(()=>({dimColor:!0}),"remaining")}},We={styles:{container:s(()=>({flexDirection:"column"}),"container"),focusIndicator:s(()=>({color:"blue"}),"focusIndicator"),highlightedText:s(()=>({bold:!0}),"highlightedText"),label({isFocused:e,isSelected:r}){let o;return r&&(o="green"),e&&(o="blue"),{color:o}},option:s(({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),"option"),selectedIndicator:s(()=>({color:"green"}),"selectedIndicator")}},je={styles:{container:s(()=>({gap:1}),"container"),frame:s(()=>({color:"blue"}),"frame"),label:s(()=>({}),"label")}},De={error:"red",info:"blue",success:"green",warning:"yellow"},qe={error:I.cross,info:I.info,success:I.tick,warning:I.warning},ke={config:s(({variant:e})=>({icon:qe[e]}),"config"),styles:{container:s(()=>({gap:1}),"container"),icon:s(({variant:e})=>({color:De[e]}),"icon"),iconContainer:s(()=>({flexShrink:0}),"iconContainer"),message:s(()=>({}),"message")}},Ge={styles:{value:s(()=>({}),"value")}},ze={config:s(()=>({marker:I.line}),"config"),styles:{content:s(()=>({flexDirection:"column"}),"content"),list:s(()=>({flexDirection:"column"}),"list"),listItem:s(()=>({gap:1}),"listItem"),marker:s(()=>({dimColor:!0}),"marker")}},_={components:{Alert:Fe,Badge:Pe,ConfirmInput:$e,EmailInput:Be,MultiSelect:Re,OrderedList:Ee,PasswordInput:Ue,ProgressBar:Ne,Select:We,Spinner:je,StatusMessage:ke,TextInput:Ge,UnorderedList:ze}},Q=E(_);function _e({children:e,theme:r}){return u(Q.Provider,{value:r,children:e})}s(_e,"ThemeProvider$1");const se=s((e,r)=>Me(e,r),"extendTheme"),O=s(e=>U(Q).components[e],"useComponentTheme");function Qe({children:e,variant:r,title:o}){const{styles:n,config:c}=O("Alert");return V(m,{...n.container({variant:r}),children:[u(m,{...n.iconContainer(),children:u(v,{...n.icon({variant:r}),children:c({variant:r}).icon})}),V(m,{...n.content(),children:[o&&u(v,{...n.title(),children:o}),u(v,{...n.message(),children:e})]})]})}s(Qe,"Alert");function X({children:e,color:r="magenta"}){const{styles:o}=O("Badge");let n=e;return typeof e=="string"&&(n=e.toUpperCase()),V(v,{...o.container({color:r}),children:[" ",u(v,{...o.label(),children:n})," "]})}s(X,"Badge");function Xe({isDisabled:e=!1,defaultChoice:r="confirm",submitOnEnter:o=!0,onConfirm:n,onCancel:c}){F((t,i)=>{t.toLowerCase()==="y"&&n(),t.toLowerCase()==="n"&&c(),i.return&&o&&(r==="confirm"?n():c())},{isActive:!e});const{styles:l}=O("ConfirmInput");return u(v,{...l.input({isFocused:!e}),children:r==="confirm"?"Y/n":"y/N"})}s(Xe,"ConfirmInput");const Y=x.inverse(" "),Ye=s(({isDisabled:e=!1,state:r,placeholder:o=""})=>{const n=w(()=>e?o?x.dim(o):"":o&&o.length>0?x.inverse(o[0])+x.dim(o.slice(1)):Y,[e,o]),c=w(()=>{if(e)return r.value;let l=0,t=r.value.length>0?"":Y;for(const i of r.value)t+=l===r.cursorOffset?x.inverse(i):i,l++;return r.suggestion?(r.cursorOffset===r.value.length?t+=x.inverse(r.suggestion[0])+x.dim(r.suggestion.slice(1)):t+=x.dim(r.suggestion),t):(r.value.length>0&&r.cursorOffset===r.value.length&&(t+=Y),t)},[e,r.value,r.cursorOffset,r.suggestion]);return F((l,t)=>{if(!(t.upArrow||t.downArrow||t.ctrl&&l==="c"||t.tab||t.shift&&t.tab)){if(t.return){r.submit();return}t.leftArrow?r.moveCursorLeft():t.rightArrow?r.moveCursorRight():t.backspace||t.delete?r.delete():r.insert(l)}},{isActive:!e}),{inputValue:r.value.length>0?c:n}},"useEmailInput"),Je=s((e,r)=>{switch(r.type){case"move-cursor-left":return{...e,cursorOffset:Math.max(0,e.cursorOffset-1)};case"move-cursor-right":return{...e,cursorOffset:Math.min(e.value.length,e.cursorOffset+1)};case"insert":return e.value.includes("@")&&r.text.includes("@")?e:{...e,cursorOffset:e.cursorOffset+r.text.length,previousValue:e.value,value:e.value.slice(0,e.cursorOffset)+r.text+e.value.slice(e.cursorOffset)};case"delete":{const o=Math.max(0,e.cursorOffset-1);return{...e,cursorOffset:o,previousValue:e.value,value:e.value.slice(0,o)+e.value.slice(o+1)}}}},"reducer$4"),Ke=s(({defaultValue:e="",domains:r=["aol.com","gmail.com","yahoo.com","hotmail.com","live.com","outlook.com","icloud.com","hey.com"],onChange:o,onSubmit:n})=>{const[c,l]=N(Je,{cursorOffset:e.length,previousValue:e,value:e}),t=w(()=>{if(c.value.length===0||!c.value.includes("@"))return;const g=c.value.indexOf("@"),b=c.value.slice(g+1);return r?.find(y=>y.startsWith(b))?.replace(b,"")},[c.value,r]),i=h(()=>{l({type:"move-cursor-left"})},[]),f=h(()=>{l({type:"move-cursor-right"})},[]),d=h(g=>{l({text:g,type:"insert"})},[]),a=h(()=>{l({type:"delete"})},[]),p=h(()=>{if(t){d(t),n?.(c.value+t);return}n?.(c.value)},[c.value,t,d,n]);return M(()=>{c.previousValue!==c.value&&o?.(c.value)},[c.previousValue,c.value,o]),{...c,delete:a,insert:d,moveCursorLeft:i,moveCursorRight:f,submit:p,suggestion:t}},"useEmailInputState");function Ze({isDisabled:e=!1,defaultValue:r,placeholder:o="",domains:n,onChange:c,onSubmit:l}){const t=Ke({defaultValue:r,domains:n,onChange:c,onSubmit:l}),{inputValue:i}=Ye({isDisabled:e,placeholder:o,state:t}),{styles:f}=O("EmailInput");return u(v,{...f.value(),children:i})}s(Ze,"EmailInput");function He({isFocused:e,isSelected:r,children:o}){const{styles:n}=O("MultiSelect");return V(m,{...n.option({isFocused:e}),children:[e&&u(v,{...n.focusIndicator(),children:I.pointer}),u(v,{...n.label({isFocused:e,isSelected:r}),children:o}),r&&u(v,{...n.selectedIndicator(),children:I.tick})]})}s(He,"MultiSelectOption");const er=s(({isDisabled:e=!1,state:r})=>{F((o,n)=>{n.downArrow&&r.focusNextOption(),n.upArrow&&r.focusPreviousOption(),o===" "&&r.toggleFocusedOption(),n.return&&r.submit()},{isActive:!e})},"useMultiSelect");class ie extends Map{static{s(this,"OptionMap")}first;constructor(r){const o=[];let n,c,l=0;for(const t of r){const i={...t,previous:c,next:void 0,index:l};c&&(c.next=i),n||=i,o.push([t.value,i]),l++,c=i}super(o),this.first=n}}const rr=s((e,r)=>{switch(r.type){case"focus-next-option":{if(!e.focusedValue)return e;const o=e.optionMap.get(e.focusedValue);if(!o)return e;const n=o.next;if(!n)return e;if(!(n.index>=e.visibleToIndex))return{...e,focusedValue:n.value};const l=Math.min(e.optionMap.size,e.visibleToIndex+1),t=l-e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:t,visibleToIndex:l}}case"focus-previous-option":{if(!e.focusedValue)return e;const o=e.optionMap.get(e.focusedValue);if(!o)return e;const n=o.previous;if(!n)return e;if(!(n.index<=e.visibleFromIndex))return{...e,focusedValue:n.value};const l=Math.max(0,e.visibleFromIndex-1),t=l+e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:l,visibleToIndex:t}}case"toggle-focused-option":{if(!e.focusedValue)return e;if(e.value.includes(e.focusedValue)){const o=new Set(e.value);return o.delete(e.focusedValue),{...e,previousValue:e.value,value:[...o]}}return{...e,previousValue:e.value,value:[...e.value,e.focusedValue]}}case"reset":return r.state}},"reducer$3"),ue=s(({visibleOptionCount:e,defaultValue:r,options:o})=>{const n=typeof e=="number"?Math.min(e,o.length):o.length,c=new ie(o),l=r??[];return{focusedValue:c.first?.value,optionMap:c,previousValue:l,value:l,visibleFromIndex:0,visibleOptionCount:n,visibleToIndex:n}},"createDefaultState$1"),or=s(({visibleOptionCount:e=5,options:r,defaultValue:o,onChange:n,onSubmit:c})=>{const[l,t]=N(rr,{defaultValue:o,options:r,visibleOptionCount:e},ue),[i,f]=L(r);r!==i&&!z(r,i)&&(t({state:ue({defaultValue:o,options:r,visibleOptionCount:e}),type:"reset"}),f(r));const d=h(()=>{t({type:"focus-next-option"})},[]),a=h(()=>{t({type:"focus-previous-option"})},[]),p=h(()=>{t({type:"toggle-focused-option"})},[]),g=h(()=>{c?.(l.value)},[l.value,c]),b=w(()=>r.map((y,S)=>({...y,index:S})).slice(l.visibleFromIndex,l.visibleToIndex),[r,l.visibleFromIndex,l.visibleToIndex]);return M(()=>{z(l.previousValue,l.value)||n?.(l.value)},[l.previousValue,l.value,r,n]),{focusNextOption:d,focusPreviousOption:a,focusedValue:l.focusedValue,submit:g,toggleFocusedOption:p,value:l.value,visibleFromIndex:l.visibleFromIndex,visibleOptions:b,visibleToIndex:l.visibleToIndex}},"useMultiSelectState");function nr({isDisabled:e=!1,visibleOptionCount:r=5,highlightText:o,options:n,defaultValue:c,onChange:l,onSubmit:t}){const i=or({defaultValue:c,onChange:l,onSubmit:t,options:n,visibleOptionCount:r});er({isDisabled:e,state:i});const{styles:f}=O("MultiSelect");return u(m,{...f.container(),children:i.visibleOptions.map(d=>{let a=d.label;if(o&&d.label.includes(o)){const p=d.label.indexOf(o);a=V(oe,{children:[d.label.slice(0,p),u(v,{...f.highlightedText(),children:o}),d.label.slice(p+o.length)]})}return u(He,{isFocused:!e&&i.focusedValue===d.value,isSelected:i.value.includes(d.value),children:a},d.value)})})}s(nr,"MultiSelect");const fe=E({marker:""}),de=E({marker:I.line});function J({children:e}){const{marker:r}=U(de),{styles:o}=O("OrderedList");return V(m,{...o.listItem(),children:[u(v,{...o.marker(),children:r}),u(m,{...o.content(),children:e})]})}s(J,"OrderedListItem");function ae({children:e}){const{marker:r}=U(fe),{styles:o}=O("OrderedList");let n=0;for(const l of ne.Children.toArray(e))!te(l)||l.type!==J||n++;const c=String(n).length;return u(m,{...o.list(),children:ne.Children.map(e,(l,t)=>{if(!te(l)||l.type!==J)return l;const i=`${String(t+1).padStart(c)}.`,f=`${r}${i}`;return u(fe.Provider,{value:{marker:f},children:u(de.Provider,{value:{marker:f},children:l})})})})}s(ae,"OrderedList"),ae.Item=J;const K=x.inverse(" "),tr=s(({isDisabled:e=!1,state:r,placeholder:o=""})=>{const n=w(()=>e?o?x.dim(o):"":o&&o.length>0?x.inverse(o[0])+x.dim(o.slice(1)):K,[e,o]),c=w(()=>{const l="*".repeat(r.value.length);if(e)return l;let t=0,i=l.length>0?"":K;for(const f of l)i+=t===r.cursorOffset?x.inverse(f):f,t++;return l.length>0&&r.cursorOffset===l.length&&(i+=K),i},[e,r.value,r.cursorOffset]);return F((l,t)=>{if(!(t.upArrow||t.downArrow||t.ctrl&&l==="c"||t.tab||t.shift&&t.tab)){if(t.return){r.submit();return}t.leftArrow?r.moveCursorLeft():t.rightArrow?r.moveCursorRight():t.backspace||t.delete?r.delete():r.insert(l)}},{isActive:!e}),{inputValue:r.value.length>0?c:n}},"usePasswordInput"),lr=s((e,r)=>{switch(r.type){case"move-cursor-left":return{...e,cursorOffset:Math.max(0,e.cursorOffset-1)};case"move-cursor-right":return{...e,cursorOffset:Math.min(e.value.length,e.cursorOffset+1)};case"insert":return{...e,cursorOffset:e.cursorOffset+r.text.length,previousValue:e.value,value:e.value.slice(0,e.cursorOffset)+r.text+e.value.slice(e.cursorOffset)};case"delete":{const o=Math.max(0,e.cursorOffset-1);return{...e,cursorOffset:o,previousValue:e.value,value:e.value.slice(0,o)+e.value.slice(o+1)}}}},"reducer$2"),cr=s(({onChange:e,onSubmit:r})=>{const[o,n]=N(lr,{cursorOffset:0,previousValue:"",value:""}),c=h(()=>{n({type:"move-cursor-left"})},[]),l=h(()=>{n({type:"move-cursor-right"})},[]),t=h(d=>{n({text:d,type:"insert"})},[]),i=h(()=>{n({type:"delete"})},[]),f=h(()=>{r?.(o.value)},[o.value,r]);return M(()=>{o.value!==o.previousValue&&e?.(o.value)},[o.previousValue,o.value,e]),{...o,delete:i,insert:t,moveCursorLeft:c,moveCursorRight:l,submit:f}},"usePasswordInputState");function sr({isDisabled:e=!1,placeholder:r="",onChange:o,onSubmit:n}){const c=cr({onChange:o,onSubmit:n}),{inputValue:l}=tr({isDisabled:e,placeholder:r,state:c}),{styles:t}=O("PasswordInput");return u(v,{...t.value(),children:l})}s(sr,"PasswordInput");function ir({value:e}){const[r,o]=L(0),[n,c]=L(null);if(n){const a=Ve(n);a.width!==r&&o(a.width)}const l=Math.min(100,Math.max(0,e)),t=Math.round(l/100*r),i=r-t,{styles:f,config:d}=O("ProgressBar");return V(m,{ref:c,...f.container(),children:[t>0&&u(v,{...f.completed(),children:d().completedCharacter.repeat(t)}),i>0&&u(v,{...f.remaining(),children:d().remainingCharacter.repeat(i)})]})}s(ir,"ProgressBar");function ur({isFocused:e,isSelected:r,children:o}){const{styles:n}=O("Select");return V(m,{...n.option({isFocused:e}),children:[e&&u(v,{...n.focusIndicator(),children:I.pointer}),u(v,{...n.label({isFocused:e,isSelected:r}),children:o}),r&&u(v,{...n.selectedIndicator(),children:I.tick})]})}s(ur,"SelectOption");const fr=s(({isDisabled:e=!1,state:r})=>{F((o,n)=>{n.downArrow&&r.focusNextOption(),n.upArrow&&r.focusPreviousOption(),n.return&&r.selectFocusedOption()},{isActive:!e})},"useSelect"),dr=s((e,r)=>{switch(r.type){case"focus-next-option":{if(!e.focusedValue)return e;const o=e.optionMap.get(e.focusedValue);if(!o)return e;const n=o.next;if(!n)return e;if(!(n.index>=e.visibleToIndex))return{...e,focusedValue:n.value};const l=Math.min(e.optionMap.size,e.visibleToIndex+1),t=l-e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:t,visibleToIndex:l}}case"focus-previous-option":{if(!e.focusedValue)return e;const o=e.optionMap.get(e.focusedValue);if(!o)return e;const n=o.previous;if(!n)return e;if(!(n.index<=e.visibleFromIndex))return{...e,focusedValue:n.value};const l=Math.max(0,e.visibleFromIndex-1),t=l+e.visibleOptionCount;return{...e,focusedValue:n.value,visibleFromIndex:l,visibleToIndex:t}}case"select-focused-option":return{...e,previousValue:e.value,value:e.focusedValue};case"reset":return r.state}},"reducer$1"),ve=s(({visibleOptionCount:e,defaultValue:r,options:o})=>{const n=typeof e=="number"?Math.min(e,o.length):o.length,c=new ie(o);return{focusedValue:c.first?.value,optionMap:c,previousValue:r,value:r,visibleFromIndex:0,visibleOptionCount:n,visibleToIndex:n}},"createDefaultState"),ar=s(({visibleOptionCount:e=5,options:r,defaultValue:o,onChange:n})=>{const[c,l]=N(dr,{defaultValue:o,options:r,visibleOptionCount:e},ve),[t,i]=L(r);r!==t&&!z(r,t)&&(l({state:ve({defaultValue:o,options:r,visibleOptionCount:e}),type:"reset"}),i(r));const f=h(()=>{l({type:"focus-next-option"})},[]),d=h(()=>{l({type:"focus-previous-option"})},[]),a=h(()=>{l({type:"select-focused-option"})},[]),p=w(()=>r.map((g,b)=>({...g,index:b})).slice(c.visibleFromIndex,c.visibleToIndex),[r,c.visibleFromIndex,c.visibleToIndex]);return M(()=>{c.value&&c.previousValue!==c.value&&n?.(c.value)},[c.previousValue,c.value,r,n]),{focusNextOption:f,focusPreviousOption:d,focusedValue:c.focusedValue,selectFocusedOption:a,value:c.value,visibleFromIndex:c.visibleFromIndex,visibleOptions:p,visibleToIndex:c.visibleToIndex}},"useSelectState");function vr({isDisabled:e=!1,visibleOptionCount:r=5,highlightText:o,options:n,defaultValue:c,onChange:l}){const t=ar({defaultValue:c,onChange:l,options:n,visibleOptionCount:r});fr({isDisabled:e,state:t});const{styles:i}=O("Select");return u(m,{...i.container(),children:t.visibleOptions.map(f=>{let d=f.label;if(o&&f.label.includes(o)){const a=f.label.indexOf(o);d=V(oe,{children:[f.label.slice(0,a),u(v,{...i.highlightedText(),children:o}),f.label.slice(a+o.length)]})}return u(ur,{isFocused:!e&&t.focusedValue===f.value,isSelected:t.value===f.value,children:d},f.value)})})}s(vr,"Select");function me({type:e="dots"}){const[r,o]=L(0),n=Le[e];return M(()=>{const c=setInterval(()=>{o(l=>l===n.frames.length-1?0:l+1)},n.interval);return()=>{clearInterval(c)}},[n]),{frame:n.frames[r]??""}}s(me,"useSpinner");function mr({label:e,type:r}){const{frame:o}=me({type:r}),{styles:n}=O("Spinner");return V(m,{...n.container(),children:[u(v,{...n.frame(),children:o}),e&&u(v,{...n.label(),children:e})]})}s(mr,"Spinner");function pr({children:e,variant:r}){const{styles:o,config:n}=O("StatusMessage");return V(m,{...o.container(),children:[u(m,{...o.iconContainer(),children:u(v,{...o.icon({variant:r}),children:n({variant:r}).icon})}),u(v,{...o.message(),children:e})]})}s(pr,"StatusMessage");const Z=x.inverse(" "),hr=s(({isDisabled:e=!1,state:r,placeholder:o=""})=>{const n=w(()=>e?o?x.dim(o):"":o&&o.length>0?x.inverse(o[0])+x.dim(o.slice(1)):Z,[e,o]),c=w(()=>{if(e)return r.value;let l=0,t=r.value.length>0?"":Z;for(const i of r.value)t+=l===r.cursorOffset?x.inverse(i):i,l++;return r.suggestion?(r.cursorOffset===r.value.length?t+=x.inverse(r.suggestion[0])+x.dim(r.suggestion.slice(1)):t+=x.dim(r.suggestion),t):(r.value.length>0&&r.cursorOffset===r.value.length&&(t+=Z),t)},[e,r.value,r.cursorOffset,r.suggestion]);return F((l,t)=>{if(!(t.upArrow||t.downArrow||t.ctrl&&l==="c"||t.tab||t.shift&&t.tab)){if(t.return){r.submit();return}t.leftArrow?r.moveCursorLeft():t.rightArrow?r.moveCursorRight():t.backspace||t.delete?r.delete():r.insert(l)}},{isActive:!e}),{inputValue:r.value.length>0?c:n}},"useTextInput"),gr=s((e,r)=>{switch(r.type){case"move-cursor-left":return{...e,cursorOffset:Math.max(0,e.cursorOffset-1)};case"move-cursor-right":return{...e,cursorOffset:Math.min(e.value.length,e.cursorOffset+1)};case"insert":return{...e,cursorOffset:e.cursorOffset+r.text.length,previousValue:e.value,value:e.value.slice(0,e.cursorOffset)+r.text+e.value.slice(e.cursorOffset)};case"delete":{const o=Math.max(0,e.cursorOffset-1);return{...e,cursorOffset:o,previousValue:e.value,value:e.value.slice(0,o)+e.value.slice(o+1)}}}},"reducer"),xr=s(({defaultValue:e="",suggestions:r,onChange:o,onSubmit:n})=>{const[c,l]=N(gr,{cursorOffset:e.length,previousValue:e,value:e}),t=w(()=>{if(c.value.length!==0)return r?.find(g=>g.startsWith(c.value))?.replace(c.value,"")},[c.value,r]),i=h(()=>{l({type:"move-cursor-left"})},[]),f=h(()=>{l({type:"move-cursor-right"})},[]),d=h(g=>{l({text:g,type:"insert"})},[]),a=h(()=>{l({type:"delete"})},[]),p=h(()=>{if(t){d(t),n?.(c.value+t);return}n?.(c.value)},[c.value,t,d,n]);return M(()=>{c.value!==c.previousValue&&o?.(c.value)},[c.previousValue,c.value,o]),{...c,delete:a,insert:d,moveCursorLeft:i,moveCursorRight:f,submit:p,suggestion:t}},"useTextInputState");function br({isDisabled:e=!1,defaultValue:r,placeholder:o="",suggestions:n,onChange:c,onSubmit:l}){const t=xr({defaultValue:r,onChange:c,onSubmit:l,suggestions:n}),{inputValue:i}=hr({isDisabled:e,placeholder:o,state:t}),{styles:f}=O("TextInput");return u(v,{...f.value(),children:i})}s(br,"TextInput");const H=I.line,pe=E({depth:0}),he=E({marker:H});function Ir({children:e}){const{marker:r}=U(he),{styles:o}=O("UnorderedList");return V(m,{...o.listItem(),children:[u(v,{...o.marker(),children:r}),u(m,{...o.content(),children:e})]})}s(Ir,"UnorderedListItem");function ge({children:e}){const{depth:r}=U(pe),{styles:o,config:n}=O("UnorderedList"),c=w(()=>({depth:r+1}),[r]),l=w(()=>{const{marker:t}=n();return typeof t=="string"?{marker:t}:Array.isArray(t)?{marker:t[r]??t.at(-1)??H}:{marker:H}},[n,r]);return u(pe.Provider,{value:c,children:u(he.Provider,{value:l,children:u(m,{...o.list(),children:e})})})}s(ge,"UnorderedList"),ge.Item=Ir;const Or={blue:"#8ae8ff",cyan:"#95f3d9",geekblue:"#369eff",gold:"#ffcb47",gray:"#777777",green:"#55b467",lime:"#c4f042",magenta:"#e34ba9",orange:"#ff802b",pink:"#eb2f96",purple:"#bd54c6",red:"#f04f88",volcano:"#ec5e41",yellow:"#ffef5c"},yr={colorError:"red",colorInfo:"blue",colorPrimary:"cyan",colorSuccess:"green",colorWarning:"yellow"};var Vr={colorBgContainer:"#111111",colorBgElevated:"#222222",colorBgLayout:"#000000",colorBgSpotlight:"#444444",colorBorder:"#333333",colorBorderSecondary:"#2d2d2d",colorText:"#ffffff",colorTextDescription:"#6f6f6f",colorTextPlaceholder:"#555555",colorTextQuaternary:"#555555",colorTextSecondary:"#aaaaaa",colorTextTertiary:"#6f6f6f",...yr,...Or};const P=s(()=>Vr,"useTheme"),ee=A(({show:e=!0,children:r,footer:o,reverse:n=!1,header:c,headerConfig:l,footerConfig:t,bodyConfig:i,title:f,...d})=>{const a=P();if(!e)return;const p=(f||c)&&u(m,{borderColor:a.colorBorder,borderLeft:!1,borderRight:!1,borderStyle:"bold",borderTop:!1,flexDirection:"row",justifyContent:"center",paddingLeft:1,paddingRight:1,...l,children:f?u(v,{bold:!0,children:f.toUpperCase()}):c}),g=u(m,{flexDirection:"column",paddingLeft:1,paddingRight:1,...i,children:r}),b=o&&u(m,{borderBottom:n,borderColor:a.colorBorder,borderLeft:!1,borderRight:!1,borderStyle:"single",borderTop:!n,flexDirection:"row",paddingLeft:1,paddingRight:1,...t,children:o});return V(m,{alignItems:"stretch",borderColor:a.colorBorder,borderStyle:"bold",flexDirection:"column",...d,children:[p,n?b:g,n?g:b]})}),wr=A(({highlightColor:e,isSelected:r=!1})=>u(m,{marginRight:1,children:r?u(v,{color:e,children:I.pointer}):u(v,{children:" "})})),Sr=A(({highlightColor:e,isSelected:r=!1,label:o})=>u(v,{color:r?e:void 0,children:o})),xe=A(({highlightColor:e,items:r=[],isFocused:o=!0,initialIndex:n=0,indicatorComponent:c=wr,itemComponent:l=Sr,limit:t,onSelect:i,onHighlight:f})=>{const d=P(),a=typeof t=="number"&&r.length>t,p=a?Math.min(t,r.length):r.length,g=p-1,[b,y]=L(n>g?g-n:0),[S,$]=L(n?n>g?g:n:0),re=Ce(r);M(()=>{Te(re.current.map(T=>T.value),r.map(T=>T.value))||(y(0),$(0)),re.current=r},[r]),F(h((T,B)=>{if(B.upArrow){const C=(a?p:r.length)-1,W=S===0,j=a?S:C,R=W?b+1:b,D=W?j:S-1;y(R),$(D);const Oe=a?G(r,R).slice(0,p):r;typeof f=="function"&&f(Oe[D])}if(B.downArrow){const C=S===(a?p:r.length)-1,W=a?S:0,j=C?b-1:b,R=C?W:S+1;y(j),$(R);const D=a?G(r,j).slice(0,p):r;typeof f=="function"&&f(D[R])}if(B.return){const C=a?G(r,b).slice(0,p):r;typeof i=="function"&&i(C[S])}},[a,p,b,S,r,i,f]),{isActive:o});const Ie=w(()=>a?G(r,b).slice(0,p):r,[a,b,p]);return u(m,{flexDirection:"column",children:Ie.map((T,B)=>{const C=B===S;return V(m,{children:[le(c,{highlightColor:e??d.colorPrimary,isSelected:C}),le(l,{...T,highlightColor:e??d.colorPrimary,isSelected:C})]},T.key??T.value)})})}),Cr=A(({maxLength:e=30,defaultValue:r,label:o,showValue:n=!0,value:c})=>{const l=P(),t=w(()=>o+Array.from({length:e-o.length}).fill("").join(" "),[o,e]),i=w(()=>r===c,[r,c]);return V(v,{children:[t,r?u(X,{color:i?l.colorText:l.colorInfo,children:n?c:i?"DEFAULT":"CUSTOM"}):u(X,{color:i?l.colorError:l.colorSuccess,children:n?c:i?"UNSET":"SET"})]})}),Tr=A(({active:e,setActive:r,maxLength:o=30,show:n=!0,items:c,logo:l,title:t,...i})=>{const[f,d]=L(),a=P(),{exit:p}=we(),g=w(()=>[...c.map(y=>({label:u(Cr,{defaultValue:y.defaultValue,label:y.label,maxLength:o,showValue:y.showValue,value:y.value}),value:y.key})),{label:"Exit",value:"exit"}],[c]),b=s(y=>{y.value==="exit"&&p();const S=c.find($=>$.key===y.value);S&&(d(S),r?.(y.value))},"handleSelect");if(n)return e&&f?u(ee,{footer:f.desc&&V(v,{color:a.colorTextDescription,children:[u(v,{bold:!0,children:"\u{1F449}NOTE: "}),f.desc]}),title:[l,f.label].filter(Boolean).join(" "),...i,children:f.children}):u(ee,{show:!e,title:[l,t].filter(Boolean).join(" "),...i,children:u(xe,{items:g,onSelect:b})})}),be=A(({children:e})=>{const r=P();M(()=>{},[]);const o=se(_,{components:{Select:{styles:{focusIndicator:s(()=>({color:r.colorInfo}),"focusIndicator"),label({isFocused:n,isSelected:c}){let l;return c?l=r.colorSuccess:n&&(l=r.colorPrimary),{color:l}},selectedIndicator:s(()=>({color:r.colorPrimary}),"selectedIndicator")}}}});return u(_e,{theme:o,children:e})}),Mr=s(e=>Se(u(be,{children:e})),"render"),Lr=A(({children:e,direction:r="top",...o})=>{const n=P();return u(m,{borderBottom:r!=="top",borderColor:n.colorBorder,borderLeft:!1,borderRight:!1,borderStyle:"single",borderTop:r==="top",flexDirection:"column",...o,children:e})});export{Qe as Alert,X as Badge,Tr as ConfigPanel,Xe as ConfirmInput,Ze as EmailInput,nr as MultiSelect,ae as OrderedList,ee as Panel,sr as PasswordInput,ir as ProgressBar,vr as Select,xe as SelectInput,mr as Spinner,Lr as SplitView,pr as StatusMessage,br as TextInput,Q as ThemeContext,be as ThemeProvider,ge as UnorderedList,Ae as alert,_ as defaultTheme,se as extendTheme,Mr as render,O as useComponentTheme,me as useSpinner,P as useTheme};