@sudobility/analytics-components 1.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.umd.js CHANGED
@@ -1,6 +1,6 @@
1
- (function(u,T){typeof exports=="object"&&typeof module<"u"?T(exports,require("react"),require("@sudobility/components"),require("@sudobility/design")):typeof define=="function"&&define.amd?define(["exports","react","@sudobility/components","@sudobility/design"],T):(u=typeof globalThis<"u"?globalThis:u||self,T(u.Components={},u.React,u.components,u.design))})(this,(function(u,T,l,x){"use strict";var V={exports:{}},U={};var I;function K(){if(I)return U;I=1;var t=Symbol.for("react.transitional.element"),a=Symbol.for("react.fragment");function r(n,s,i){var d=null;if(i!==void 0&&(d=""+i),s.key!==void 0&&(d=""+s.key),"key"in s){i={};for(var g in s)g!=="key"&&(i[g]=s[g])}else i=s;return s=i.ref,{$$typeof:t,type:n,key:d,ref:s!==void 0?s:null,props:i}}return U.Fragment=a,U.jsx=r,U.jsxs=r,U}var S={};var F;function ee(){return F||(F=1,process.env.NODE_ENV!=="production"&&(function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===Ye?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case N:return"Fragment";case P:return"Profiler";case _:return"StrictMode";case $e:return"Suspense";case De:return"SuspenseList";case Me:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case E:return"Portal";case Ae:return e.displayName||"Context";case Oe:return(e._context.displayName||"Context")+".Consumer";case Pe:var c=e.render;return e=e.displayName,e||(e=c.displayName||c.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Le:return c=e.displayName||null,c!==null?c:t(e.type)||"Memo";case $:c=e._payload,e=e._init;try{return t(e(c))}catch{}}return null}function a(e){return""+e}function r(e){try{a(e);var c=!1}catch{c=!0}if(c){c=console;var h=c.error,k=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return h.call(c,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",k),a(e)}}function n(e){if(e===N)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===$)return"<...>";try{var c=t(e);return c?"<"+c+">":"<...>"}catch{return"<...>"}}function s(){var e=D.A;return e===null?null:e.getOwner()}function i(){return Error("react-stack-top-frame")}function d(e){if(G.call(e,"key")){var c=Object.getOwnPropertyDescriptor(e,"key").get;if(c&&c.isReactWarning)return!1}return e.key!==void 0}function g(e,c){function h(){J||(J=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",c))}h.isReactWarning=!0,Object.defineProperty(e,"key",{get:h,configurable:!0})}function j(){var e=t(this.type);return Q[e]||(Q[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function f(e,c,h,k,O,M){var p=h.ref;return e={$$typeof:b,type:e,key:c,props:h,_owner:k},(p!==void 0?p:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:j}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:O}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:M}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function v(e,c,h,k,O,M){var p=c.children;if(p!==void 0)if(k)if(Ie(p)){for(k=0;k<p.length;k++)y(p[k]);Object.freeze&&Object.freeze(p)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else y(p);if(G.call(c,"key")){p=t(e);var R=Object.keys(c).filter(function(Fe){return Fe!=="key"});k=0<R.length?"{key: someKey, "+R.join(": ..., ")+": ...}":"{key: someKey}",Z[p+k]||(R=0<R.length?"{"+R.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
1
+ (function(g,T){typeof exports=="object"&&typeof module<"u"?T(exports,require("react"),require("@sudobility/components")):typeof define=="function"&&define.amd?define(["exports","react","@sudobility/components"],T):(g=typeof globalThis<"u"?globalThis:g||self,T(g.Components={},g.React,g.components))})(this,(function(g,T,m){"use strict";var U={exports:{}},N={};var W;function Z(){if(W)return N;W=1;var t=Symbol.for("react.transitional.element"),a=Symbol.for("react.fragment");function r(n,s,d){var p=null;if(d!==void 0&&(p=""+d),s.key!==void 0&&(p=""+s.key),"key"in s){d={};for(var x in s)x!=="key"&&(d[x]=s[x])}else d=s;return s=d.ref,{$$typeof:t,type:n,key:p,ref:s!==void 0?s:null,props:d}}return N.Fragment=a,N.jsx=r,N.jsxs=r,N}var C={};var F;function K(){return F||(F=1,process.env.NODE_ENV!=="production"&&(function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===Ee?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case k:return"Fragment";case P:return"Profiler";case w:return"StrictMode";case pe:return"Suspense";case ke:return"SuspenseList";case _e:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case R:return"Portal";case ye:return e.displayName||"Context";case ve:return(e._context.displayName||"Context")+".Consumer";case he:var o=e.render;return e=e.displayName,e||(e=o.displayName||o.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case we:return o=e.displayName||null,o!==null?o:t(e.type)||"Memo";case D:o=e._payload,e=e._init;try{return t(e(o))}catch{}}return null}function a(e){return""+e}function r(e){try{a(e);var o=!1}catch{o=!0}if(o){o=console;var l=o.error,c=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return l.call(o,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",c),a(e)}}function n(e){if(e===k)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===D)return"<...>";try{var o=t(e);return o?"<"+o+">":"<...>"}catch{return"<...>"}}function s(){var e=I.A;return e===null?null:e.getOwner()}function d(){return Error("react-stack-top-frame")}function p(e){if(J.call(e,"key")){var o=Object.getOwnPropertyDescriptor(e,"key").get;if(o&&o.isReactWarning)return!1}return e.key!==void 0}function x(e,o){function l(){G||(G=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",o))}l.isReactWarning=!0,Object.defineProperty(e,"key",{get:l,configurable:!0})}function E(){var e=t(this.type);return B[e]||(B[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function f(e,o,l,c,S,Y){var u=l.ref;return e={$$typeof:b,type:e,key:o,props:l,_owner:c},(u!==void 0?u:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:E}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:S}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:Y}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function y(e,o,l,c,S,Y){var u=o.children;if(u!==void 0)if(c)if(Re(u)){for(c=0;c<u.length;c++)h(u[c]);Object.freeze&&Object.freeze(u)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else h(u);if(J.call(o,"key")){u=t(e);var j=Object.keys(o).filter(function(je){return je!=="key"});c=0<j.length?"{key: someKey, "+j.join(": ..., ")+": ...}":"{key: someKey}",H[u+c]||(j=0<j.length?"{"+j.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
2
2
  let props = %s;
3
3
  <%s {...props} />
4
4
  React keys must be passed directly to JSX without using spread:
5
5
  let props = %s;
6
- <%s key={someKey} {...props} />`,k,p,R,p),Z[p+k]=!0)}if(p=null,h!==void 0&&(r(h),p=""+h),d(c)&&(r(c.key),p=""+c.key),"key"in c){h={};for(var Y in c)Y!=="key"&&(h[Y]=c[Y])}else h=c;return p&&g(h,typeof e=="function"?e.displayName||e.name||"Unknown":e),f(e,p,h,s(),O,M)}function y(e){m(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===$&&(e._payload.status==="fulfilled"?m(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function m(e){return typeof e=="object"&&e!==null&&e.$$typeof===b}var w=T,b=Symbol.for("react.transitional.element"),E=Symbol.for("react.portal"),N=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),P=Symbol.for("react.profiler"),Oe=Symbol.for("react.consumer"),Ae=Symbol.for("react.context"),Pe=Symbol.for("react.forward_ref"),$e=Symbol.for("react.suspense"),De=Symbol.for("react.suspense_list"),Le=Symbol.for("react.memo"),$=Symbol.for("react.lazy"),Me=Symbol.for("react.activity"),Ye=Symbol.for("react.client.reference"),D=w.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,G=Object.prototype.hasOwnProperty,Ie=Array.isArray,L=console.createTask?console.createTask:function(){return null};w={react_stack_bottom_frame:function(e){return e()}};var J,Q={},X=w.react_stack_bottom_frame.bind(w,i)(),H=L(n(i)),Z={};S.Fragment=N,S.jsx=function(e,c,h){var k=1e4>D.recentlyCreatedOwnerStacks++;return v(e,c,h,!1,k?Error("react-stack-top-frame"):X,k?L(n(e)):H)},S.jsxs=function(e,c,h){var k=1e4>D.recentlyCreatedOwnerStacks++;return v(e,c,h,!0,k?Error("react-stack-top-frame"):X,k?L(n(e)):H)}})()),S}var W;function re(){return W||(W=1,process.env.NODE_ENV==="production"?V.exports=K():V.exports=ee()),V.exports}var o=re();function z(t){var a,r,n="";if(typeof t=="string"||typeof t=="number")n+=t;else if(typeof t=="object")if(Array.isArray(t)){var s=t.length;for(a=0;a<s;a++)t[a]&&(r=z(t[a]))&&(n&&(n+=" "),n+=r)}else for(r in t)t[r]&&(n&&(n+=" "),n+=r);return n}function te(){for(var t,a,r=0,n="",s=arguments.length;r<s;r++)(t=arguments[r])&&(a=z(t))&&(n&&(n+=" "),n+=a);return n}const q=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,B=te,C=(t,a)=>r=>{var n;if(a?.variants==null)return B(t,r?.class,r?.className);const{variants:s,defaultVariants:i}=a,d=Object.keys(s).map(f=>{const v=r?.[f],y=i?.[f];if(v===null)return null;const m=q(v)||q(y);return s[f][m]}),g=r&&Object.entries(r).reduce((f,v)=>{let[y,m]=v;return m===void 0||(f[y]=m),f},{}),j=a==null||(n=a.compoundVariants)===null||n===void 0?void 0:n.reduce((f,v)=>{let{class:y,className:m,...w}=v;return Object.entries(w).every(b=>{let[E,N]=b;return Array.isArray(N)?N.includes({...i,...g}[E]):{...i,...g}[E]===N})?[...f,y,m]:f},[]);return B(t,d,j,r?.class,r?.className)},ae=C("grid gap-8",{variants:{layout:{grid:"grid-cols-1 md:grid-cols-2",stacked:"grid-cols-1 space-y-8",cards:"grid-cols-1 md:grid-cols-2 gap-6"},spacing:{sm:"gap-4",md:"gap-8",lg:"gap-12"}},defaultVariants:{layout:"grid",spacing:"md"}}),ne=C("rounded-xl p-6 transition-all duration-300",{variants:{variant:{traditional:"bg-red-50 dark:bg-red-900/20 border-2 border-red-100 dark:border-red-800/30 hover:border-red-200 dark:hover:border-red-700/50",web3:"bg-green-50 dark:bg-green-900/20 border-2 border-green-100 dark:border-green-800/30 hover:border-green-200 dark:hover:border-green-700/50",neutral:"bg-gray-50 dark:bg-gray-800/50 border-2 border-gray-100 dark:border-gray-700/30 hover:border-gray-200 dark:hover:border-gray-600/50",elevated:"bg-white dark:bg-gray-800 shadow-lg hover:shadow-xl border border-gray-200 dark:border-gray-700"},animation:{none:"",hover:"hover:transform hover:scale-[1.02]",float:"hover:-translate-y-1"}},defaultVariants:{variant:"traditional",animation:"hover"}}),oe=C("text-lg font-bold mb-4 flex items-center gap-3",{variants:{variant:{traditional:"text-red-600 dark:text-red-400",web3:"text-green-600 dark:text-green-400",neutral:"text-gray-900 dark:text-white",elevated:"text-gray-900 dark:text-white"}},defaultVariants:{variant:"traditional"}}),se={traditional:"❌",web3:"✅",neutral:"ℹ️",elevated:"⭐"},ie={red:"bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-300",green:"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300",blue:"bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-300",gray:"bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-300"},le=({className:t,layout:a="grid",spacing:r="md",title:n,subtitle:s,traditional:i,web3:d,cardAnimation:g="hover",animate:j=!0,animationDelay:f=0,traditionalIcon:v,web3Icon:y})=>{const m=(b,E)=>{const N=o.jsxs("div",{className:l.cn(ne({variant:b.variant,animation:g})),children:[o.jsxs("div",{className:l.cn(oe({variant:b.variant})),children:[o.jsx("span",{className:"text-2xl",children:b.icon||(E===0?v:y)||se[b.variant]}),o.jsx("div",{className:"flex-1",children:o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsx("span",{children:b.title}),b.badge&&o.jsx("span",{className:l.cn("text-xs font-medium px-2 py-1 rounded-full",ie[b.badge.color||"gray"]),children:b.badge.text})]})})]}),o.jsx("ul",{className:"space-y-3",children:b.items.map((_,P)=>o.jsxs("li",{className:l.cn("flex items-start gap-3 text-sm leading-relaxed",_.highlight&&"font-medium"),children:[_.icon&&o.jsx("span",{className:"flex-shrink-0 mt-0.5 text-base",children:_.icon}),o.jsxs("div",{className:"flex-1",children:[o.jsx("span",{className:l.cn(b.variant==="traditional"||b.variant==="web3"?"text-gray-700 dark:text-gray-300":"text-gray-600 dark:text-gray-400"),children:_.text}),_.subtext&&o.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-500 mt-1",children:_.subtext})]})]},P))})]});return o.jsx("div",{children:N},b.title)};return o.jsxs("div",{className:l.cn("space-y-8",t),children:[(n||s)&&o.jsxs("div",{className:"text-center space-y-4",children:[n&&o.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 dark:text-white",children:n}),s&&o.jsx("p",{className:"text-lg text-gray-600 dark:text-gray-400 max-w-2xl mx-auto",children:s})]}),o.jsxs("div",{className:l.cn(ae({layout:a,spacing:r})),children:[m(i,0),m(d,1)]})]})},A=(t,a,r,n)=>({title:t,variant:r,items:a.map(s=>typeof s=="string"?{text:s}:s),...n}),ce=t=>{const a=[{text:"Create account with email/password",icon:"🔑"},{text:"Remember multiple passwords",icon:"🧠"},{text:"Verify email address",icon:"📧"},{text:"Risk of password theft",icon:"⚠️"},{text:"Data stored on company servers",icon:"🏢"},{text:"Account can be locked/suspended",icon:"🔒"}],r=[{text:"Connect your wallet",icon:"🔗"},{text:"No passwords needed",icon:"🚫"},{text:"Instant authentication",icon:"⚡"},{text:"Cryptographically secure",icon:"🔐"},{text:"You own your data",icon:"👑"},{text:"Censorship resistant",icon:"🛡️"}];return{traditional:A(t?.traditionalTitle||"Traditional Email",t?.traditionalItems||a,"traditional",{badge:{text:t?.traditionalBadge||"Old Way",color:"red"}}),web3:A(t?.web3Title||"Web3 Email",t?.web3Items||r,"web3",{badge:{text:t?.web3Badge||"New Way",color:"green"}})}},de=({className:t,children:a,disabled:r=!1,onClick:n})=>o.jsx("div",{className:l.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",t),onClick:r?void 0:n,role:"region","aria-label":"UcontainerUstats",children:a||"UcontainerUstats Component"}),ue=({icon:t,title:a="No data",description:r,action:n,className:s})=>o.jsxs("div",{className:l.cn("flex flex-col items-center justify-center py-12 px-4 text-center",s),children:[t&&o.jsx("div",{className:"mb-4 text-gray-400 dark:text-gray-600",children:t}),o.jsx("h3",{className:l.cn(x.textVariants.heading.h3(),"mb-2"),children:a}),r&&o.jsx("p",{className:l.cn(x.textVariants.body.sm(),"text-gray-600 dark:text-gray-400 max-w-sm mb-6"),children:r}),n&&o.jsx("div",{className:"mt-4",children:n})]}),xe=({className:t,children:a,disabled:r=!1,onClick:n})=>o.jsx("div",{className:l.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",t),onClick:r?void 0:n,role:"region","aria-label":"UfeatureUcomparison",children:a||"UfeatureUcomparison Component"}),ge=({className:t,children:a,disabled:r=!1,onClick:n})=>o.jsx("div",{className:l.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",t),onClick:r?void 0:n,role:"region","aria-label":"UfeatureUimportance",children:a||"UfeatureUimportance Component"}),fe=({value:t,min:a=0,max:r=100,size:n=120,strokeWidth:s=10,showValue:i=!0,label:d,variant:g="primary",className:j})=>{const f=Math.min(r,Math.max(a,t)),v=(f-a)/(r-a)*100,y=n/2,m=(n-s)/2,w=Math.PI*m,b=w-v/100*w,E={primary:"stroke-blue-600 dark:stroke-blue-500",success:"stroke-green-600 dark:stroke-green-500",warning:"stroke-yellow-600 dark:stroke-yellow-500",danger:"stroke-red-600 dark:stroke-red-500"};return o.jsxs("div",{className:l.cn("inline-flex flex-col items-center gap-2",j),children:[o.jsxs("svg",{width:n,height:n*.65,className:"transform rotate-180",children:[o.jsx("path",{d:`M ${s/2} ${y} A ${m} ${m} 0 0 1 ${n-s/2} ${y}`,fill:"none",className:"stroke-gray-200 dark:stroke-gray-700",strokeWidth:s,strokeLinecap:"round"}),o.jsx("path",{d:`M ${s/2} ${y} A ${m} ${m} 0 0 1 ${n-s/2} ${y}`,fill:"none",className:l.cn(E[g],"transition-all duration-500"),strokeWidth:s,strokeDasharray:w,strokeDashoffset:b,strokeLinecap:"round"})]}),i&&o.jsxs("div",{className:"text-center -mt-8",children:[o.jsx("div",{className:"text-2xl font-bold text-gray-900 dark:text-white",children:Math.round(f)}),d&&o.jsx("div",{className:"text-xs text-gray-600 dark:text-gray-400",children:d})]})]})},me=({message:t="Loading...",size:a="default",fullScreen:r=!1,variant:n="default",className:s})=>{const d={small:{spinner:"small",text:"text-sm"},default:{spinner:"default",text:"text-base"},large:{spinner:"large",text:"text-lg"}}[a],g=r?"fixed inset-0 z-50 flex items-center justify-center bg-white/80 dark:bg-gray-900/80":"flex flex-col items-center justify-center p-8",j=o.jsxs("div",{className:l.cn(g,s),children:[o.jsx(l.Spinner,{size:d.spinner,variant:n,className:"mb-4"}),t&&o.jsx("p",{className:l.cn(d.text,"text-gray-600 dark:text-gray-400 text-center max-w-sm"),children:t})]});return r?o.jsx("div",{className:"fixed inset-0 z-50 bg-white/80 dark:bg-gray-900/80 backdrop-blur-sm",children:o.jsxs("div",{className:"flex items-center justify-center min-h-full p-4",children:[o.jsx(l.Spinner,{size:d.spinner,variant:n,className:"mb-4"}),t&&o.jsx("p",{className:"text-center text-gray-600 dark:text-gray-400 max-w-sm",children:t})]})}):j},be=({className:t,children:a,disabled:r=!1,onClick:n})=>o.jsx("div",{className:l.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",t),onClick:r?void 0:n,role:"region","aria-label":"UmetricUcomparison",children:a||"UmetricUcomparison Component"}),he=({className:t,children:a,disabled:r=!1,onClick:n})=>o.jsx("div",{className:l.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",t),onClick:r?void 0:n,role:"region","aria-label":"UmodelUprediction",children:a||"UmodelUprediction Component"}),ye=({className:t,children:a,disabled:r=!1,onClick:n})=>o.jsx("div",{className:l.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",t),onClick:r?void 0:n,role:"region","aria-label":"UprogressUtracker",children:a||"UprogressUtracker Component"}),ve=({className:t,children:a,disabled:r})=>o.jsx("div",{className:l.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed",t),role:"region","aria-label":"QaReport",children:a||"QaReport Component"}),ke=({className:t,children:a,disabled:r=!1,onClick:n})=>o.jsx("div",{className:l.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",t),onClick:r?void 0:n,role:"region","aria-label":"UreportUbuilder",children:a||"UreportUbuilder Component"}),pe=({data:t,width:a=100,height:r=30,color:n="#3b82f6",fill:s=!1,className:i})=>{if(t.length===0)return null;const d=Math.max(...t),g=Math.min(...t),j=d-g||1,f=t.map((v,y)=>{const m=y/(t.length-1)*a,w=r-(v-g)/j*r;return`${m},${w}`}).join(" ");return o.jsxs("svg",{width:a,height:r,className:l.cn("inline-block",i),children:[s&&o.jsx("polygon",{points:`0,${r} ${f} ${a},${r}`,fill:n,opacity:"0.2"}),o.jsx("polyline",{points:f,fill:"none",stroke:n,strokeWidth:"2",strokeLinejoin:"round",strokeLinecap:"round"})]})},we=({value:t,label:a,variant:r="neutral",size:n="md",align:s="center",icon:i,iconPosition:d="top",className:g,valueClassName:j,labelClassName:f})=>{const v={primary:{value:"text-blue-600 dark:text-blue-400",label:"text-blue-600/70 dark:text-blue-400/70",icon:"text-blue-600 dark:text-blue-400"},success:{value:"text-green-600 dark:text-green-400",label:"text-green-600/70 dark:text-green-400/70",icon:"text-green-600 dark:text-green-400"},warning:{value:"text-yellow-600 dark:text-yellow-400",label:"text-yellow-600/70 dark:text-yellow-400/70",icon:"text-yellow-600 dark:text-yellow-400"},danger:{value:"text-red-600 dark:text-red-400",label:"text-red-600/70 dark:text-red-400/70",icon:"text-red-600 dark:text-red-400"},neutral:{value:"text-gray-900 dark:text-gray-100",label:"text-gray-600 dark:text-gray-400",icon:"text-gray-600 dark:text-gray-400"},white:{value:"text-white",label:"text-white/70",icon:"text-white"}},y={sm:{value:x.textVariants.heading.h5(),label:x.textVariants.caption.default(),icon:"h-4 w-4"},md:{value:x.textVariants.heading.h4(),label:x.textVariants.body.sm(),icon:"h-5 w-5"},lg:{value:x.textVariants.heading.h3(),label:x.textVariants.body.md(),icon:"h-6 w-6"},xl:{value:x.textVariants.heading.h2(),label:x.textVariants.body.lg(),icon:"h-8 w-8"}},m={left:"text-left",center:"text-center",right:"text-right"},w=v[r],b=y[n];return o.jsxs("div",{className:l.cn(m[s],g),children:[i&&d==="top"&&o.jsx(i,{className:l.cn(b.icon,w.icon,"mb-2",s==="center"&&"mx-auto")}),o.jsxs("div",{className:l.cn(d==="left"&&i&&"flex items-center gap-3",s==="center"&&d==="left"&&"justify-center"),children:[i&&d==="left"&&o.jsx(i,{className:l.cn(b.icon,w.icon)}),o.jsxs("div",{children:[o.jsx("div",{className:l.cn("font-bold",b.value,w.value,j),children:t}),o.jsx("div",{className:l.cn(b.label,w.label,f),children:a})]})]})]})},je=({className:t,children:a,disabled:r})=>o.jsx("div",{className:l.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed",t),role:"region","aria-label":"SupportDashboard",children:a||"SupportDashboard Component"}),Ne=({value:t,previousValue:a,format:r="percentage",currency:n="$",showArrow:s=!0,size:i="md",className:d})=>{const g=t-a,j=a!==0?g/a*100:0,f=g>=0,v=()=>{switch(r){case"percentage":return`${Math.abs(j).toFixed(1)}%`;case"currency":return`${n}${Math.abs(g).toFixed(2)}`;case"number":return Math.abs(g).toFixed(0);default:return""}},y={sm:"text-xs",md:"text-sm",lg:"text-base"},m={sm:"w-3 h-3",md:"w-4 h-4",lg:"w-5 h-5"};return o.jsxs("div",{className:l.cn("inline-flex items-center gap-1 font-semibold",f?"text-green-600 dark:text-green-400":"text-red-600 dark:text-red-400",y[i],d),children:[s&&o.jsx("svg",{className:l.cn(m[i]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:f?o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 10l7-7m0 0l7 7m-7-7v18"}):o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 14l-7 7m0 0l-7-7m7 7V3"})}),o.jsxs("span",{children:[f?"+":"-",v()]})]})},Ee=C("",{variants:{variant:{hero:x.textVariants.heading.display.hero(),display:x.textVariants.heading.display.lg(),h1:x.textVariants.heading.h1(),h2:x.textVariants.heading.h2(),h3:x.textVariants.heading.h3()},responsive:{true:"",false:""},align:{left:"text-left",center:"text-center",right:"text-right"},color:{default:"text-gray-900 dark:text-white",muted:"text-gray-600 dark:text-gray-400",vibrant:"text-white",brand:"bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent"}},defaultVariants:{variant:"h1",responsive:!0,align:"left",color:"default"}}),_e=({children:t,variant:a="h1",responsive:r=!0,align:n="left",color:s="default",className:i,as:d})=>{const g=d||(a==="hero"||a==="display"||a==="h1"?"h1":a==="h2"?"h2":"h3");return o.jsx(g,{className:l.cn(Ee({variant:a,responsive:r,align:n,color:s}),i),children:t})},Te=C("",{variants:{variant:{h2:x.textVariants.heading.h2(),h3:x.textVariants.heading.h3(),h4:x.textVariants.heading.h4(),h5:x.textVariants.heading.h5(),h6:x.textVariants.heading.h6()},spacing:{none:"",sm:"mb-2",md:"mb-4",lg:"mb-6",xl:"mb-8"},align:{left:"text-left",center:"text-center",right:"text-right"}},defaultVariants:{variant:"h2",spacing:"md",align:"left"}}),Ce=({children:t,variant:a="h2",spacing:r="md",align:n="left",className:s,as:i})=>{const d=i||a;return T.createElement(d,{className:l.cn(Te({variant:a,spacing:r,align:n}),s)},t)},Re=C("",{variants:{variant:{body:x.textVariants.body.md(),lead:x.textVariants.body.lg(),large:x.textVariants.body.lg(),small:x.textVariants.body.sm(),caption:x.textVariants.body.xs()},color:{default:"text-gray-700 dark:text-gray-300",muted:"text-gray-500 dark:text-gray-500",primary:"text-gray-900 dark:text-white"},align:{left:"text-left",center:"text-center",right:"text-right",justify:"text-justify"}},defaultVariants:{variant:"body",color:"default",align:"left"}}),Ue=({children:t,variant:a="body",color:r="default",align:n="left",className:s,as:i="p"})=>T.createElement(i,{className:l.cn(Re({variant:a,color:r,align:n}),s)},t),Se=C(x.textVariants.link.default(),{variants:{variant:{default:x.textVariants.link.default(),subtle:x.textVariants.link.subtle(),muted:x.textVariants.link.muted(),button:"inline-flex items-center justify-center px-4 py-2 rounded-md bg-blue-600 text-white hover:bg-blue-700 transition-colors"},external:{true:"inline-flex items-center gap-1",false:""}},defaultVariants:{variant:"default",external:!1}}),Ve=({children:t,href:a,variant:r="default",external:n=!1,className:s,target:i,rel:d})=>o.jsxs("a",{href:a,target:i||(n?"_blank":void 0),rel:d||(n?"noopener noreferrer":void 0),className:l.cn(Se({variant:r,external:n}),s),children:[t,n&&o.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:o.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})})]});u.BodyText=Ue,u.ComparisonSection=le,u.EmptyState=ue,u.Gauge=fe,u.LoadingState=me,u.PageTitle=_e,u.QaReport=ve,u.SectionTitle=Ce,u.Sparkline=pe,u.StatDisplay=we,u.SupportDashboard=je,u.TextLink=Ve,u.TrendIndicator=Ne,u.UcontainerUstats=de,u.UfeatureUcomparison=xe,u.UfeatureUimportance=ge,u.UmetricUcomparison=be,u.UmodelUprediction=he,u.UprogressUtracker=ye,u.UreportUbuilder=ke,u.createComparisonData=A,u.createEmailComparisonData=ce,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})}));
6
+ <%s key={someKey} {...props} />`,c,u,j,u),H[u+c]=!0)}if(u=null,l!==void 0&&(r(l),u=""+l),p(o)&&(r(o.key),u=""+o.key),"key"in o){l={};for(var $ in o)$!=="key"&&(l[$]=o[$])}else l=o;return u&&x(l,typeof e=="function"?e.displayName||e.name||"Unknown":e),f(e,u,l,s(),S,Y)}function h(e){v(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===D&&(e._payload.status==="fulfilled"?v(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function v(e){return typeof e=="object"&&e!==null&&e.$$typeof===b}var _=T,b=Symbol.for("react.transitional.element"),R=Symbol.for("react.portal"),k=Symbol.for("react.fragment"),w=Symbol.for("react.strict_mode"),P=Symbol.for("react.profiler"),ve=Symbol.for("react.consumer"),ye=Symbol.for("react.context"),he=Symbol.for("react.forward_ref"),pe=Symbol.for("react.suspense"),ke=Symbol.for("react.suspense_list"),we=Symbol.for("react.memo"),D=Symbol.for("react.lazy"),_e=Symbol.for("react.activity"),Ee=Symbol.for("react.client.reference"),I=_.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,J=Object.prototype.hasOwnProperty,Re=Array.isArray,V=console.createTask?console.createTask:function(){return null};_={react_stack_bottom_frame:function(e){return e()}};var G,B={},Q=_.react_stack_bottom_frame.bind(_,d)(),X=V(n(d)),H={};C.Fragment=k,C.jsx=function(e,o,l){var c=1e4>I.recentlyCreatedOwnerStacks++;return y(e,o,l,!1,c?Error("react-stack-top-frame"):Q,c?V(n(e)):X)},C.jsxs=function(e,o,l){var c=1e4>I.recentlyCreatedOwnerStacks++;return y(e,o,l,!0,c?Error("react-stack-top-frame"):Q,c?V(n(e)):X)}})()),C}var M;function ee(){return M||(M=1,process.env.NODE_ENV==="production"?U.exports=Z():U.exports=K()),U.exports}var i=ee();function L(t){var a,r,n="";if(typeof t=="string"||typeof t=="number")n+=t;else if(typeof t=="object")if(Array.isArray(t)){var s=t.length;for(a=0;a<s;a++)t[a]&&(r=L(t[a]))&&(n&&(n+=" "),n+=r)}else for(r in t)t[r]&&(n&&(n+=" "),n+=r);return n}function re(){for(var t,a,r=0,n="",s=arguments.length;r<s;r++)(t=arguments[r])&&(a=L(t))&&(n&&(n+=" "),n+=a);return n}const q=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,z=re,O=(t,a)=>r=>{var n;if(a?.variants==null)return z(t,r?.class,r?.className);const{variants:s,defaultVariants:d}=a,p=Object.keys(s).map(f=>{const y=r?.[f],h=d?.[f];if(y===null)return null;const v=q(y)||q(h);return s[f][v]}),x=r&&Object.entries(r).reduce((f,y)=>{let[h,v]=y;return v===void 0||(f[h]=v),f},{}),E=a==null||(n=a.compoundVariants)===null||n===void 0?void 0:n.reduce((f,y)=>{let{class:h,className:v,..._}=y;return Object.entries(_).every(b=>{let[R,k]=b;return Array.isArray(k)?k.includes({...d,...x}[R]):{...d,...x}[R]===k})?[...f,h,v]:f},[]);return z(t,p,E,r?.class,r?.className)},te=O("grid gap-8",{variants:{layout:{grid:"grid-cols-1 md:grid-cols-2",stacked:"grid-cols-1 space-y-8",cards:"grid-cols-1 md:grid-cols-2 gap-6"},spacing:{sm:"gap-4",md:"gap-8",lg:"gap-12"}},defaultVariants:{layout:"grid",spacing:"md"}}),ae=O("rounded-xl p-6 transition-all duration-300",{variants:{variant:{traditional:"bg-red-50 dark:bg-red-900/20 border-2 border-red-100 dark:border-red-800/30 hover:border-red-200 dark:hover:border-red-700/50",web3:"bg-green-50 dark:bg-green-900/20 border-2 border-green-100 dark:border-green-800/30 hover:border-green-200 dark:hover:border-green-700/50",neutral:"bg-gray-50 dark:bg-gray-800/50 border-2 border-gray-100 dark:border-gray-700/30 hover:border-gray-200 dark:hover:border-gray-600/50",elevated:"bg-white dark:bg-gray-800 shadow-lg hover:shadow-xl border border-gray-200 dark:border-gray-700"},animation:{none:"",hover:"hover:transform hover:scale-[1.02]",float:"hover:-translate-y-1"}},defaultVariants:{variant:"traditional",animation:"hover"}}),ne=O("text-lg font-bold mb-4 flex items-center gap-3",{variants:{variant:{traditional:"text-red-600 dark:text-red-400",web3:"text-green-600 dark:text-green-400",neutral:"text-gray-900 dark:text-white",elevated:"text-gray-900 dark:text-white"}},defaultVariants:{variant:"traditional"}}),oe={traditional:"❌",web3:"✅",neutral:"ℹ️",elevated:"⭐"},ie={red:"bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-300",green:"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300",blue:"bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-300",gray:"bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-300"},se=({className:t,layout:a="grid",spacing:r="md",title:n,subtitle:s,traditional:d,web3:p,cardAnimation:x="hover",animate:E=!0,animationDelay:f=0,traditionalIcon:y,web3Icon:h})=>{const v=(b,R)=>{const k=i.jsxs("div",{className:m.cn(ae({variant:b.variant,animation:x})),children:[i.jsxs("div",{className:m.cn(ne({variant:b.variant})),children:[i.jsx("span",{className:"text-2xl",children:b.icon||(R===0?y:h)||oe[b.variant]}),i.jsx("div",{className:"flex-1",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{children:b.title}),b.badge&&i.jsx("span",{className:m.cn("text-xs font-medium px-2 py-1 rounded-full",ie[b.badge.color||"gray"]),children:b.badge.text})]})})]}),i.jsx("ul",{className:"space-y-3",children:b.items.map((w,P)=>i.jsxs("li",{className:m.cn("flex items-start gap-3 text-sm leading-relaxed",w.highlight&&"font-medium"),children:[w.icon&&i.jsx("span",{className:"flex-shrink-0 mt-0.5 text-base",children:w.icon}),i.jsxs("div",{className:"flex-1",children:[i.jsx("span",{className:m.cn(b.variant==="traditional"||b.variant==="web3"?"text-gray-700 dark:text-gray-300":"text-gray-600 dark:text-gray-400"),children:w.text}),w.subtext&&i.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-500 mt-1",children:w.subtext})]})]},P))})]});return i.jsx("div",{children:k},b.title)};return i.jsxs("div",{className:m.cn("space-y-8",t),children:[(n||s)&&i.jsxs("div",{className:"text-center space-y-4",children:[n&&i.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-gray-900 dark:text-white",children:n}),s&&i.jsx("p",{className:"text-lg text-gray-600 dark:text-gray-400 max-w-2xl mx-auto",children:s})]}),i.jsxs("div",{className:m.cn(te({layout:a,spacing:r})),children:[v(d,0),v(p,1)]})]})},A=(t,a,r,n)=>({title:t,variant:r,items:a.map(s=>typeof s=="string"?{text:s}:s),...n}),le=t=>{const a=[{text:"Create account with email/password",icon:"🔑"},{text:"Remember multiple passwords",icon:"🧠"},{text:"Verify email address",icon:"📧"},{text:"Risk of password theft",icon:"⚠️"},{text:"Data stored on company servers",icon:"🏢"},{text:"Account can be locked/suspended",icon:"🔒"}],r=[{text:"Connect your wallet",icon:"🔗"},{text:"No passwords needed",icon:"🚫"},{text:"Instant authentication",icon:"⚡"},{text:"Cryptographically secure",icon:"🔐"},{text:"You own your data",icon:"👑"},{text:"Censorship resistant",icon:"🛡️"}];return{traditional:A(t?.traditionalTitle||"Traditional Email",t?.traditionalItems||a,"traditional",{badge:{text:t?.traditionalBadge||"Old Way",color:"red"}}),web3:A(t?.web3Title||"Web3 Email",t?.web3Items||r,"web3",{badge:{text:t?.web3Badge||"New Way",color:"green"}})}},de=({className:t,children:a,disabled:r=!1,onClick:n})=>i.jsx("div",{className:m.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",t),onClick:r?void 0:n,role:"region","aria-label":"UcontainerUstats",children:a||"UcontainerUstats Component"}),ce=({className:t,children:a,disabled:r=!1,onClick:n})=>i.jsx("div",{className:m.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",t),onClick:r?void 0:n,role:"region","aria-label":"UfeatureUcomparison",children:a||"UfeatureUcomparison Component"}),ue=({className:t,children:a,disabled:r=!1,onClick:n})=>i.jsx("div",{className:m.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",t),onClick:r?void 0:n,role:"region","aria-label":"UfeatureUimportance",children:a||"UfeatureUimportance Component"}),ge=({className:t,children:a,disabled:r=!1,onClick:n})=>i.jsx("div",{className:m.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",t),onClick:r?void 0:n,role:"region","aria-label":"UmodelUprediction",children:a||"UmodelUprediction Component"}),fe=({className:t,children:a,disabled:r})=>i.jsx("div",{className:m.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed",t),role:"region","aria-label":"QaReport",children:a||"QaReport Component"}),be=({className:t,children:a,disabled:r=!1,onClick:n})=>i.jsx("div",{className:m.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",t),onClick:r?void 0:n,role:"region","aria-label":"UreportUbuilder",children:a||"UreportUbuilder Component"}),me=({className:t,children:a,disabled:r})=>i.jsx("div",{className:m.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",r&&"opacity-50 cursor-not-allowed",t),role:"region","aria-label":"SupportDashboard",children:a||"SupportDashboard Component"}),xe=({value:t,previousValue:a,format:r="percentage",currency:n="$",showArrow:s=!0,size:d="md",className:p})=>{const x=t-a,E=a!==0?x/a*100:0,f=x>=0,y=()=>{switch(r){case"percentage":return`${Math.abs(E).toFixed(1)}%`;case"currency":return`${n}${Math.abs(x).toFixed(2)}`;case"number":return Math.abs(x).toFixed(0);default:return""}},h={sm:"text-xs",md:"text-sm",lg:"text-base"},v={sm:"w-3 h-3",md:"w-4 h-4",lg:"w-5 h-5"};return i.jsxs("div",{className:m.cn("inline-flex items-center gap-1 font-semibold",f?"text-green-600 dark:text-green-400":"text-red-600 dark:text-red-400",h[d],p),children:[s&&i.jsx("svg",{className:m.cn(v[d]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:f?i.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 10l7-7m0 0l7 7m-7-7v18"}):i.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 14l-7 7m0 0l-7-7m7 7V3"})}),i.jsxs("span",{children:[f?"+":"-",y()]})]})};g.ComparisonSection=se,g.QaReport=fe,g.SupportDashboard=me,g.TrendIndicator=xe,g.UcontainerUstats=de,g.UfeatureUcomparison=ce,g.UfeatureUimportance=ue,g.UmodelUprediction=ge,g.UreportUbuilder=be,g.createComparisonData=A,g.createEmailComparisonData=le,Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/analytics-components",
3
- "version": "1.1.0",
3
+ "version": "2.0.0",
4
4
  "description": "analytics UI components for React",
5
5
  "type": "module",
6
6
  "main": "dist/index.umd.js",
@@ -1,10 +0,0 @@
1
- import { default as React } from 'react';
2
- export interface EmptyStateProps {
3
- icon?: React.ReactNode;
4
- title?: string;
5
- description?: string;
6
- action?: React.ReactNode;
7
- className?: string;
8
- }
9
- export declare const EmptyState: React.FC<EmptyStateProps>;
10
- //# sourceMappingURL=empty-state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"empty-state.d.ts","sourceRoot":"","sources":["../src/empty-state.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+BhD,CAAC"}
package/dist/gauge.d.ts DELETED
@@ -1,34 +0,0 @@
1
- import { default as React } from 'react';
2
- export interface GaugeProps {
3
- /** Current value (0-100) */
4
- value: number;
5
- /** Minimum value */
6
- min?: number;
7
- /** Maximum value */
8
- max?: number;
9
- /** Gauge size */
10
- size?: number;
11
- /** Stroke width */
12
- strokeWidth?: number;
13
- /** Show value text */
14
- showValue?: boolean;
15
- /** Label */
16
- label?: string;
17
- /** Color variant */
18
- variant?: 'primary' | 'success' | 'warning' | 'danger';
19
- /** Additional className */
20
- className?: string;
21
- }
22
- /**
23
- * Gauge Component
24
- *
25
- * Circular gauge/speedometer indicator.
26
- * Displays progress in a semi-circular arc.
27
- *
28
- * @example
29
- * ```tsx
30
- * <Gauge value={75} label="CPU Usage" variant="success" />
31
- * ```
32
- */
33
- export declare const Gauge: React.FC<GaugeProps>;
34
- //# sourceMappingURL=gauge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gauge.d.ts","sourceRoot":"","sources":["../src/gauge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACvD,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CA4DtC,CAAC"}
@@ -1,10 +0,0 @@
1
- import { default as React } from 'react';
2
- export interface LoadingStateProps {
3
- message?: string;
4
- size?: 'small' | 'default' | 'large';
5
- fullScreen?: boolean;
6
- variant?: 'default' | 'white' | 'success' | 'warning' | 'error';
7
- className?: string;
8
- }
9
- export declare const LoadingState: React.FC<LoadingStateProps>;
10
- //# sourceMappingURL=loading-state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loading-state.d.ts","sourceRoot":"","sources":["../src/loading-state.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAmDpD,CAAC"}
@@ -1,33 +0,0 @@
1
- /**
2
- * UmetricUcomparison Component
3
- *
4
- * A reusable UmetricUcomparison component with full dark mode support.
5
- * Optimized for accessibility and AI-assisted development.
6
- *
7
- * @component
8
- * @example
9
- * ```tsx
10
- * <UmetricUcomparison className="custom-class" />
11
- * ```
12
- *
13
- * @remarks
14
- * This component supports:
15
- * - Light and dark themes automatically
16
- * - Responsive design
17
- * - Accessibility features
18
- * - TypeScript type safety
19
- *
20
- * @see {@link https://docs.example.com/components/metric-comparison}
21
- */
22
- export interface UmetricUcomparisonProps {
23
- /** Additional CSS classes */
24
- className?: string;
25
- /** Component children */
26
- children?: React.ReactNode;
27
- /** Disabled state */
28
- disabled?: boolean;
29
- /** Callback when component is interacted with */
30
- onClick?: () => void;
31
- }
32
- export declare const UmetricUcomparison: ({ className, children, disabled, onClick, }: UmetricUcomparisonProps) => import("react/jsx-runtime").JSX.Element;
33
- //# sourceMappingURL=metric-comparison.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metric-comparison.d.ts","sourceRoot":"","sources":["../src/metric-comparison.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,uBAAuB;IACtC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,kBAAkB,GAAI,6CAKhC,uBAAuB,4CAmBzB,CAAC"}
@@ -1,33 +0,0 @@
1
- /**
2
- * UprogressUtracker Component
3
- *
4
- * A reusable UprogressUtracker component with full dark mode support.
5
- * Optimized for accessibility and AI-assisted development.
6
- *
7
- * @component
8
- * @example
9
- * ```tsx
10
- * <UprogressUtracker className="custom-class" />
11
- * ```
12
- *
13
- * @remarks
14
- * This component supports:
15
- * - Light and dark themes automatically
16
- * - Responsive design
17
- * - Accessibility features
18
- * - TypeScript type safety
19
- *
20
- * @see {@link https://docs.example.com/components/progress-tracker}
21
- */
22
- export interface UprogressUtrackerProps {
23
- /** Additional CSS classes */
24
- className?: string;
25
- /** Component children */
26
- children?: React.ReactNode;
27
- /** Disabled state */
28
- disabled?: boolean;
29
- /** Callback when component is interacted with */
30
- onClick?: () => void;
31
- }
32
- export declare const UprogressUtracker: ({ className, children, disabled, onClick, }: UprogressUtrackerProps) => import("react/jsx-runtime").JSX.Element;
33
- //# sourceMappingURL=progress-tracker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress-tracker.d.ts","sourceRoot":"","sources":["../src/progress-tracker.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,sBAAsB;IACrC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,iBAAiB,GAAI,6CAK/B,sBAAsB,4CAmBxB,CAAC"}
@@ -1,28 +0,0 @@
1
- import { default as React } from 'react';
2
- export interface SparklineProps {
3
- /** Data points */
4
- data: number[];
5
- /** Width */
6
- width?: number;
7
- /** Height */
8
- height?: number;
9
- /** Line color */
10
- color?: string;
11
- /** Fill area */
12
- fill?: boolean;
13
- /** Additional className */
14
- className?: string;
15
- }
16
- /**
17
- * Sparkline Component
18
- *
19
- * Mini inline chart for showing trends.
20
- * Renders a simple line chart without axes.
21
- *
22
- * @example
23
- * ```tsx
24
- * <Sparkline data={[1, 5, 2, 8, 3, 7]} color="#10b981" />
25
- * ```
26
- */
27
- export declare const Sparkline: React.FC<SparklineProps>;
28
- //# sourceMappingURL=sparkline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sparkline.d.ts","sourceRoot":"","sources":["../src/sparkline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,cAAc;IAC7B,kBAAkB;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA6C9C,CAAC"}
@@ -1,52 +0,0 @@
1
- import { default as React } from 'react';
2
- export interface StatDisplayProps {
3
- /** The main value/number to display */
4
- value: string | number;
5
- /** Label/description for the stat */
6
- label: string;
7
- /** Color variant */
8
- variant?: 'primary' | 'success' | 'warning' | 'danger' | 'neutral' | 'white';
9
- /** Size variant */
10
- size?: 'sm' | 'md' | 'lg' | 'xl';
11
- /** Text alignment */
12
- align?: 'left' | 'center' | 'right';
13
- /** Icon to display above/beside the value */
14
- icon?: React.ComponentType<{
15
- className?: string;
16
- }>;
17
- /** Icon position */
18
- iconPosition?: 'top' | 'left';
19
- /** Additional className for the container */
20
- className?: string;
21
- /** Value className override */
22
- valueClassName?: string;
23
- /** Label className override */
24
- labelClassName?: string;
25
- }
26
- /**
27
- * StatDisplay Component
28
- *
29
- * Displays a statistic or metric with a value and label.
30
- * Commonly used in dashboards, hero sections, and analytics displays.
31
- *
32
- * @example
33
- * ```tsx
34
- * <StatDisplay value="5K" label="Gas Overhead" variant="white" />
35
- * <StatDisplay value="42" label="Active Users" variant="primary" size="lg" />
36
- * ```
37
- *
38
- * @example
39
- * ```tsx
40
- * import { ChartBarIcon } from '@heroicons/react/24/outline';
41
- *
42
- * <StatDisplay
43
- * value="1,234"
44
- * label="Total Points"
45
- * icon={ChartBarIcon}
46
- * iconPosition="top"
47
- * variant="success"
48
- * />
49
- * ```
50
- */
51
- export declare const StatDisplay: React.FC<StatDisplayProps>;
52
- //# sourceMappingURL=stat-display.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stat-display.d.ts","sourceRoot":"","sources":["../src/stat-display.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IAC7E,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,oBAAoB;IACpB,YAAY,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC9B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+BAA+B;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA6HlD,CAAC"}
@@ -1,50 +0,0 @@
1
- import { default as React } from 'react';
2
- import { VariantProps } from 'class-variance-authority';
3
- declare const pageTitleVariants: (props?: ({
4
- variant?: "h2" | "h3" | "hero" | "display" | "h1" | null | undefined;
5
- responsive?: boolean | null | undefined;
6
- align?: "left" | "center" | "right" | null | undefined;
7
- color?: "default" | "muted" | "vibrant" | "brand" | null | undefined;
8
- } & import('class-variance-authority/types').ClassProp) | undefined) => string;
9
- export interface PageTitleProps extends VariantProps<typeof pageTitleVariants> {
10
- children: React.ReactNode;
11
- className?: string;
12
- as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
13
- }
14
- export declare const PageTitle: React.FC<PageTitleProps>;
15
- declare const sectionTitleVariants: (props?: ({
16
- variant?: "h2" | "h3" | "h4" | "h5" | "h6" | null | undefined;
17
- spacing?: "sm" | "md" | "lg" | "none" | "xl" | null | undefined;
18
- align?: "left" | "center" | "right" | null | undefined;
19
- } & import('class-variance-authority/types').ClassProp) | undefined) => string;
20
- export interface SectionTitleProps extends VariantProps<typeof sectionTitleVariants> {
21
- children: React.ReactNode;
22
- className?: string;
23
- as?: 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
24
- }
25
- export declare const SectionTitle: React.FC<SectionTitleProps>;
26
- declare const bodyTextVariants: (props?: ({
27
- variant?: "small" | "large" | "body" | "caption" | "lead" | null | undefined;
28
- color?: "default" | "primary" | "muted" | null | undefined;
29
- align?: "left" | "center" | "right" | "justify" | null | undefined;
30
- } & import('class-variance-authority/types').ClassProp) | undefined) => string;
31
- export interface BodyTextProps extends VariantProps<typeof bodyTextVariants> {
32
- children: React.ReactNode;
33
- className?: string;
34
- as?: keyof React.JSX.IntrinsicElements;
35
- }
36
- export declare const BodyText: React.FC<BodyTextProps>;
37
- declare const textLinkVariants: (props?: ({
38
- variant?: "default" | "button" | "muted" | "subtle" | null | undefined;
39
- external?: boolean | null | undefined;
40
- } & import('class-variance-authority/types').ClassProp) | undefined) => string;
41
- export interface TextLinkProps extends VariantProps<typeof textLinkVariants> {
42
- children: React.ReactNode;
43
- href: string;
44
- className?: string;
45
- target?: string;
46
- rel?: string;
47
- }
48
- export declare const TextLink: React.FC<TextLinkProps>;
49
- export {};
50
- //# sourceMappingURL=typography.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typography.d.ts","sourceRoot":"","sources":["../src/typography.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKlE,QAAA,MAAM,iBAAiB;;;;;8EAgCrB,CAAC;AAEH,MAAM,WAAW,cAAe,SAAQ,YAAY,CAAC,OAAO,iBAAiB,CAAC;IAC5E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC9C;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAgC9C,CAAC;AAGF,QAAA,MAAM,oBAAoB;;;;8EA2BxB,CAAC;AAEH,MAAM,WAAW,iBACf,SAAQ,YAAY,CAAC,OAAO,oBAAoB,CAAC;IACjD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACvC;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAoBpD,CAAC;AAGF,QAAA,MAAM,gBAAgB;;;;8EA0BpB,CAAC;AAEH,MAAM,WAAW,aAAc,SAAQ,YAAY,CAAC,OAAO,gBAAgB,CAAC;IAC1E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC;CACxC;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAa5C,CAAC;AAGF,QAAA,MAAM,gBAAgB;;;8EAkBpB,CAAC;AAEH,MAAM,WAAW,aAAc,SAAQ,YAAY,CAAC,OAAO,gBAAgB,CAAC;IAC1E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAkC5C,CAAC"}