tekivex-ui 2.5.11 → 2.5.12
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/dist/TkxForm-1KDzoniV.cjs +12 -0
- package/dist/TkxForm-9-W3Nl6m.js +314 -0
- package/dist/charts.cjs +1 -1
- package/dist/charts.js +543 -507
- package/dist/chunk-Bmb41Sf3.cjs +1 -0
- package/dist/headless.cjs +1 -1
- package/dist/headless.js +428 -447
- package/dist/hooks-6pRsPOyG.js +58 -0
- package/dist/hooks-mivgRljH.cjs +1 -0
- package/dist/i18n.cjs +1 -1
- package/dist/i18n.js +728 -752
- package/dist/index.cjs +26 -26
- package/dist/index.js +16102 -16619
- package/dist/quantum.cjs +14 -16
- package/dist/quantum.js +2473 -2279
- package/dist/realtime.cjs +4 -10
- package/dist/realtime.js +804 -958
- package/dist/src/components/TkxClock.d.ts.map +1 -1
- package/dist/src/components/TkxForm.d.ts.map +1 -1
- package/dist/src/components/TkxLiveFeed.d.ts +1 -1
- package/dist/src/components/TkxLiveLog.d.ts +1 -1
- package/dist/src/components/TkxRealTimeChart.d.ts +1 -1
- package/dist/src/components/TkxTooltip.d.ts.map +1 -1
- package/dist/src/components/TkxTypography.d.ts +5 -5
- package/dist/src/components/TkxTypography.d.ts.map +1 -1
- package/dist/tekivex-ui.css +2 -0
- package/dist/themes-BbJanqiC.js +498 -0
- package/dist/themes-CMq2vWXj.cjs +2 -0
- package/dist/tkx-0oAwZqgL.cjs +4 -0
- package/dist/tkx-DQkvHdE5.js +1172 -0
- package/package.json +16 -16
- package/src/components/TkxClock.tsx +2 -2
- package/src/components/TkxForm.tsx +4 -2
- package/src/components/TkxTooltip.tsx +7 -5
- package/src/components/TkxTypography.tsx +2 -2
- package/dist/TkxForm-2tGLCPH6.js +0 -326
- package/dist/TkxForm-C2VqR2wC.cjs +0 -12
- package/dist/index-BgHMZe4Z.js +0 -66
- package/dist/index-Bt5y50Qa.cjs +0 -1
- package/dist/index-DnqXtpwV.cjs +0 -2
- package/dist/index-iUUHRxqJ.js +0 -515
- package/dist/security-C-ZPGoyG.js +0 -97
- package/dist/security-Uf0mjv8o.cjs +0 -1
- package/dist/style.css +0 -1
- package/dist/tkx-BtHzWKTl.js +0 -1112
- package/dist/tkx-C7GvVUE9.cjs +0 -4
package/dist/realtime.cjs
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
@keyframes tkx-feed-slide-in {
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./chunk-Bmb41Sf3.cjs`);const e=require(`./themes-CMq2vWXj.cjs`),t=require(`./tkx-0oAwZqgL.cjs`);let n=require(`react`);var r=64,i=5,a=!1;function o(){if(a||typeof document>`u`)return;a=!0;let e=document.createElement(`style`);e.id=`tkx-live-feed-styles`,e.textContent=`@keyframes tkx-feed-slide-in {
|
|
3
2
|
from { transform: translateY(-20px); opacity: 0; }
|
|
4
3
|
to { transform: translateY(0); opacity: 1; }
|
|
5
4
|
}
|
|
6
5
|
.tkx-feed-item-new {
|
|
7
6
|
animation: tkx-feed-slide-in 0.25s ease-out both;
|
|
8
|
-
}
|
|
9
|
-
`.trim(),document.head.appendChild(e)}function ke(e){const n=Date.now()-e;return n<1e4?"just now":n<6e4?`${Math.floor(n/1e3)}s ago`:n<36e5?`${Math.floor(n/6e4)}m ago`:n<864e5?`${Math.floor(n/36e5)}h ago`:`${Math.floor(n/864e5)}d ago`}function we(e,n){switch(e){case"info":return n.info;case"success":return n.success;case"warning":return n.warning;case"error":return n.danger;default:return n.border}}function Me(e){return e?e.split(" ").map(n=>n[0]??"").slice(0,2).join("").toUpperCase():"?"}function $e({item:e,isNew:n,showTimestamps:r,onItemClick:o,renderItem:a,theme:s,style:f}){const u=we(e.type,s);if(a)return t.createElement("div",{style:f,className:n?"tkx-feed-item-new":void 0},a(e));const x={...f,display:"flex",alignItems:"center",gap:10,padding:"0 12px",borderLeft:`3px solid ${u}`,cursor:o?"pointer":"default",boxSizing:"border-box",height:O,background:s.surface,transition:"background 0.15s"};return t.createElement("div",{style:x,className:n?"tkx-feed-item-new":void 0,onClick:o?()=>o(e):void 0,role:o?"button":void 0,tabIndex:o?0:void 0,onKeyDown:o?l=>{(l.key==="Enter"||l.key===" ")&&o(e)}:void 0},t.createElement("div",{style:{width:36,height:36,borderRadius:"50%",background:u,display:"flex",alignItems:"center",justifyContent:"center",fontSize:13,fontWeight:700,color:s.bg,flexShrink:0,overflow:"hidden"}},e.avatar?t.createElement("img",{src:e.avatar,alt:e.author??"",style:{width:"100%",height:"100%",objectFit:"cover"}}):Me(e.author)),t.createElement("div",{style:{flex:1,minWidth:0}},t.createElement("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:2}},e.author&&t.createElement("span",{style:{fontWeight:600,fontSize:13,color:s.text}},z.sanitizeString(e.author)),e.meta&&t.createElement("span",{style:{fontSize:11,color:s.textMuted,background:s.surfaceAlt,borderRadius:4,padding:"1px 5px"}},z.sanitizeString(e.meta))),t.createElement("div",{style:{fontSize:13,color:s.text,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},z.sanitizeString(e.content))),r&&t.createElement("div",{style:{fontSize:11,color:s.textMuted,flexShrink:0}},ke(e.timestamp)))}function Te({items:e,maxItems:n=100,height:r=400,autoScroll:o=!0,showTimestamps:a=!0,onItemClick:s,emptyMessage:f="No activity yet.",pauseOnHover:u=!0,renderItem:x}){const l=K.useTheme();Ee();const y=t.useRef(null),[S,E]=t.useState(0),[v,m]=t.useState(!1),[C,N]=t.useState(new Set),D=t.useRef([]),R=t.useMemo(()=>e.slice(-n),[e,n]),M=typeof r=="number"?r:400,k=R.length*O;t.useEffect(()=>{const T=new Set(D.current.map(I=>I.id)),b=R.filter(I=>!T.has(I.id)).map(I=>I.id);if(b.length>0){N(A=>{const F=new Set(A);return b.forEach(H=>F.add(H)),F});const I=window.setTimeout(()=>{N(A=>{const F=new Set(A);return b.forEach(H=>F.delete(H)),F})},400);return()=>clearTimeout(I)}},[R]),t.useEffect(()=>{D.current=R},[R]);const B=o&&!(u&&v);t.useEffect(()=>{if(!B||!y.current)return;const T=y.current;(T.scrollHeight-T.scrollTop-T.clientHeight<O*3||R.length<=5)&&(T.scrollTop=T.scrollHeight)},[R.length,B]);const V=t.useCallback(()=>{y.current&&E(y.current.scrollTop)},[]),W=Math.max(0,Math.floor(S/O)-se),g=Math.min(R.length-1,Math.ceil((S+M)/O)+se),$={position:"relative",overflow:"auto",height:typeof r=="number"?`${r}px`:r,background:l.bg,border:`1px solid ${l.border}`,borderRadius:8,boxSizing:"border-box"},P={position:"relative",height:k,minHeight:"100%"};if(R.length===0)return t.createElement("div",{style:{...$,display:"flex",alignItems:"center",justifyContent:"center"}},t.createElement("span",{style:{color:l.textMuted,fontSize:14}},z.sanitizeString(f)));const L=[];for(let T=W;T<=g;T++){const b=R[T];b&&L.push(t.createElement($e,{key:b.id,item:b,isNew:C.has(b.id),showTimestamps:a,onItemClick:s,renderItem:x,theme:l,style:{position:"absolute",top:T*O,left:0,right:0}}))}return t.createElement("div",{ref:y,style:$,onScroll:V,onMouseEnter:u?()=>m(!0):void 0,onMouseLeave:u?()=>m(!1):void 0,"aria-label":"Live feed",role:"feed"},t.createElement("div",{style:P},...L))}let le=!1;function ze(){if(le||typeof document>"u")return;le=!0;const e=document.createElement("style");e.id="tkx-live-metrics-styles",e.textContent=`
|
|
10
|
-
@keyframes tkx-metric-pulse {
|
|
7
|
+
}`,document.head.appendChild(e)}function s(e){let t=Date.now()-e;return t<1e4?`just now`:t<6e4?`${Math.floor(t/1e3)}s ago`:t<36e5?`${Math.floor(t/6e4)}m ago`:t<864e5?`${Math.floor(t/36e5)}h ago`:`${Math.floor(t/864e5)}d ago`}function c(e,t){switch(e){case`info`:return t.info;case`success`:return t.success;case`warning`:return t.warning;case`error`:return t.danger;default:return t.border}}function l(e){return e?e.split(` `).map(e=>e[0]??``).slice(0,2).join(``).toUpperCase():`?`}function u({item:e,isNew:i,showTimestamps:a,onItemClick:o,renderItem:u,theme:d,style:f}){let p=c(e.type,d);return u?(0,n.createElement)(`div`,{style:f,className:i?`tkx-feed-item-new`:void 0},u(e)):(0,n.createElement)(`div`,{style:{...f,display:`flex`,alignItems:`center`,gap:10,padding:`0 12px`,borderLeft:`3px solid ${p}`,cursor:o?`pointer`:`default`,boxSizing:`border-box`,height:r,background:d.surface,transition:`background 0.15s`},className:i?`tkx-feed-item-new`:void 0,onClick:o?()=>o(e):void 0,role:o?`button`:void 0,tabIndex:o?0:void 0,onKeyDown:o?t=>{(t.key===`Enter`||t.key===` `)&&o(e)}:void 0},(0,n.createElement)(`div`,{style:{width:36,height:36,borderRadius:`50%`,background:p,display:`flex`,alignItems:`center`,justifyContent:`center`,fontSize:13,fontWeight:700,color:d.bg,flexShrink:0,overflow:`hidden`}},e.avatar?(0,n.createElement)(`img`,{src:e.avatar,alt:e.author??``,style:{width:`100%`,height:`100%`,objectFit:`cover`}}):l(e.author)),(0,n.createElement)(`div`,{style:{flex:1,minWidth:0}},(0,n.createElement)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,marginBottom:2}},e.author&&(0,n.createElement)(`span`,{style:{fontWeight:600,fontSize:13,color:d.text}},t.m(e.author)),e.meta&&(0,n.createElement)(`span`,{style:{fontSize:11,color:d.textMuted,background:d.surfaceAlt,borderRadius:4,padding:`1px 5px`}},t.m(e.meta))),(0,n.createElement)(`div`,{style:{fontSize:13,color:d.text,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`}},t.m(e.content))),a&&(0,n.createElement)(`div`,{style:{fontSize:11,color:d.textMuted,flexShrink:0}},s(e.timestamp)))}function d({items:a,maxItems:s=100,height:c=400,autoScroll:l=!0,showTimestamps:d=!0,onItemClick:f,emptyMessage:p=`No activity yet.`,pauseOnHover:m=!0,renderItem:h}){let g=e.f();o();let _=(0,n.useRef)(null),[v,y]=(0,n.useState)(0),[b,x]=(0,n.useState)(!1),[S,C]=(0,n.useState)(new Set),w=(0,n.useRef)([]),T=(0,n.useMemo)(()=>a.slice(-s),[a,s]),E=typeof c==`number`?c:400,D=T.length*r;(0,n.useEffect)(()=>{let e=new Set(w.current.map(e=>e.id)),t=T.filter(t=>!e.has(t.id)).map(e=>e.id);if(t.length>0){C(e=>{let n=new Set(e);return t.forEach(e=>n.add(e)),n});let e=window.setTimeout(()=>{C(e=>{let n=new Set(e);return t.forEach(e=>n.delete(e)),n})},400);return()=>clearTimeout(e)}},[T]),(0,n.useEffect)(()=>{w.current=T},[T]);let O=l&&!(m&&b);(0,n.useEffect)(()=>{if(!O||!_.current)return;let e=_.current;(e.scrollHeight-e.scrollTop-e.clientHeight<r*3||T.length<=5)&&(e.scrollTop=e.scrollHeight)},[T.length,O]);let k=(0,n.useCallback)(()=>{_.current&&y(_.current.scrollTop)},[]),A=Math.max(0,Math.floor(v/r)-i),j=Math.min(T.length-1,Math.ceil((v+E)/r)+i),M={position:`relative`,overflow:`auto`,height:typeof c==`number`?`${c}px`:c,background:g.bg,border:`1px solid ${g.border}`,borderRadius:8,boxSizing:`border-box`},N={position:`relative`,height:D,minHeight:`100%`};if(T.length===0)return(0,n.createElement)(`div`,{style:{...M,display:`flex`,alignItems:`center`,justifyContent:`center`}},(0,n.createElement)(`span`,{style:{color:g.textMuted,fontSize:14}},t.m(p)));let P=[];for(let e=A;e<=j;e++){let t=T[e];t&&P.push((0,n.createElement)(u,{key:t.id,item:t,isNew:S.has(t.id),showTimestamps:d,onItemClick:f,renderItem:h,theme:g,style:{position:`absolute`,top:e*r,left:0,right:0}}))}return(0,n.createElement)(`div`,{ref:_,style:M,onScroll:k,onMouseEnter:m?()=>x(!0):void 0,onMouseLeave:m?()=>x(!1):void 0,"aria-label":`Live feed`,role:`feed`},(0,n.createElement)(`div`,{style:N},...P))}var f=!1;function p(){if(f||typeof document>`u`)return;f=!0;let e=document.createElement(`style`);e.id=`tkx-live-metrics-styles`,e.textContent=`@keyframes tkx-metric-pulse {
|
|
11
8
|
0% { opacity: 1; }
|
|
12
9
|
40% { opacity: 0.4; }
|
|
13
10
|
100% { opacity: 1; }
|
|
@@ -22,8 +19,5 @@
|
|
|
22
19
|
@media (prefers-reduced-motion: reduce) {
|
|
23
20
|
.tkx-metric-shimmer { animation: none; }
|
|
24
21
|
.tkx-metric-pulse { animation: none; }
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.tkx-log-row:hover { filter: brightness(1.12); }
|
|
28
|
-
.tkx-log-highlight { background: #ffbe0b55; border-radius: 2px; padding: 0 1px; }
|
|
29
|
-
`.trim(),document.head.appendChild(e)}function De(e){const n=new Date(e),r=String(n.getHours()).padStart(2,"0"),o=String(n.getMinutes()).padStart(2,"0"),a=String(n.getSeconds()).padStart(2,"0"),s=String(n.getMilliseconds()).padStart(3,"0");return`${r}:${o}:${a}.${s}`}function je(e,n){switch(e){case"debug":return n.textMuted;case"info":return n.info;case"warn":return n.warning;case"error":return n.danger;case"fatal":return n.danger;default:return n.textMuted}}function Be(e,n){return e==="fatal"?`${n.danger}22`:"transparent"}function Ve(e){return`[${e.toUpperCase().padEnd(5)}]`}function Oe(e,n){if(!n)return[e];const r=z.sanitizeString(e),o=z.sanitizeString(n);if(!o)return[r];try{const a=new RegExp(`(${o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"gi");return r.split(a).map((f,u)=>a.test(f)?t.createElement("mark",{key:u,className:"tkx-log-highlight"},f):f)}catch{return[r]}}function Pe({entry:e,showLevel:n,showTimestamp:r,showSource:o,searchQuery:a,monospace:s,isExpanded:f,onToggle:u,onEntryClick:x,theme:l,style:y}){const S=je(e.level,l),E=Be(e.level,l),v=e.metadata&&Object.keys(e.metadata).length>0,m={...y,display:"flex",alignItems:"center",gap:6,padding:"0 10px",fontSize:12,fontFamily:s?'"JetBrains Mono", "Fira Mono", Consolas, monospace':"inherit",cursor:v||x?"pointer":"default",background:E,boxSizing:"border-box",height:U,overflow:"hidden",whiteSpace:"nowrap",borderBottom:`1px solid ${l.border}22`},C=()=>{v&&u(),x&&x(e)};return t.createElement("div",{style:m,className:"tkx-log-row",onClick:C,role:v?"button":void 0,tabIndex:v?0:void 0,onKeyDown:v?N=>{(N.key==="Enter"||N.key===" ")&&u()}:void 0,"aria-expanded":v?f:void 0},r&&t.createElement("span",{style:{color:l.textMuted,flexShrink:0,minWidth:84}},De(e.timestamp)),n&&t.createElement("span",{style:{color:S,flexShrink:0,fontWeight:e.level==="fatal"?700:500,minWidth:56}},Ve(e.level)),o&&e.source&&t.createElement("span",{style:{background:l.surfaceAlt,border:`1px solid ${l.border}`,borderRadius:10,padding:"0 5px",fontSize:10,color:l.textMuted,flexShrink:0,maxWidth:80,overflow:"hidden",textOverflow:"ellipsis"}},z.sanitizeString(e.source)),t.createElement("span",{style:{flex:1,color:l.text,overflow:"hidden",textOverflow:"ellipsis"}},...Oe(e.message,a)),v&&t.createElement("span",{style:{color:l.textMuted,fontSize:10,flexShrink:0}},f?"▲":"▼"))}function Ye({metadata:e,theme:n,style:r}){const o={...r,background:n.surfaceAlt,borderBottom:`1px solid ${n.border}`,padding:"6px 10px 6px 56px",display:"flex",flexWrap:"wrap",gap:6,boxSizing:"border-box"};return t.createElement("div",{style:o},...Object.entries(e).map(([a,s])=>t.createElement("span",{key:a,style:{fontSize:11,fontFamily:"monospace",color:n.textMuted,background:n.surface,border:`1px solid ${n.border}`,borderRadius:4,padding:"1px 6px"}},t.createElement("span",{style:{color:n.info}},`${z.sanitizeString(a)}: `),z.sanitizeString(String(s)))))}function _e({entries:e,maxEntries:n=500,height:r=400,autoScroll:o=!0,showLevel:a=!0,showTimestamp:s=!0,showSource:f=!0,filterLevel:u,searchQuery:x="",monospace:l=!0,onEntryClick:y}){const S=K.useTheme();Ae();const E=t.useRef(null),[v,m]=t.useState(0),[C,N]=t.useState(new Set),[D,R]=t.useState(!1),M=t.useRef(e.length),k=t.useMemo(()=>{let d=e.slice(-n);if(u!==void 0){const c=pe[u];d=d.filter(p=>pe[p.level]>=c)}if(x){const c=x.toLowerCase();d=d.filter(p=>p.message.toLowerCase().includes(c)||(p.source??"").toLowerCase().includes(c))}return d},[e,n,u,x]),B=typeof r=="number"?r:400,V=40,W=t.useMemo(()=>{const d=[];let c=0;for(const p of k)d.push(c),c+=U+(C.has(p.id)?V:0);return d.push(c),d},[k,C]),g=W[W.length-1]??0;t.useEffect(()=>{!o||D||k.length!==M.current&&(M.current=k.length,E.current&&(E.current.scrollTop=E.current.scrollHeight))},[k.length,o,D]);const $=t.useCallback(()=>{if(!E.current)return;const d=E.current,c=d.scrollHeight-d.scrollTop-d.clientHeight<U*2;R(!c),m(d.scrollTop)},[]),P=t.useCallback(d=>{N(c=>{const p=new Set(c);return p.has(d)?p.delete(d):p.add(d),p})},[]);function L(d){let c=0,p=k.length-1;for(;c<p;){const w=c+p>>1;(W[w+1]??0)<=d?c=w+1:p=w}return Math.max(0,c-fe)}function T(d){let c=0,p=k.length-1;for(;c<p;){const w=c+p+1>>1;(W[w]??0)>=d+B?p=w-1:c=w}return Math.min(k.length-1,c+fe)}const b=k.length>0?L(v):0,I=k.length>0?T(v):-1,A={position:"relative",overflow:"auto",height:typeof r=="number"?`${r}px`:r,background:S.bg,border:`1px solid ${S.border}`,borderRadius:8,boxSizing:"border-box"},F={position:"relative",height:g,minHeight:"100%"};if(k.length===0)return t.createElement("div",{style:{...A,display:"flex",alignItems:"center",justifyContent:"center"}},t.createElement("span",{style:{color:S.textMuted,fontSize:13,fontFamily:"monospace"}},"No log entries."));const H=[];for(let d=b;d<=I;d++){const c=k[d];if(!c)continue;const p=W[d]??0,w=C.has(c.id);H.push(t.createElement(Pe,{key:c.id,entry:c,showLevel:a,showTimestamp:s,showSource:f,searchQuery:x,monospace:l,isExpanded:w,onToggle:()=>P(c.id),onEntryClick:y,theme:S,style:{position:"absolute",top:p,left:0,right:0}})),w&&c.metadata&&Object.keys(c.metadata).length>0&&H.push(t.createElement(Ye,{key:`${c.id}-meta`,metadata:c.metadata,theme:S,style:{position:"absolute",top:p+U,left:0,right:0,height:V}}))}return t.createElement("div",{ref:E,style:A,onScroll:$,role:"log","aria-live":"polite","aria-label":"Log viewer"},t.createElement("div",{style:F},...H))}exports.TkxLiveFeed=Te;exports.TkxLiveLog=_e;exports.TkxLiveMetrics=Fe;exports.TkxRealTimeChart=He;
|
|
22
|
+
}`,document.head.appendChild(e)}function m(e,t){if(typeof e==`string`)return e;let n=e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(Number.isInteger(e)?e:e.toFixed(2));return t?`${n}${t}`:n}function h(e,t){switch(e){case`warning`:return t.warning;case`critical`:return t.danger;default:return t.primary}}function g(){let[e,t]=(0,n.useState)(()=>typeof window<`u`?window.matchMedia(`(prefers-reduced-motion: reduce)`).matches:!1);return(0,n.useEffect)(()=>{if(typeof window>`u`)return;let e=window.matchMedia(`(prefers-reduced-motion: reduce)`),n=e=>t(e.matches);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}function _(e,t,r){let[i,a]=(0,n.useState)(e),o=(0,n.useRef)(e),s=(0,n.useRef)(null),c=(0,n.useRef)(null),l=g();return(0,n.useEffect)(()=>{if(!r||l){a(e),o.current=e;return}let n=o.current;if(n===e)return;s.current=null;let i=r=>{s.current===null&&(s.current=r);let l=r-s.current,u=Math.min(l/t,1),d=1-(1-u)**3;a(n+(e-n)*d),u<1?c.current=requestAnimationFrame(i):o.current=e};return c.current=requestAnimationFrame(i),()=>{c.current!==null&&cancelAnimationFrame(c.current)}},[e,t,r,l]),i}function v({data:e,color:t}){if(e.length<2)return null;let r=Math.min(...e),i=Math.max(...e)-r||1,a=e.map((t,n)=>{let a=n/(e.length-1)*80,o=24-(t-r)/i*22-1;return`${a.toFixed(1)},${o.toFixed(1)}`});return(0,n.createElement)(`svg`,{width:80,height:24,viewBox:`0 0 80 24`,"aria-hidden":`true`},(0,n.createElement)(`polyline`,{points:a.join(` `),fill:`none`,stroke:t,strokeWidth:1.5,strokeLinejoin:`round`,strokeLinecap:`round`}))}function y({trend:e,theme:t}){return e===`up`?(0,n.createElement)(`span`,{style:{color:t.success,fontSize:14,fontWeight:700}},`▲`):e===`down`?(0,n.createElement)(`span`,{style:{color:t.danger,fontSize:14,fontWeight:700}},`▼`):(0,n.createElement)(`span`,{style:{color:t.textMuted,fontSize:14}},`→`)}function b({metric:e,animate:r,onMetricClick:i,theme:a}){let o=e.color??h(e.status,a),s=typeof e.value==`number`?e.value:NaN,c=_(isNaN(s)?0:s,600,r&&!isNaN(s)),[l,u]=(0,n.useState)(!1),d=(0,n.useRef)(e.value);(0,n.useEffect)(()=>{if(d.current!==e.value){d.current=e.value,u(!0);let t=window.setTimeout(()=>u(!1),700);return()=>clearTimeout(t)}},[e.value]);let f=e.previousValue!==void 0&&e.previousValue!==s,p={background:a.surface,border:`1px solid ${a.border}`,borderLeft:`4px solid ${o}`,borderRadius:8,padding:`14px 16px`,cursor:i?`pointer`:`default`,position:`relative`,overflow:`hidden`,boxSizing:`border-box`},g=l?{position:`absolute`,inset:0,background:`linear-gradient(90deg, transparent 0%, ${o}22 50%, transparent 100%)`,backgroundSize:`200% 100%`,animation:`tkx-metric-shimmer 0.6s ease-in-out`,pointerEvents:`none`}:{},b=isNaN(s)?t.m(String(e.value)):m(c,e.unit);return(0,n.createElement)(`div`,{style:p,className:l?`tkx-metric-shimmer`:void 0,onClick:i?()=>i(e):void 0,role:i?`button`:void 0,tabIndex:i?0:void 0},l&&(0,n.createElement)(`div`,{style:g}),(0,n.createElement)(`div`,{style:{fontSize:12,color:a.textMuted,marginBottom:6,fontWeight:500,letterSpacing:`0.03em`}},t.m(e.label)),(0,n.createElement)(`div`,{style:{display:`flex`,alignItems:`flex-end`,gap:6,marginBottom:6}},(0,n.createElement)(`span`,{style:{fontSize:28,fontWeight:700,color:a.text,lineHeight:1}},b),e.unit&&isNaN(s)&&(0,n.createElement)(`span`,{style:{fontSize:14,color:a.textMuted,marginBottom:2}},t.m(e.unit))),(e.trend||e.trendValue)&&(0,n.createElement)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4,marginBottom:e.sparkline?8:0}},e.trend&&(0,n.createElement)(y,{trend:e.trend,theme:a}),e.trendValue&&(0,n.createElement)(`span`,{style:{fontSize:12,color:a.textMuted}},t.m(e.trendValue))),f&&(0,n.createElement)(`div`,{style:{fontSize:11,color:a.textMuted,marginTop:2}},`was ${m(e.previousValue)}`),e.sparkline&&e.sparkline.length>=2&&(0,n.createElement)(`div`,{style:{marginTop:8}},(0,n.createElement)(v,{data:e.sparkline,color:o})))}function x({metrics:t,columns:r=3,animate:i=!0,onMetricClick:a}){let o=e.f();return p(),(0,n.createElement)(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(${r}, minmax(0, 1fr))`,gap:16}},...t.map(e=>(0,n.createElement)(b,{key:e.id,metric:e,animate:i,onMetricClick:a,theme:o})))}function S(e){let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}:${String(t.getSeconds()).padStart(2,`0`)}`}function C(e){return Math.abs(e)>=1e6?`${(e/1e6).toFixed(1)}M`:Math.abs(e)>=1e3?`${(e/1e3).toFixed(1)}k`:Number.isInteger(e)?String(e):e.toFixed(2)}function w({data:r,maxPoints:i=60,height:a=200,width:o=`100%`,color:s,fill:c=!0,showGrid:l=!0,showLabels:u=!0,showTooltip:d=!0,label:f,unit:p,animate:m=!0,yMin:h,yMax:g}){let _=e.f(),v=s??_.primary,y=(0,n.useRef)(null),[b,x]=(0,n.useState)(600),[w,T]=(0,n.useState)(null),[E,D]=(0,n.useState)(0),O=(0,n.useRef)(r.length);(0,n.useEffect)(()=>{if(!y.current)return;let e=new ResizeObserver(e=>{let t=e[0];t&&x(t.contentRect.width)});return e.observe(y.current),x(y.current.offsetWidth),()=>e.disconnect()},[]);let k=(0,n.useMemo)(()=>r.slice(-i),[r,i]);(0,n.useEffect)(()=>{k.length>O.current&&D(e=>e+1),O.current=k.length},[k.length]);let A=u?48:12,j=f?28:12,M=Math.max(b-A-12,1),N=Math.max(a-j-28,1),P=k.length?Math.min(...k.map(e=>e.value)):0,F=k.length?Math.max(...k.map(e=>e.value)):1,I=F-P||1,L=h===void 0?P-I*.1:h,R=(g===void 0?F+I*.1:g)-L||1;function z(e){return k.length<2?M/2:e/(k.length-1)*M}function B(e){return N-(e-L)/R*N}let V=k.length>=2?k.map((e,t)=>`${t===0?`M`:`L`}${z(t).toFixed(2)},${B(e.value).toFixed(2)}`).join(` `):``,H=V?`${V} L${z(k.length-1).toFixed(2)},${N} L${z(0).toFixed(2)},${N} Z`:``,U=[];for(let e=0;e<=4;e++)U.push(e);let W=U.map(e=>{let t=L+e/4*R;return{y:B(t),text:C(t)}}),G=Math.min(4,k.length),K=G>0?Array.from({length:G},(e,t)=>Math.round(t/Math.max(G-1,1)*(k.length-1))):[],q=(0,n.useCallback)(e=>{if(!d||k.length===0)return;let t=e.currentTarget.getBoundingClientRect(),n=e.clientX-t.left-A,r=0,i=1/0;k.forEach((e,t)=>{let a=Math.abs(z(t)-n);a<i&&(i=a,r=t)});let a=k[r];a&&T({x:z(r)+A,y:B(a.value)+j,point:a})},[k,d,A,j]),J=(0,n.useCallback)(()=>T(null),[]),Y=b,X=a,Z=`tkx-chart-clip-${E}`;return(0,n.createElement)(`div`,{ref:y,style:{position:`relative`,width:typeof o==`number`?`${o}px`:o,background:_.surface,border:`1px solid ${_.border}`,borderRadius:8,overflow:`hidden`,boxSizing:`border-box`}},(0,n.createElement)(`svg`,{width:Y,height:X,viewBox:`0 0 ${Y} ${X}`,onMouseMove:q,onMouseLeave:J,style:{display:`block`,userSelect:`none`},"aria-label":f?t.m(f):`Real-time chart`},m&&k.length>=2&&(0,n.createElement)(`defs`,null,(0,n.createElement)(`clipPath`,{id:Z},(0,n.createElement)(`rect`,{x:0,y:0,width:M,height:X},(0,n.createElement)(`animate`,{attributeName:`width`,from:Math.max(0,M-M/Math.max(k.length-1,1)),to:M,dur:`0.3s`,fill:`freeze`})))),f&&(0,n.createElement)(`text`,{x:A,y:18,fill:_.textMuted,fontSize:12,fontWeight:500},t.m(f)),l&&U.map(e=>{let t=B(L+e/4*R)+j;return(0,n.createElement)(`line`,{key:`grid-${e}`,x1:A,y1:t,x2:A+M,y2:t,stroke:_.border,strokeWidth:1,strokeDasharray:`4 4`})}),u&&W.map((e,t)=>(0,n.createElement)(`text`,{key:`yl-${t}`,x:A-4,y:e.y+j+4,fill:_.textMuted,fontSize:10,textAnchor:`end`},e.text)),p&&(0,n.createElement)(`text`,{x:4,y:j+10,fill:_.textMuted,fontSize:9},t.m(p)),c&&H&&(0,n.createElement)(`path`,{d:H,fill:`${v}22`,clipPath:m?`url(#${Z})`:void 0,transform:`translate(${A}, ${j})`}),V&&(0,n.createElement)(`path`,{d:V,fill:`none`,stroke:v,strokeWidth:2,strokeLinejoin:`round`,strokeLinecap:`round`,clipPath:m?`url(#${Z})`:void 0,transform:`translate(${A}, ${j})`}),K.map(e=>{let t=k[e];return t?(0,n.createElement)(`text`,{key:`xl-${e}`,x:A+z(e),y:X-8,fill:_.textMuted,fontSize:9,textAnchor:`middle`},S(t.timestamp)):null}),w&&(0,n.createElement)(`line`,{x1:w.x,y1:j,x2:w.x,y2:j+N,stroke:v,strokeWidth:1,strokeDasharray:`3 3`,opacity:.6}),w&&(0,n.createElement)(`circle`,{cx:w.x,cy:w.y,r:4,fill:v,stroke:_.surface,strokeWidth:2}),w&&(()=>{let e=Math.min(w.x+8,Y-100),t=Math.max(w.y-36,4),r=`${C(w.point.value)}${p||``}`,i=S(w.point.timestamp);return(0,n.createElement)(`g`,null,(0,n.createElement)(`rect`,{x:e-4,y:t-2,width:90,height:34,rx:4,fill:_.surfaceAlt,stroke:_.border,strokeWidth:1}),(0,n.createElement)(`text`,{x:e,y:t+11,fill:_.text,fontSize:12,fontWeight:700},r),(0,n.createElement)(`text`,{x:e,y:t+26,fill:_.textMuted,fontSize:10},i))})()))}var T=28,E=8,D={debug:0,info:1,warn:2,error:3,fatal:4},O=!1;function k(){if(O||typeof document>`u`)return;O=!0;let e=document.createElement(`style`);e.id=`tkx-live-log-styles`,e.textContent=`.tkx-log-row:hover { filter: brightness(1.12); }
|
|
23
|
+
.tkx-log-highlight { background: #ffbe0b55; border-radius: 2px; padding: 0 1px; }`,document.head.appendChild(e)}function A(e){let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}:${String(t.getSeconds()).padStart(2,`0`)}.${String(t.getMilliseconds()).padStart(3,`0`)}`}function j(e,t){switch(e){case`debug`:return t.textMuted;case`info`:return t.info;case`warn`:return t.warning;case`error`:return t.danger;case`fatal`:return t.danger;default:return t.textMuted}}function M(e,t){return e===`fatal`?`${t.danger}22`:`transparent`}function N(e){return`[${e.toUpperCase().padEnd(5)}]`}function P(e,r){if(!r)return[e];let i=t.m(e),a=t.m(r);if(!a)return[i];try{let e=RegExp(`(${a.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)})`,`gi`);return i.split(e).map((t,r)=>e.test(t)?(0,n.createElement)(`mark`,{key:r,className:`tkx-log-highlight`},t):t)}catch{return[i]}}function F({entry:e,showLevel:r,showTimestamp:i,showSource:a,searchQuery:o,monospace:s,isExpanded:c,onToggle:l,onEntryClick:u,theme:d,style:f}){let p=j(e.level,d),m=M(e.level,d),h=e.metadata&&Object.keys(e.metadata).length>0,g={...f,display:`flex`,alignItems:`center`,gap:6,padding:`0 10px`,fontSize:12,fontFamily:s?`"JetBrains Mono", "Fira Mono", Consolas, monospace`:`inherit`,cursor:h||u?`pointer`:`default`,background:m,boxSizing:`border-box`,height:T,overflow:`hidden`,whiteSpace:`nowrap`,borderBottom:`1px solid ${d.border}22`};return(0,n.createElement)(`div`,{style:g,className:`tkx-log-row`,onClick:()=>{h&&l(),u&&u(e)},role:h?`button`:void 0,tabIndex:h?0:void 0,onKeyDown:h?e=>{(e.key===`Enter`||e.key===` `)&&l()}:void 0,"aria-expanded":h?c:void 0},i&&(0,n.createElement)(`span`,{style:{color:d.textMuted,flexShrink:0,minWidth:84}},A(e.timestamp)),r&&(0,n.createElement)(`span`,{style:{color:p,flexShrink:0,fontWeight:e.level===`fatal`?700:500,minWidth:56}},N(e.level)),a&&e.source&&(0,n.createElement)(`span`,{style:{background:d.surfaceAlt,border:`1px solid ${d.border}`,borderRadius:10,padding:`0 5px`,fontSize:10,color:d.textMuted,flexShrink:0,maxWidth:80,overflow:`hidden`,textOverflow:`ellipsis`}},t.m(e.source)),(0,n.createElement)(`span`,{style:{flex:1,color:d.text,overflow:`hidden`,textOverflow:`ellipsis`}},...P(e.message,o)),h&&(0,n.createElement)(`span`,{style:{color:d.textMuted,fontSize:10,flexShrink:0}},c?`▲`:`▼`))}function I({metadata:e,theme:r,style:i}){return(0,n.createElement)(`div`,{style:{...i,background:r.surfaceAlt,borderBottom:`1px solid ${r.border}`,padding:`6px 10px 6px 56px`,display:`flex`,flexWrap:`wrap`,gap:6,boxSizing:`border-box`}},...Object.entries(e).map(([e,i])=>(0,n.createElement)(`span`,{key:e,style:{fontSize:11,fontFamily:`monospace`,color:r.textMuted,background:r.surface,border:`1px solid ${r.border}`,borderRadius:4,padding:`1px 6px`}},(0,n.createElement)(`span`,{style:{color:r.info}},`${t.m(e)}: `),t.m(String(i)))))}function L({entries:t,maxEntries:r=500,height:i=400,autoScroll:a=!0,showLevel:o=!0,showTimestamp:s=!0,showSource:c=!0,filterLevel:l,searchQuery:u=``,monospace:d=!0,onEntryClick:f}){let p=e.f();k();let m=(0,n.useRef)(null),[h,g]=(0,n.useState)(0),[_,v]=(0,n.useState)(new Set),[y,b]=(0,n.useState)(!1),x=(0,n.useRef)(t.length),S=(0,n.useMemo)(()=>{let e=t.slice(-r);if(l!==void 0){let t=D[l];e=e.filter(e=>D[e.level]>=t)}if(u){let t=u.toLowerCase();e=e.filter(e=>e.message.toLowerCase().includes(t)||(e.source??``).toLowerCase().includes(t))}return e},[t,r,l,u]),C=typeof i==`number`?i:400,w=(0,n.useMemo)(()=>{let e=[],t=0;for(let n of S)e.push(t),t+=T+(_.has(n.id)?40:0);return e.push(t),e},[S,_]),O=w[w.length-1]??0;(0,n.useEffect)(()=>{!a||y||S.length!==x.current&&(x.current=S.length,m.current&&(m.current.scrollTop=m.current.scrollHeight))},[S.length,a,y]);let A=(0,n.useCallback)(()=>{if(!m.current)return;let e=m.current;b(!(e.scrollHeight-e.scrollTop-e.clientHeight<T*2)),g(e.scrollTop)},[]),j=(0,n.useCallback)(e=>{v(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]);function M(e){let t=0,n=S.length-1;for(;t<n;){let r=t+n>>1;(w[r+1]??0)<=e?t=r+1:n=r}return Math.max(0,t-E)}function N(e){let t=0,n=S.length-1;for(;t<n;){let r=t+n+1>>1;(w[r]??0)>=e+C?n=r-1:t=r}return Math.min(S.length-1,t+E)}let P=S.length>0?M(h):0,L=S.length>0?N(h):-1,R={position:`relative`,overflow:`auto`,height:typeof i==`number`?`${i}px`:i,background:p.bg,border:`1px solid ${p.border}`,borderRadius:8,boxSizing:`border-box`},z={position:`relative`,height:O,minHeight:`100%`};if(S.length===0)return(0,n.createElement)(`div`,{style:{...R,display:`flex`,alignItems:`center`,justifyContent:`center`}},(0,n.createElement)(`span`,{style:{color:p.textMuted,fontSize:13,fontFamily:`monospace`}},`No log entries.`));let B=[];for(let e=P;e<=L;e++){let t=S[e];if(!t)continue;let r=w[e]??0,i=_.has(t.id);B.push((0,n.createElement)(F,{key:t.id,entry:t,showLevel:o,showTimestamp:s,showSource:c,searchQuery:u,monospace:d,isExpanded:i,onToggle:()=>j(t.id),onEntryClick:f,theme:p,style:{position:`absolute`,top:r,left:0,right:0}})),i&&t.metadata&&Object.keys(t.metadata).length>0&&B.push((0,n.createElement)(I,{key:`${t.id}-meta`,metadata:t.metadata,theme:p,style:{position:`absolute`,top:r+T,left:0,right:0,height:40}}))}return(0,n.createElement)(`div`,{ref:m,style:R,onScroll:A,role:`log`,"aria-live":`polite`,"aria-label":`Log viewer`},(0,n.createElement)(`div`,{style:z},...B))}exports.TkxLiveFeed=d,exports.TkxLiveLog=L,exports.TkxLiveMetrics=x,exports.TkxRealTimeChart=w;
|