@visulima/tui-kit 1.0.3 → 1.0.5
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/CHANGELOG.md +15 -0
- package/dist/accordion.js +1 -1
- package/dist/alert.js +1 -1
- package/dist/animate-presence.js +1 -1
- package/dist/approval-prompt.js +1 -1
- package/dist/area-chart.js +1 -1
- package/dist/badge.js +1 -1
- package/dist/bar-chart.js +1 -1
- package/dist/big-text.js +1 -1
- package/dist/blink-dot.js +1 -1
- package/dist/breadcrumb.js +1 -1
- package/dist/button.js +1 -1
- package/dist/calendar.js +1 -1
- package/dist/card.js +1 -1
- package/dist/checkbox-group.js +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/code.js +2 -2
- package/dist/collapsible.js +1 -1
- package/dist/color-picker.js +1 -1
- package/dist/command-block.js +4 -4
- package/dist/command-palette.js +1 -1
- package/dist/confirm-dialog.js +1 -1
- package/dist/confirm-input.js +1 -1
- package/dist/console-overlay.js +1 -1
- package/dist/content-switcher.js +1 -1
- package/dist/controlled-scroll-view.d.ts +43 -3
- package/dist/controlled-scroll-view.js +1 -1
- package/dist/data-grid.js +1 -1
- package/dist/date-picker.js +1 -1
- package/dist/definition-list.js +1 -1
- package/dist/dialog.d.ts +1 -1
- package/dist/dialog.js +1 -1
- package/dist/diff-view.js +1 -1
- package/dist/digits.js +1 -1
- package/dist/directory-tree.js +1 -1
- package/dist/divider.js +1 -1
- package/dist/drawer.js +1 -1
- package/dist/file-change.js +1 -1
- package/dist/file-picker-entry.d.ts +92 -2
- package/dist/file-picker-entry.js +1 -1
- package/dist/form.js +1 -1
- package/dist/gauge.js +1 -1
- package/dist/gradient.js +1 -1
- package/dist/grid.js +1 -1
- package/dist/heading.js +1 -1
- package/dist/heatmap.js +1 -1
- package/dist/help.js +1 -1
- package/dist/histogram.js +1 -1
- package/dist/image.js +1 -1
- package/dist/index.d.ts +25 -9
- package/dist/index.js +1 -1
- package/dist/json.js +1 -1
- package/dist/kbd.js +1 -1
- package/dist/line-chart.js +1 -1
- package/dist/link.js +1 -1
- package/dist/loading-indicator.js +1 -1
- package/dist/log.js +1 -1
- package/dist/markdown.js +1 -1
- package/dist/masked-input.js +1 -1
- package/dist/menu.js +1 -1
- package/dist/message-bubble.js +1 -1
- package/dist/model-badge.js +1 -1
- package/dist/model-selector.js +1 -1
- package/dist/multi-progress.js +1 -1
- package/dist/multi-select.js +1 -1
- package/dist/notification-badge.js +1 -1
- package/dist/number-input.js +1 -1
- package/dist/operation-tree.js +1 -1
- package/dist/option-list.js +1 -1
- package/dist/ordered-list.js +1 -1
- package/dist/packem_shared/ControlledScrollView-soZtm3m7.js +1 -0
- package/dist/packem_shared/FilePicker-KGAg6v5x.js +1 -0
- package/dist/packem_shared/ScrollBar-arHRP6OT.js +1 -0
- package/dist/packem_shared/ScrollBarBox-C8wZ_Slk.js +1 -0
- package/dist/packem_shared/ScrollList-BCqHHps6.js +1 -0
- package/dist/packem_shared/ScrollView-Dt5E9Yl7.js +1 -0
- package/dist/packem_shared/TreeNodeMap-BK7nRlt0.js +1 -0
- package/dist/packem_shared/TreeView-BEZAFOfr.js +1 -0
- package/dist/packem_shared/controlled-scroll-view-BHCYjiKa.js +1 -0
- package/dist/packem_shared/line-chart-BqOUjZTt.js +1 -0
- package/dist/packem_shared/treeViewTheme-DuCcyBDe.js +1 -0
- package/dist/packem_shared/useTreeView-Dt_iWxVs.js +1 -0
- package/dist/packem_shared/useTreeViewState-aHwNZhIE.js +1 -0
- package/dist/packem_shared/{variant-config-BJqpNo7H.js → variant-config-BnAmf1rP.js} +1 -1
- package/dist/paginator.js +1 -1
- package/dist/paragraph.js +1 -1
- package/dist/path-input.js +1 -1
- package/dist/pie-chart.js +1 -1
- package/dist/placeholder.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/progress-bar.js +1 -1
- package/dist/progress-circle.js +1 -1
- package/dist/qr-code.js +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/scatter-plot.js +1 -1
- package/dist/scroll-bar-box.d.ts +13 -3
- package/dist/scroll-bar-box.js +1 -1
- package/dist/scroll-bar.d.ts +18 -3
- package/dist/scroll-bar.js +1 -1
- package/dist/scroll-list.d.ts +12 -3
- package/dist/scroll-list.js +1 -1
- package/dist/scroll-view.d.ts +98 -3
- package/dist/scroll-view.js +1 -1
- package/dist/search-input.js +1 -1
- package/dist/select-input-indicator.js +1 -1
- package/dist/select-input-item.js +1 -1
- package/dist/select-input.js +1 -1
- package/dist/shimmer-text.js +1 -1
- package/dist/sidebar.js +1 -1
- package/dist/slider.js +1 -1
- package/dist/sparkline.js +1 -1
- package/dist/spinner.js +1 -1
- package/dist/status-line.js +1 -1
- package/dist/status-message.js +1 -1
- package/dist/stepper.js +1 -1
- package/dist/stopwatch.js +1 -1
- package/dist/streaming-text.js +1 -1
- package/dist/switch.js +1 -1
- package/dist/tab.js +1 -1
- package/dist/table.js +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tag-input.js +1 -1
- package/dist/tag.js +1 -1
- package/dist/text-input.js +1 -1
- package/dist/textarea.js +2 -2
- package/dist/thinking-block.js +1 -1
- package/dist/time-picker.js +1 -1
- package/dist/timer.js +1 -1
- package/dist/toast.js +1 -1
- package/dist/token-usage.js +1 -1
- package/dist/tool-call.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/transition.js +1 -1
- package/dist/tree-select.js +1 -1
- package/dist/tree-view-entry.d.ts +314 -4
- package/dist/tree-view-entry.js +1 -1
- package/dist/unordered-list.js +1 -1
- package/dist/use-linked-scroll.d.ts +1 -1
- package/dist/use-linked-scroll.js +1 -1
- package/package.json +8 -8
- package/dist/packem_shared/ControlledScrollView-BzlbIUph.js +0 -1
- package/dist/packem_shared/FilePicker-V5H2fb-v.js +0 -1
- package/dist/packem_shared/ScrollBar-C9i3z3Ft.js +0 -1
- package/dist/packem_shared/ScrollBarBox-DZEC8YnV.js +0 -1
- package/dist/packem_shared/ScrollList-Djtb2vVy.js +0 -1
- package/dist/packem_shared/ScrollView-ESxpl6Hy.js +0 -1
- package/dist/packem_shared/TreeNodeMap-cJlYqckB.js +0 -1
- package/dist/packem_shared/TreeView-q0l446NV.js +0 -1
- package/dist/packem_shared/controlled-scroll-view-DerVKKv6.js +0 -1
- package/dist/packem_shared/controlled-scroll-view.d-D3kZZzjI.d.ts +0 -43
- package/dist/packem_shared/file-picker.d-CH7pccC7.d.ts +0 -92
- package/dist/packem_shared/line-chart-BbhMhcZg.js +0 -1
- package/dist/packem_shared/scroll-bar-box.d-CpTYEcTZ.d.ts +0 -13
- package/dist/packem_shared/scroll-bar.d-B4sD1hBR.d.ts +0 -18
- package/dist/packem_shared/scroll-list.d-CPCF0RwC.d.ts +0 -12
- package/dist/packem_shared/scroll-view.d-GZcgAHl4.d.ts +0 -98
- package/dist/packem_shared/treeViewTheme-Dq3ekRAC.js +0 -1
- package/dist/packem_shared/use-tree-view.d-DeMQ6G2r.d.ts +0 -314
- package/dist/packem_shared/useTreeView-D0JEqT6W.js +0 -1
- package/dist/packem_shared/useTreeViewState-BiTJakkh.js +0 -1
package/dist/select-input.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as V,jsxs as H}from"react/jsx-runtime";import{isDeepStrictEqual as ee}from"node:util";import D from"@visulima/tui/components/box";import te from"@visulima/tui/components/text";import ne from"@visulima/tui/hooks/use-input";import re from"@visulima/tui/hooks/use-window-size";import{useReducer as se,useRef as N,useMemo as oe,useEffect as F,useCallback as O,createElement as G}from"react";import{SelectInputIndicator as ce}from"./select-input-indicator.js";import{SelectInputItem as le}from"./select-input-item.js";const v=n=>"isSeparator"in n&&n.isSeparator,ae=[],ie=/^[1-9]$/,i=-1,fe="───",ue=Symbol("separator"),de=(n,r)=>{switch(r.type){case"navigate":return{rotateIndex:r.rotateIndex,selectedIndex:r.selectedIndex};case"reset":return{rotateIndex:0,selectedIndex:r.hasInitialSelection?r.initialIndex:i};case"set":return{rotateIndex:r.selectedIndex,selectedIndex:r.selectedIndex};default:return n}},Ie=(n,r)=>{const{length:s}=n;if(s===0)return[];const u=(r%s+s)%s;return[...n.slice(u),...n.slice(0,u)]},E=(n,r,s,u)=>r?Ie(n,s).slice(0,u):n,L=(n,r,s)=>{const{length:u}=n;for(let w=0;w<u;w+=1){const A=((r+(w+1)*s)%u+u)%u;if(!v(n[A]))return A}return i},J=(n,r)=>{if(r<0||r>=n.length)return i;const s=n[r];return s&&!v(s)?r:L(n,r-1,1)};function ye({accentColor:n="blue",defaultColor:r,index:s,indicatorComponent:u=ce,initialIndex:w,isFocused:A=!0,itemComponent:Q=le,items:t=ae,limit:P,onHighlight:d,onSelect:j,resetOnItemsChange:B=!0}){const{rows:X}=re(),U=typeof P=="number"?P:X,o=t.length>U,f=o?Math.min(U,t.length):t.length,R=f-1,k=typeof s=="number"||typeof w=="number",z=typeof s=="number"?s:w??i,T=z===i?i:J(t,Math.min(z,R)),[h,y]=se(de,{rotateIndex:T>R?R-T:0,selectedIndex:T}),Y=N(k),$=N(T),q=N(h);q.current=h;const _=N(j);_.current=j;const Z=N(t),M=oe(()=>t.map(e=>v(e)?ue:e.value),[t]),C=N(M);Y.current=k,$.current=T,F(()=>{B&&!ee(C.current,M)&&y({hasInitialSelection:Y.current,initialIndex:$.current,type:"reset"}),C.current=M,Z.current=t},[t,M,B]),F(()=>{if(typeof s=="number"){const e=J(t,Math.min(s,R));y({selectedIndex:e===i?0:e,type:"set"})}},[s,t,R]);const K=O((e,l)=>{const a=E(t,o,e,f);if(l===i){const m=L(a,0,-1);if(m===i)return;y({rotateIndex:e,selectedIndex:m,type:"navigate"}),typeof d=="function"&&d(a[m],m);return}const S=(o?f:t.length)-1,I=l===0,c=I?S:l-1,p=I&&o?e+1:e,b=E(t,o,p,f),x=v(b[c])?L(b,c,-1):c;x!==i&&(y({rotateIndex:p,selectedIndex:x,type:"navigate"}),typeof d=="function"&&d(b[x],x))},[o,f,t,d]),W=O((e,l)=>{const a=E(t,o,e,f);if(l===i){const m=L(a,a.length-1,1);if(m===i)return;y({rotateIndex:e,selectedIndex:m,type:"navigate"}),typeof d=="function"&&d(a[m],m);return}const S=(o?f:t.length)-1,I=l===S,c=I?0:l+1,p=I&&o?e-1:e,b=E(t,o,p,f),x=v(b[c])?L(b,c,1):c;x!==i&&(y({rotateIndex:p,selectedIndex:x,type:"navigate"}),typeof d=="function"&&d(b[x],x))},[o,f,t,d]);ne(O((e,l)=>{const{rotateIndex:a,selectedIndex:S}=q.current;if((e==="k"||l.upArrow)&&K(a,S),(e==="j"||l.downArrow)&&W(a,S),ie.test(e)){const I=Number.parseInt(e,10)-1,c=E(t,o,a,f);if(I>=0&&I<c.length){const p=c[I];p&&!v(p)&&(_.current?.(p),p.action?.())}}if(l.return&&S!==i){const c=E(t,o,a,f)[S];c&&!v(c)&&(_.current?.(c),c.action?.())}},[K,W,o,f,t]),{isActive:A});const g=E(t,o,h.rotateIndex,f);return V(D,{flexDirection:"column",children:g.map((e,l)=>{if(v(e))return V(D,{children:V(te,{dimColor:!0,children:e.label??fe})},e.key??`separator-${String(l)}`);const a=l===h.selectedIndex;return H(D,{children:[G(u,{accentColor:n,isFocused:A,isSelected:a}),G(Q,{...e,accentColor:n,defaultColor:r,isFocused:A,isSelected:a})]},e.key??String(e.value))})})}export{ye as SelectInput,ye as default};
|
package/dist/shimmer-text.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import r from"@visulima/tui/components/text";import B from"@visulima/tui/hooks/use-animation";import{useMemo as d}from"react";function y({bandWidth:a=3,color:o,highlightColor:h="white",interval:p=60,text:i}){const{frame:u}=B({interval:p}),t=d(()=>[...i],[i]),s=t.length,l=s+a,x=s===0?0:u%l,b=d(()=>t.map((n,m)=>e(r,{color:o,dimColor:o===void 0,children:n},m)),[t,o]);if(s===0)return e(r,{color:o,children:i});const c=[];for(const[n,m]of t.entries()){const f=x-n;if(!(f>=0&&f<a)){c.push(b[n]);continue}c.push(e(r,{bold:!0,color:h,children:m},`band-${n}`))}return e(r,{children:c})}export{y as ShimmerText,y as default};
|
package/dist/sidebar.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as f,jsxs as b}from"react/jsx-runtime";import e from"@visulima/tui/components/box";function c({children:n,divider:o=!0,dividerColor:i="gray",side:r="left",sidebar:a,width:d=24}){const t=f(e,{borderBottom:!1,borderColor:i,borderLeft:o&&r==="right",borderRight:o&&r==="left",borderStyle:"single",borderTop:!1,flexShrink:0,paddingX:1,width:d,children:a}),l=f(e,{flexGrow:1,paddingX:1,children:n});return b(e,{flexDirection:"row",children:[r==="left"?t:l,r==="left"?l:t]})}export{c as Sidebar,c as default};
|
package/dist/slider.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as u,jsxs as X}from"react/jsx-runtime";import S from"@visulima/tui/components/box";import x from"@visulima/tui/components/text";import Y from"@visulima/tui/hooks/use-input";import{useState as Z,useRef as N,useCallback as U}from"react";const I=(s,m,w)=>Math.min(w,Math.max(m,s));function D({accentColor:s="green",defaultColor:m="gray",defaultValue:w=0,emptyCharacter:P="░",filledCharacter:R="█",isDisabled:t=!1,isFocused:q=!0,max:j=100,min:B=0,onChange:F,orientation:a="horizontal",step:d=1,thumbCharacter:T="●",value:V,width:C=20}){const n=Math.min(B,j),c=Math.max(B,j),v=V!==void 0,[E,G]=Z(I(w,n,c)),M=v?I(V,n,c):E,H=N(F);H.current=F;const f=N(M);f.current=M;const e=U(o=>{const r=I(o,n,c);v||G(r),H.current?.(r)},[n,c,v]),g=d*10,h=c-n,J=U((o,r)=>{const z=a==="horizontal"?r.rightArrow:r.upArrow,p=a==="horizontal"?r.leftArrow:r.downArrow;if(z){e(f.current+d);return}if(p){e(f.current-d);return}if(r.pageUp){e(f.current+g);return}if(r.pageDown){e(f.current-g);return}if(r.home){e(n);return}if(r.end){e(c);return}if(o>="0"&&o<="9"){const W=Number.parseInt(o,10)/10;e(n+h*W)}},[d,g,n,c,h,a,e]);Y(J,{isActive:q&&!t});const A=Math.max(1,C),K=h===0?0:(M-n)/h,i=Math.round(K*(A-1));if(a==="vertical"){const o=[];for(let r=A-1;r>=0;r--){const z=r===i,p=r<=i;o.push(u(S,{children:u(x,{color:t?void 0:p?s:m,dimColor:t,children:z?T:p?R:P})},r))}return u(S,{flexDirection:"column",children:o})}let l="";for(let o=0;o<A;o++)o===i?l+=T:o<i?l+=R:l+=P;const L=l.slice(0,i),O=l[i]??"",Q=l.slice(i+1);return X(S,{children:[u(x,{color:t?void 0:s,dimColor:t,children:L}),u(x,{bold:!0,color:t?void 0:s,dimColor:t,children:O}),u(x,{color:t?void 0:m,dimColor:t,children:Q})]})}export{D as Slider,D as default};
|
package/dist/sparkline.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as m}from"react/jsx-runtime";import I from"@visulima/tui/components/text";import{useMemo as h}from"react";const N="▁▂▃▄▅▆▇█",p="░▒▓█",T=(c,o,n,t)=>{if(n===0)return t[0];const e=(c-o)/n,r=Math.max(0,Math.min(t.length-1,Math.floor(e*t.length)));return t[r]},a=(c,o,n)=>{let t=o??Number.POSITIVE_INFINITY,e=n??Number.NEGATIVE_INFINITY;if(o===void 0||n===void 0)for(const r of c)o===void 0&&r<t&&(t=r),n===void 0&&r>e&&(e=r);return{max:e,min:t}};function M({color:c,data:o,dither:n=!1,max:t,min:e}){const r=h(()=>{if(o.length===0)return"";const{max:i,min:f}=a(o,e,t),l=i-f,u=n?p:N;return o.map(s=>T(s,f,l,u)).join("")},[o,n,e,t]);return r.length===0?null:m(I,{color:c,children:r})}export{M as Sparkline,M as default};
|
package/dist/spinner.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as i}from"react/jsx-runtime";import{getSpinner as
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import{getSpinner as n}from"@visulima/spinner";import m from"@visulima/tui/components/text";import s from"@visulima/tui/hooks/use-animation";function l({type:e="dots"}){const r=n(e)??n("dots"),t=r?.frames??[" "],{frame:o}=s({interval:r?.interval??80});return i(m,{children:t[o%t.length]})}export{l as Spinner,l as default};
|
package/dist/status-line.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as l,jsx as
|
|
1
|
+
import{jsxs as l,jsx as n}from"react/jsx-runtime";import e from"@visulima/tui/components/box";import x from"@visulima/tui/components/text";const f=(i,r)=>{if(i!==void 0)return typeof i=="string"||typeof i=="number"?n(x,{color:r,children:i}):i};function s({backgroundColor:i,center:r,color:t,left:d,right:o}){return l(e,{backgroundColor:i,paddingX:1,width:"100%",children:[n(e,{flexGrow:1,flexShrink:1,minWidth:0,children:f(d,t)}),r===void 0?void 0:n(e,{flexGrow:0,flexShrink:0,justifyContent:"center",children:f(r,t)}),n(e,{flexGrow:1,flexShrink:1,justifyContent:"flex-end",minWidth:0,children:f(o,t)})]})}export{s as StatusLine,s as default};
|
package/dist/status-message.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as m,jsx as o}from"react/jsx-runtime";import n from"@visulima/tui/components/box";import r from"@visulima/tui/components/text";import{V as a}from"./packem_shared/variant-config-BnAmf1rP.js";function l({children:t,variant:s}){const{color:e,icon:i}=a[s];return m(n,{gap:1,children:[o(r,{color:e,children:i}),o(r,{children:t})]})}export{l as StatusMessage,l as default};
|
package/dist/stepper.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as o,jsxs as l}from"react/jsx-runtime";import e from"@visulima/tui/components/box";import t from"@visulima/tui/components/text";import{Fragment as p}from"react";const s={active:"●",completed:"✔",error:"✖",pending:"○"},f=(d,c,m)=>d.status!==void 0?d.status:c<m?"completed":c===m?"active":"pending";function S({accentColor:d="blue",activeIndex:c=0,errorColor:m="red",orientation:g="horizontal",steps:u}){return g==="vertical"?o(e,{flexDirection:"column",children:u.map((i,n)=>{const r=f(i,n,c),a=n===u.length-1,h=r==="error"?m:r==="pending"?void 0:d;return l(e,{flexDirection:"column",children:[l(e,{children:[l(t,{color:h,dimColor:r==="pending",children:[s[r]," "]}),o(t,{bold:r==="active",color:h,dimColor:r==="pending",children:i.label})]}),i.description===void 0?void 0:o(e,{marginLeft:2,children:o(t,{dimColor:!0,children:i.description})}),a?void 0:o(e,{marginLeft:0,children:o(t,{dimColor:!0,children:"│"})})]},i.key??n)})}):o(e,{children:u.map((i,n)=>{const r=f(i,n,c),a=r==="error"?m:r==="pending"?void 0:d,h=n===u.length-1;return l(p,{children:[l(e,{children:[l(t,{color:a,dimColor:r==="pending",children:[s[r]," "]}),o(t,{bold:r==="active",color:a,dimColor:r==="pending",children:i.label})]}),h?void 0:o(t,{dimColor:!0,children:" ── "})]},i.key??n)})})}export{S as Stepper,S as default};
|
package/dist/stopwatch.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as m}from"react/jsx-runtime";import l from"@visulima/tui/components/text";import i from"@visulima/tui/hooks/use-stopwatch";import{formatDuration as f}from"@visulima/tui/utils";import{useImperativeHandle as n}from"react";const w=({autoStart:r,bold:o,color:e,format:s=f,interval:p,ref:a})=>{const t=i({autoStart:r,interval:p});return n(a,()=>({lap:t.lap,reset:t.reset,start:t.start,stop:t.stop,toggle:t.toggle}),[t.lap,t.reset,t.start,t.stop,t.toggle]),m(l,{bold:o,color:e,children:s(t.elapsed)})};export{w as Stopwatch,w as default};
|
package/dist/streaming-text.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as p}from"react/jsx-runtime";import T from"@visulima/tui/components/text";import{useState as b,useRef as c,useEffect as u}from"react";function S({color:f,cursor:l="▊",interval:n=20,onComplete:s,showCursorWhenDone:m=!1,text:e}){const[r,o]=b(0),i=c(s),t=c(!1);i.current=s,u(()=>{o(0),t.current=!1},[e]),u(()=>{if(r>=e.length){t.current||(t.current=!0,i.current?.());return}const d=setTimeout(()=>{o(g=>Math.min(e.length,g+1))},n);return()=>{clearTimeout(d)}},[r,e,n]);const a=!(r>=e.length)||m,h=e.slice(0,r);return p(T,{color:f,children:[h,a?l:""]})}export{S as StreamingText,S as default};
|
package/dist/switch.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as c,jsx as h}from"react/jsx-runtime";import u from"@visulima/tui/components/box";import i from"@visulima/tui/components/text";import F from"@visulima/tui/hooks/use-focus";import L from"@visulima/tui/hooks/use-input";import{useState as S,useCallback as j}from"react";const B=["off","on"];function _({accentColor:f="green",autoFocus:l=!1,children:e,defaultValue:p=!1,isDisabled:r=!1,labels:s=B,onChange:m,value:n}){const{isFocused:t}=F({autoFocus:l,isActive:!r}),[a,v]=S(p),o=n??a;L(j((C,A)=>{if(t&&(A.return||C===" ")){const d=!o;n===void 0&&v(d),m?.(d)}},[t,o,n,m]),{isActive:!r&&t});const x=s[0],g=s[1],k=t?f:void 0;return c(u,{gap:1,children:[c(u,{gap:0,children:[c(i,{backgroundColor:o?void 0:"gray",color:o?void 0:"black",dimColor:r,children:[" ",x," "]}),c(i,{backgroundColor:o?f:void 0,color:o?"black":void 0,dimColor:r,children:[" ",g," "]})]}),e===void 0?void 0:h(i,{color:k,dimColor:r,children:e})]})}export{_ as Switch,_ as default};
|
package/dist/tab.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as t,Fragment as a}from"react/jsx-runtime";function n({children:r}){return t(a,{children:r})}export{n as Tab,n as default};
|
package/dist/table.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as h}from"react/jsx-runtime";import{Table as T}from"@visulima/tabular";import{THICK_BORDER as b,ROUNDED_BORDER as k,NO_BORDER as y,MINIMAL_BORDER as I,MARKDOWN_BORDER as v,DOUBLE_BORDER as C,DOTS_BORDER as L,DEFAULT_BORDER as a,BLOCK_BORDER as x,ASCII_BORDER as A}from"@visulima/tabular/style";import M from"@visulima/tui/components/text";import{useMemo as N}from"react";const S={ascii:A,block:x,default:a,dots:L,double:C,markdown:v,minimal:I,none:y,rounded:k,thick:b},w=e=>typeof e=="string"?{key:e}:e,K=({borderStyle:e="default",columns:r,data:s,formatCell:R,formatHeader:u,maxWidth:D,padding:m=1,showHeader:O=!0,skeleton:c="",wordWrap:E=!1})=>{const p=N(()=>{if(s.length===0)return"";let n;if(r?n=r.map(t=>w(t)):n=Object.keys(s[0]).map(t=>({key:t})),n.length===0)return"";const _=typeof e=="string"?S[e]??a:e,d=n.map(t=>t.width),g=d.some(t=>t!==void 0),f=new T({columnWidths:g?d:void 0,maxWidth:D,showHeader:O,style:{border:_,paddingLeft:m,paddingRight:m},wordWrap:E});if(O){const t=n.map(o=>{const l=o.header??o.key;return u?u(o.key):l});f.setHeaders(t)}for(const[t,o]of s.entries()){const l=n.map(B=>{const i=o[B.key];return R?R(i,B.key,t):i==null?c:String(i)});f.addRow(l)}return f.toString()},[e,r,s,R,u,D,m,O,c,E]);return h(M,{children:p})},q=K;export{q as Table,q as default};
|
package/dist/tabs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as I,jsxs as N}from"react/jsx-runtime";import R from"@visulima/tui/components/box";import E from"@visulima/tui/components/text";import J from"@visulima/tui/hooks/use-input";import{useRef as w,useState as O,useCallback as m,useEffect as Q,useMemo as K,Children as V}from"react";const X=/^\d$/u,Z=o=>o!=null&&typeof o=="object"&&"props"in o&&"name"in o.props,M=o=>{const e=[];for(const n of V.toArray(o))Z(n)&&e.push(n);return e},Y=(o,e)=>o.some(n=>e[n]),D=(o,e,n)=>o?e?{backgroundColor:n?.activeTab?.backgroundColor??"green",color:n?.activeTab?.color??"black"}:{backgroundColor:"gray",color:"black"}:{backgroundColor:void 0,color:void 0};function nr({children:o,colors:e,defaultValue:n,flexDirection:p="row",isFocused:d,keyMap:c,onChange:j,showIndex:$=!0,value:v,width:C}){const a=M(o),s=a.length,b=w(a);b.current=a;const u=p==="column"||p==="column-reverse",g=v!==void 0,[q,z]=O(()=>{const r=v??n;if(r==null||s===0)return 0;const t=a.findIndex(i=>i.props.name===r);return t===-1?0:t}),T=g?Math.max(0,a.findIndex(r=>r.props.name===v)):q,G=m(()=>{},[]),l=g?G:z,f=w(j);f.current=j,Q(()=>{if(g)return;const r=b.current[T];r&&f.current(r.props.name,r)},[]);const B=K(()=>c?.previous??[u?"upArrow":"leftArrow"],[c?.previous,u]),S=K(()=>c?.next??[u?"downArrow":"rightArrow"],[c?.next,u]),_=c?.useNumbers??!0,k=c?.useTab??!0,h=w(T);h.current=T;const y=m(r=>{l(r);const t=b.current[r];t&&f.current(t.props.name,t)},[l]),x=m(()=>{const r=(h.current+1)%s;l(r);const t=b.current[r];t&&f.current(t.props.name,t)},[s,l]),A=m(()=>{const r=(h.current-1+s)%s;l(r);const t=b.current[r];t&&f.current(t.props.name,t)},[s,l]);J(m((r,t)=>{if(Y(B,t)){A();return}if(Y(S,t)){x();return}if(t.tab&&k&&d==null){t.shift?A():x();return}if(_&&t.meta&&X.test(r)){const i=r==="0"?9:Number.parseInt(r,10)-1;i<s&&y(i)}},[B,S,k,_,d,A,x,s,y]),{isActive:d!==!1});const L=typeof C=="number"?C:6,H=K(()=>u?"─".repeat(L):" | ",[u,L]);return I(R,{flexDirection:p,width:C,children:a.map((r,t)=>{const{name:i}=r.props,U=D(T===t,d!==!1,e);let W=null;return $&&(W=N(E,{color:"grey",children:[t+1,"."," "]})),N(R,{flexDirection:p,children:[t!==0&&I(E,{color:"dim",children:H}),N(R,{children:[W,I(E,{backgroundColor:U.backgroundColor,color:U.color,children:r})]})]},i)})})}export{nr as Tabs,nr as default};
|
package/dist/tag-input.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as $,jsx as s}from"react/jsx-runtime";import j from"@visulima/tui/components/box";import c from"@visulima/tui/components/text";import D from"@visulima/tui/hooks/use-focus";import _ from"@visulima/tui/hooks/use-input";import{useState as R,useRef as w,useCallback as a}from"react";const B=[],G=[","," "];function X({accentColor:l="blue",autoFocus:S=!1,dedupe:m=!0,defaultValue:x=B,isDisabled:g=!1,max:f,onChange:h,onSubmit:p,placeholder:C="Add tags…",separators:A=G,value:v}){const{isFocused:d}=D({autoFocus:S,isActive:!g}),T=v!==void 0,[F,I]=R(x),[n,o]=R(""),e=v??F,b=w(h);b.current=h;const i=a(t=>{T||I(t),b.current?.(t)},[T]),u=a(t=>{const r=t.trim();if(r.length!==0&&!(f!==void 0&&e.length>=f)){if(m&&e.includes(r)){o("");return}i([...e,r]),o("")}},[m,f,i,e]),P=a((t,r)=>{if(r.return){n.trim().length>0?u(n):p?.(e);return}if((r.backspace||r.delete)&&n.length===0){e.length>0&&i(e.slice(0,-1));return}if(r.backspace||r.delete){o(n.slice(0,-1));return}if(A.includes(t)){u(n);return}t.length>0&&t.codePointAt(0)>=32&&o(`${n}${t}`)},[u,n,p,A,i,e]);_(P,{isActive:d&&!g});const E=e.length===0&&n.length===0;return $(j,{borderColor:d?l:void 0,borderStyle:"round",flexWrap:"wrap",gap:1,paddingX:1,children:[e.map((t,r)=>s(c,{backgroundColor:l,children:` ${t} `},r)),E?s(c,{dimColor:!0,children:C}):s(c,{children:n}),d&&!E?s(c,{color:l,children:"▏"}):void 0]})}export{X as TagInput,X as default};
|
package/dist/tag.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as u,jsxs as d,Fragment as i}from"react/jsx-runtime";import n from"@visulima/tui/components/box";import t from"@visulima/tui/components/text";function s({children:o,color:e="blue",icon:r,variant:l="subtle"}){return l==="outline"?u(n,{borderColor:e,borderStyle:"round",paddingX:1,children:d(t,{color:e,children:[r===void 0?void 0:d(i,{children:[r," "]}),o]})}):l==="solid"?d(t,{backgroundColor:e,color:"black",children:[" ",r===void 0?void 0:d(i,{children:[r," "]}),o," "]}):d(t,{color:e,children:[r===void 0?void 0:d(i,{children:[r," "]}),o]})}export{s as Tag,s as default};
|
package/dist/text-input.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as d,jsxs as A}from"react/jsx-runtime";import b from"@visulima/tui/components/box";import m from"@visulima/tui/components/text";import B from"@visulima/tui/hooks/use-input";import{isInsertableInput as K}from"@visulima/tui/input";import{useState as j,useRef as p,useCallback as P}from"react";const $=/\S+\s*$/,I=(n,e)=>n.length===0||!e?void 0:e.find(t=>t.startsWith(n))?.slice(n.length)??void 0,D=-1,q=(n,e,r,t)=>e.leftArrow?Math.max(0,r-1):e.home||e.ctrl&&n==="a"?0:e.end||e.ctrl&&n==="e"?t:D,z=(n,e,r,t)=>{if(e.backspace&&t>0)return[r.slice(0,t-1)+r.slice(t),t-1];if(e.delete&&t<r.length)return[r.slice(0,t)+r.slice(t+1),t];if(e.ctrl&&n==="u")return[r.slice(t),0];if(e.ctrl&&n==="k")return[r.slice(0,t),t];if(e.ctrl&&n==="w"){const s=r.slice(0,t).replace($,"");return[s+r.slice(t),s.length]}};function Y({defaultValue:n="",isDisabled:e=!1,mask:r=!1,onChange:t,onSubmit:w,placeholder:s,suggestions:R}){const[f,v]=j(n),[a,u]=j(n.length),N=p(f);N.current=f;const S=p(a);S.current=a;const g=p(t);g.current=t;const T=p(w);T.current=w;const _=I(f,R),H=P((C,h)=>{const{current:l}=S,c=N.current;if(h.return){const i=I(c,R),o=i?c+i:c;i&&(v(o),u(o.length),g.current?.(o)),T.current?.(o);return}if(h.escape)return;if(h.rightArrow){const i=I(c,R);if(l===c.length&&i){const o=c+i;v(o),u(o.length),g.current?.(o);return}u(Math.min(c.length,l+1));return}const E=q(C,h,l,c.length);if(E!==D){u(E);return}const L=z(C,h,c,l);if(L){const[i,o]=L;v(i),u(o),g.current?.(i);return}if(K(C,h)){const i=c.slice(0,l)+C+c.slice(l);v(i),u(l+C.length),g.current?.(i)}},[R]);B(H,{isActive:!e});const x=r?"*".repeat(f.length):f,M=x.slice(0,a),O=x[a],W=x.slice(a+1);return e?d(b,{children:d(m,{dimColor:!0,children:x||s||""})}):f.length===0&&s?A(b,{children:[d(m,{dimColor:!0,inverse:!0,children:s[0]}),d(m,{dimColor:!0,children:s.slice(1)})]}):A(b,{children:[A(m,{children:[M,d(m,{inverse:!0,children:O??" "}),W]}),_?d(m,{dimColor:!0,children:_}):void 0]})}export{Y as TextInput,Y as default};
|
package/dist/textarea.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as l,jsxs as m,Fragment as
|
|
2
|
-
`).slice(0,
|
|
1
|
+
import{jsx as l,jsxs as m,Fragment as A}from"react/jsx-runtime";import C from"@visulima/tui/components/box";import c from"@visulima/tui/components/text";import F from"@visulima/tui/hooks/use-clipboard";import P from"@visulima/tui/hooks/use-input";import Z from"@visulima/tui/hooks/use-paste";import q from"@visulima/tui/hooks/use-text-buffer";import{isInsertableInput as z}from"@visulima/tui/input";import{useRef as x,useState as G,useEffect as M,useMemo as J,useCallback as O}from"react";const K=(n,o)=>o.line<n.line||o.line===n.line&&o.col<n.col?{endCol:n.col,endLine:n.line,startCol:o.col,startLine:o.line}:{endCol:o.col,endLine:o.line,startCol:n.col,startLine:n.line};function rr({defaultValue:n="",isDisabled:o=!1,isFocused:g=!0,maxRows:d,onChange:p,onSubmit:f,placeholder:v,rows:h=5,showLineNumbers:a=!1,tabSize:L=2}){const i=q(n),S=x(i);S.current=i;const{copy:u}=F(),[s,b]=G(0),R=x(p);R.current=p;const w=x(f);w.current=f;const B=x(n);M(()=>{i.value!==B.current&&(B.current=i.value,R.current?.(i.value))},[i.value]);const T=J(()=>d?Math.min(Math.max(h,i.lines.length),d):h,[h,d,i.lines.length]);M(()=>{b(t=>i.cursor.line<t?i.cursor.line:i.cursor.line>=t+T?i.cursor.line-T+1:t)},[i.cursor.line,T]);const j=O((t,r)=>{const e=S.current;if(r.return&&(r.meta||r.ctrl)){w.current?.(e.value);return}if(r.return){e.newline();return}if(r.escape){e.clearSelection();return}if(r.tab){e.insert(" ".repeat(L));return}if(r.ctrl&&t==="z"){e.undo();return}if(r.ctrl&&(t==="y"||r.shift&&t==="Z")){e.redo();return}if(r.ctrl&&t==="c"&&e.hasSelection()){u(e.getSelectedText());return}if(r.ctrl&&(t==="A"||t==="a"&&r.shift)){e.selectAll();return}if(r.upArrow){e.moveCursor("up",r.shift);return}if(r.downArrow){e.moveCursor("down",r.shift);return}if(r.leftArrow){e.moveCursor("left",r.shift);return}if(r.rightArrow){e.moveCursor("right",r.shift);return}if(r.home){r.ctrl?e.moveToStart(r.shift):e.moveToLineStart(r.shift);return}if(r.end){r.ctrl?e.moveToEnd(r.shift):e.moveToLineEnd(r.shift);return}if(r.ctrl&&t==="a"){e.moveToLineStart(r.shift);return}if(r.ctrl&&t==="e"){e.moveToLineEnd(r.shift);return}if(r.backspace){e.deleteBack();return}if(r.delete){e.deleteForward();return}if(r.ctrl&&t==="u"){e.deleteToLineStart();return}if(r.ctrl&&t==="k"){e.deleteToLineEnd();return}if(r.ctrl&&t==="w"){e.deleteWord();return}z(t,r)&&(e.hasSelection()?e.replaceSelection(t):e.insert(t))},[u,L]);P(j,{isActive:g&&!o});const H=O(t=>{const r=S.current;r.hasSelection()?r.replaceSelection(t):r.insert(t)},[]);Z(H,{isActive:g&&!o});const I=i.lines.slice(s,s+T),E=a?String(i.lines.length).length+1:0,W=i.anchor?K(i.cursor,i.anchor):null;if(o)return l(C,{flexDirection:"column",children:I.map((t,r)=>{const e=s+r;return m(C,{children:[a?m(c,{dimColor:!0,children:[String(e+1).padStart(E)," "]}):void 0,l(c,{dimColor:!0,children:t||(e===0&&v?v:"")})]},e)})});if(i.value.length===0&&v){const t=v.split(`
|
|
2
|
+
`).slice(0,T);return l(C,{flexDirection:"column",children:t.map((r,e)=>m(C,{children:[a?m(c,{dimColor:!0,children:[String(e+1).padStart(E)," "]}):void 0,e===0?m(c,{children:[l(c,{dimColor:!0,inverse:!0,children:r[0]??" "}),l(c,{dimColor:!0,children:r.slice(1)})]}):l(c,{dimColor:!0,children:r})]},e))})}return l(C,{flexDirection:"column",children:I.map((t,r)=>{const e=s+r,D=e===i.cursor.line;return m(C,{children:[a?m(c,{dimColor:!D,children:[String(e+1).padStart(E)," "]}):void 0,l(c,{children:Q(t,e,i.cursor,W)})]},e)})})}function Q(n,o,g,d){const p=o===g.line,f=p?g.col:-1,v=d&&o>=d.startLine&&o<=d.endLine;if(!v&&!p)return l(A,{children:n});if(!v){const u=n.slice(0,f),s=n[f],b=n.slice(f+1);return m(A,{children:[u,l(c,{inverse:!0,children:s??" "}),b]})}const h=o===d.startLine?d.startCol:0,a=o===d.endLine?d.endCol:n.length,L=n.slice(0,h),i=n.slice(h,a),S=n.slice(a);if(p&&(f<h||f>=a)){const u=[];let s=0;return f<h?(u.push(l(c,{children:n.slice(0,f)},s++)),u.push(l(c,{inverse:!0,children:n[f]??" "},s++)),u.push(l(c,{children:n.slice(f+1,h)},s++)),u.push(l(c,{inverse:!0,children:i},s++)),u.push(l(c,{children:S},s++))):(u.push(l(c,{children:L},s++)),u.push(l(c,{inverse:!0,children:i},s++)),u.push(l(c,{children:n.slice(a,f)},s++)),u.push(l(c,{inverse:!0,children:n[f]??" "},s++)),u.push(l(c,{children:n.slice(f+1)},s++))),l(A,{children:u})}return m(A,{children:[L,l(c,{inverse:!0,children:i}),S]})}export{rr as Textarea,rr as default};
|
package/dist/thinking-block.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as p,jsx as e}from"react/jsx-runtime";import n from"@visulima/tui/components/box";import r from"@visulima/tui/components/text";import j from"@visulima/tui/hooks/use-focus";import B from"@visulima/tui/hooks/use-input";import{useState as C,useCallback as u}from"react";function E({accentColor:i="magenta",autoFocus:m=!1,children:f,defaultExpanded:x=!0,expanded:d,label:h="Thinking",onToggle:l,streaming:g=!1}){const{isFocused:s}=j({autoFocus:m}),c=d!==void 0,[v,k]=C(x),o=d??v,a=u(()=>{const t=!o;c||k(t),l?.(t)},[o,c,l]),b=u((t,T)=>{(t===" "||T.return)&&a()},[a]);return B(b,{isActive:s}),p(n,{borderColor:i,borderStyle:"round",flexDirection:"column",paddingX:1,children:[p(n,{gap:1,children:[e(r,{color:i,children:o?"▾":"▸"}),e(r,{color:i,italic:!0,children:h}),g?e(r,{color:i,children:"…"}):void 0,s?e(r,{dimColor:!0,children:o?"(space to collapse)":"(space to expand)"}):void 0]}),o?e(n,{marginTop:1,children:e(r,{dimColor:!0,italic:!0,children:f})}):void 0]})}export{E as ThinkingBlock,E as default};
|
package/dist/time-picker.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as H,jsx as l,Fragment as K}from"react/jsx-runtime";import L from"@visulima/tui/components/box";import h from"@visulima/tui/components/text";import O from"@visulima/tui/hooks/use-focus";import Q from"@visulima/tui/hooks/use-input";import{useState as N,useRef as _,useCallback as I}from"react";const W=/^\d$/,Y={hours:0,minutes:0};function m(d,a){return a===0?0:(d%a+a)%a}const g=d=>String(d).padStart(2,"0");function nr({accentColor:d="blue",autoFocus:a=!1,defaultValue:k=Y,hour12:t=!1,isDisabled:f=!1,onChange:T,onSubmit:F,showSeconds:M=!1,value:R}){const{isFocused:x}=O({autoFocus:a,isActive:!f}),S=R!==void 0,[B,G]=N(k),r=R??B,p=["hours","minutes",...M?["seconds"]:[],...t?["ampm"]:[]],[U,b]=N(0),c=p[Math.min(U,p.length-1)],j=_(T);j.current=T;const u=_(null),o=I(e=>{S||G(e),j.current?.(e)},[S]),w=I((e,n)=>{switch(e){case"hours":{o({...r,hours:m(r.hours+n,24)});break}case"minutes":{o({...r,minutes:m(r.minutes+n,60)});break}case"seconds":{o({...r,seconds:m((r.seconds??0)+n,60)});break}default:o({...r,hours:m(r.hours+12,24)})}},[r,o]),E=I((e,n)=>{const s=u.current,P=s!==null&&s.segment===e;if(e==="minutes"||e==="seconds"){let i=P?s.value*10+n:n;i>59&&(i=n),u.current={segment:e,value:i},o(e==="minutes"?{...r,minutes:i}:{...r,seconds:i});return}const J=t?12:23;let v=P?s.value*10+n:n;if(v>J&&(v=n),u.current={segment:e,value:v},t){const i=r.hours>=12;o({...r,hours:v%12+(i?12:0)})}else o({...r,hours:v})},[r,t,o]),X=I((e,n)=>{if(n.leftArrow){u.current=null,b(s=>m(s-1,p.length));return}if(n.rightArrow){u.current=null,b(s=>m(s+1,p.length));return}if(n.upArrow){u.current=null,w(c,1);return}if(n.downArrow){u.current=null,w(c,-1);return}if(n.return){F?.(r);return}if(W.test(e)){c!=="ampm"&&E(c,Number.parseInt(e,10));return}(e==="a"||e==="p")&&t&&(u.current=null,r.hours>=12!==(e==="p")&&o({...r,hours:m(r.hours+12,24)}))},[w,E,r,c,t,F,p.length,o]);Q(X,{isActive:x&&!f});const $=r.hours%12===0?12:r.hours%12,q=t?$:r.hours,y=r.hours>=12?"PM":"AM";function A(e){return x&&c===e?d:void 0}function C(e){return x&&c===e}return H(L,{borderColor:x?d:void 0,borderStyle:"round",paddingX:1,children:[l(h,{color:A("hours"),dimColor:f,inverse:C("hours"),children:g(q)}),l(h,{dimColor:!0,children:":"}),l(h,{color:A("minutes"),dimColor:f,inverse:C("minutes"),children:g(r.minutes)}),M?H(K,{children:[l(h,{dimColor:!0,children:":"}),l(h,{color:A("seconds"),dimColor:f,inverse:C("seconds"),children:g(r.seconds??0)})]}):void 0,t?l(L,{marginLeft:1,children:l(h,{color:A("ampm"),dimColor:f,inverse:C("ampm"),children:y})}):void 0]})}export{nr as TimePicker,nr as default};
|
package/dist/timer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as n}from"react/jsx-runtime";import f from"@visulima/tui/components/text";import g from"@visulima/tui/hooks/use-timer";import{formatDuration as l}from"@visulima/tui/utils";import{useImperativeHandle as u}from"react";const j=({autoStart:r,bold:e,color:o,duration:m,format:s=l,interval:i,onTimeout:a,ref:p})=>{const t=g({autoStart:r,duration:m,interval:i,onTimeout:a});return u(p,()=>({reset:t.reset,start:t.start,stop:t.stop,toggle:t.toggle}),[t.reset,t.start,t.stop,t.toggle]),n(f,{bold:e,color:o,children:s(t.remaining)})};export{j as Timer,j as default};
|
package/dist/toast.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as f,jsx as t}from"react/jsx-runtime";import u from"@visulima/tui/components/box";import n from"@visulima/tui/components/text";import{useState as b,useRef as h,useEffect as I}from"react";import{V as R}from"./packem_shared/variant-config-BnAmf1rP.js";function G({children:m,duration:r=4e3,onDismiss:i,title:s,variant:d="info",visible:e,width:a}){const[p,x]=b(!0),o=e??p,c=h(i);if(c.current=i,I(()=>{if(e!==void 0||r<=0||!o)return;const V=setTimeout(()=>{x(!1),c.current?.()},r);return()=>{clearTimeout(V)}},[r,e,o]),!o)return null;const{color:l,icon:T}=R[d];return f(u,{borderColor:l,borderStyle:"round",gap:1,paddingX:1,width:a,children:[t(n,{color:l,children:T}),f(u,{flexDirection:"column",flexGrow:1,children:[s===void 0?void 0:t(n,{bold:!0,children:s}),t(n,{children:m})]})]})}export{G as Toast,G as default};
|
package/dist/token-usage.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as c,jsx as
|
|
1
|
+
import{jsxs as c,jsx as o}from"react/jsx-runtime";import a from"@visulima/tui/components/box";import e from"@visulima/tui/components/text";function g(r){return r>.9?"red":r>.7?"yellow":"green"}const t=r=>r>=1e6?`${(r/1e6).toFixed(1)}M`:r>=1e3?`${(r/1e3).toFixed(1)}k`:String(r);function j({barWidth:r=20,contextLimit:l,input:d=0,inputColor:f="cyan",output:h=0,outputColor:s="magenta"}){const n=d+h;if(l!==void 0&&l>0){const i=Math.min(1,n/l),u=Math.round(i*r),M=g(i);return c(a,{gap:1,children:[o(e,{color:M,children:"█".repeat(u)}),o(e,{dimColor:!0,children:"░".repeat(Math.max(0,r-u))}),c(e,{children:[t(n),"/",t(l)," ","(",Math.round(i*100),"%)"]})]})}const m=n===0?0:Math.round(d/n*r),p=Math.max(0,r-m);return c(a,{gap:1,children:[c(a,{children:[o(e,{color:f,children:"█".repeat(m)}),o(e,{color:s,children:"█".repeat(p)})]}),o(e,{color:f,children:`↑${t(d)}`}),o(e,{color:s,children:`↓${t(h)}`}),o(e,{dimColor:!0,children:`Σ${t(n)}`})]})}export{j as TokenUsage,j as default};
|
package/dist/tool-call.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as d,jsx as
|
|
1
|
+
import{jsxs as d,jsx as n}from"react/jsx-runtime";import t from"@visulima/tui/components/box";import e from"@visulima/tui/components/text";const f={error:{color:"red",icon:"✖"},pending:{color:"gray",icon:"○"},running:{color:"yellow",icon:"◐"},success:{color:"green",icon:"✔"}},s=o=>o===void 0?"":typeof o=="string"?o:Object.entries(o).map(([i,r])=>`${i}=${typeof r=="string"?r:JSON.stringify(r)}`).join(" ");function x({args:o,children:i,name:r,status:m="pending"}){const c=f[m],l=s(o);return d(t,{flexDirection:"column",children:[d(t,{gap:1,children:[n(e,{color:c.color,children:c.icon}),n(e,{bold:!0,children:r}),l.length>0?n(e,{dimColor:!0,children:l}):void 0]}),i===void 0?void 0:n(t,{marginLeft:2,children:n(e,{dimColor:!0,children:i})})]})}export{x as ToolCall,x as default};
|
package/dist/tooltip.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as i,jsxs as
|
|
1
|
+
import{jsx as i,jsxs as x}from"react/jsx-runtime";import t from"@visulima/tui/components/box";import c from"@visulima/tui/components/text";const g={bottom:{flexDirection:"column",orderFirst:!1},left:{flexDirection:"row",orderFirst:!0},right:{flexDirection:"row",orderFirst:!1},top:{flexDirection:"column",orderFirst:!0}};function a({children:d,color:e="gray",content:r,isVisible:f=!0,placement:o="right"}){const{flexDirection:s,orderFirst:l}=g[o],n=f?i(t,{borderColor:e,borderStyle:"round",flexShrink:0,marginLeft:o==="right"?1:0,marginRight:o==="left"?1:0,paddingX:1,children:typeof r=="string"?i(c,{color:e,children:r}):r}):void 0;return x(t,{alignItems:"center",flexDirection:s,children:[l?n:void 0,i(t,{children:d}),l?void 0:n]})}export{a as Tooltip,a as default};
|
package/dist/transition.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as n}from"react/jsx-runtime";import i from"@visulima/tui/components/box";import j from"@visulima/tui/components/text";import{useState as D,useRef as f,useEffect as E}from"react";const A=(e,t)=>e>=1?n(i,{children:t}):e<=0?n(i,{}):n(i,{children:typeof t=="string"?n(j,{dimColor:e<.7,children:t}):t}),B=(e,t)=>Math.max(0,Math.min(t,Math.round((1-e)*t))),l=(e,t)=>(o,u,m)=>{const r=B(o,m);return o>=1?n(i,{children:u}):o<=0?n(i,{}):e==="x"?n(i,{paddingLeft:t===1?r:0,paddingRight:t===-1?r:0,children:u}):n(i,{flexDirection:"column",paddingBottom:t===-1?r:0,paddingTop:t===1?r:0,children:u})},I=(e,t,o)=>{if(e>=1)return n(i,{children:t});if(e<=0)return n(i,{});const u=Math.max(0,Math.min(o,Math.round(e*o)));return n(i,{flexDirection:"column",height:u,overflowY:"hidden",children:t})},K={fade:A,reveal:I,"slide-down":l("y",-1),"slide-left":l("x",-1),"slide-right":l("x",1),"slide-up":l("y",1)},O=(e,t)=>e?t>=1?"entered":"entering":t<=0?"exited":"exiting";function C({children:e,distance:t=4,duration:o=240,onExit:u,preset:m="fade",show:r=!0,tickInterval:M=30}){const[x,y]=D(r?1:0),R=f(r?1:0),g=f(Date.now()),s=f(r?1:0),c=f(!r),p=f(u);p.current=u;const[T,h]=D(0);if(E(()=>{const a=r?1:0;R.current!==a&&(R.current=a,g.current=Date.now(),s.current=x,c.current=!1,h(d=>d+1))},[r]),E(()=>{const a=R.current;if(s.current===a){a===0&&!c.current&&(c.current=!0,p.current?.());return}const d=setInterval(()=>{const S=Date.now()-g.current,v=o<=0?1:Math.min(1,S/o),b=s.current+(a-s.current)*v;y(b),v>=1&&(clearInterval(d),a===0&&!c.current&&(c.current=!0,p.current?.()))},M);return()=>{clearInterval(d)}},[T,o,M]),O(r,x)==="exited"&&!r)return null;const P=K[m];return P(x,e,t)}const _=Object.assign(C,{isAnimatable:!0});export{C as Transition,_ as default};
|
package/dist/tree-select.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as v,jsxs as b}from"react/jsx-runtime";import B from"@visulima/tui/components/box";import x from"@visulima/tui/components/text";import G from"@visulima/tui/hooks/use-focus";import J from"@visulima/tui/hooks/use-input";import{useState as C,useMemo as H,useRef as K,useCallback as g}from"react";const N=[];function L(s,o){return o===0?0:(s%o+o)%o}function O(s,o,i){return s?o?"▾":"▸":i?"◉":"◯"}const M=(s,o,i,c)=>{for(const l of s){const u=l.children!==void 0&&l.children.length>0;c.push({depth:i,hasChildren:u,node:l}),u&&o.has(l.value)&&M(l.children,o,i+1,c)}};function D({accentColor:s="blue",autoFocus:o=!1,defaultValue:i=N,isDisabled:c=!1,nodes:l,onChange:u,onSubmit:w,selectionMode:A="single",value:h}){const{isFocused:S}=G({autoFocus:o,isActive:!c}),E=h!==void 0,[F,P]=C(i),a=H(()=>new Set(h??F),[h,F]),[m,U]=C(()=>new Set),[p,T]=C(0),j=K(u);j.current=u;const d=H(()=>{const e=[];return M(l,m,0,e),e},[m,l]),I=g(e=>{const r=[...e];E||P(r),j.current?.(r)},[E]),f=g((e,r)=>{U(t=>{const n=new Set(t);return r??!n.has(e)?n.add(e):n.delete(e),n})},[]),Y=g((e,r)=>{const t=d[p];if(r.upArrow){T(n=>L(n-1,d.length));return}if(r.downArrow){T(n=>L(n+1,d.length));return}if(t!==void 0){if(r.rightArrow&&t.hasChildren){f(t.node.value,!0);return}if(r.leftArrow&&t.hasChildren){f(t.node.value,!1);return}if(e===" "){if(t.hasChildren){f(t.node.value);return}const n=A==="single"?new Set:new Set(a);n.has(t.node.value)?n.delete(t.node.value):n.add(t.node.value),I(n);return}r.return&&w?.([...a])}},[p,I,w,d,a,A,f]);return J(Y,{isActive:S&&!c}),v(B,{flexDirection:"column",children:d.map((e,r)=>{const t=S&&r===p,n=a.has(e.node.value),R=" ".repeat(e.depth),_=O(e.hasChildren,m.has(e.node.value),n),q=!e.hasChildren&&n?s:void 0;return b(B,{children:[v(x,{color:t?s:void 0,children:t?"❯":" "}),v(x,{children:R}),b(x,{color:q,dimColor:c,children:[_," ",e.node.label]})]},r)})})}export{D as TreeSelect,D as default};
|