universal-adaptive-bars 0.0.1
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/README.md +110 -0
- package/dist/smart-bar-chart.js +3863 -0
- package/dist/smart-bar-chart.umd.cjs +20 -0
- package/dist/vite.svg +1 -0
- package/package.json +72 -0
- package/src/lib/SmartBarChart.tsx +526 -0
- package/src/lib/SmartBarChartNative.tsx +528 -0
- package/src/lib/__tests__/SmartBarChart.test.tsx +69 -0
- package/src/lib/components/Bar.tsx +49 -0
- package/src/lib/components/BarNative.tsx +44 -0
- package/src/lib/components/Tooltip.tsx +35 -0
- package/src/lib/components/TooltipNative.tsx +60 -0
- package/src/lib/hooks/useChartData.ts +212 -0
- package/src/lib/index.ts +2 -0
- package/src/lib/native.ts +1 -0
- package/src/lib/services/gemini.ts +79 -0
- package/src/lib/types.ts +64 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
(function(ie,T){typeof exports=="object"&&typeof module<"u"?T(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],T):(ie=typeof globalThis<"u"?globalThis:ie||self,T(ie.SmartBarChart={},ie.React))})(this,(function(ie,T){"use strict";var Fe={exports:{}},we={};var gt;function Bn(){if(gt)return we;gt=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,a,o){var i=null;if(o!==void 0&&(i=""+o),a.key!==void 0&&(i=""+a.key),"key"in a){o={};for(var s in a)s!=="key"&&(o[s]=a[s])}else o=a;return a=o.ref,{$$typeof:e,type:r,key:i,ref:a!==void 0?a:null,props:o}}return we.Fragment=t,we.jsx=n,we.jsxs=n,we}var ve={};var yt;function qn(){return yt||(yt=1,process.env.NODE_ENV!=="production"&&(function(){function e(d){if(d==null)return null;if(typeof d=="function")return d.$$typeof===v?null:d.displayName||d.name||null;if(typeof d=="string")return d;switch(d){case x:return"Fragment";case C:return"Profiler";case E:return"StrictMode";case H:return"Suspense";case be:return"SuspenseList";case fe:return"Activity"}if(typeof d=="object")switch(typeof d.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),d.$$typeof){case p:return"Portal";case $:return d.displayName||"Context";case S:return(d._context.displayName||"Context")+".Consumer";case _:var w=d.render;return d=d.displayName,d||(d=w.displayName||w.name||"",d=d!==""?"ForwardRef("+d+")":"ForwardRef"),d;case ne:return w=d.displayName||null,w!==null?w:e(d.type)||"Memo";case re:w=d._payload,d=d._init;try{return e(d(w))}catch{}}return null}function t(d){return""+d}function n(d){try{t(d);var w=!1}catch{w=!0}if(w){w=console;var M=w.error,N=typeof Symbol=="function"&&Symbol.toStringTag&&d[Symbol.toStringTag]||d.constructor.name||"Object";return M.call(w,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",N),t(d)}}function r(d){if(d===x)return"<>";if(typeof d=="object"&&d!==null&&d.$$typeof===re)return"<...>";try{var w=e(d);return w?"<"+w+">":"<...>"}catch{return"<...>"}}function a(){var d=I.A;return d===null?null:d.getOwner()}function o(){return Error("react-stack-top-frame")}function i(d){if(D.call(d,"key")){var w=Object.getOwnPropertyDescriptor(d,"key").get;if(w&&w.isReactWarning)return!1}return d.key!==void 0}function s(d,w){function M(){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)",w))}M.isReactWarning=!0,Object.defineProperty(d,"key",{get:M,configurable:!0})}function u(){var d=e(this.type);return K[d]||(K[d]=!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.")),d=this.props.ref,d!==void 0?d:null}function c(d,w,M,N,z,Ie){var A=M.ref;return d={$$typeof:y,type:d,key:w,props:M,_owner:N},(A!==void 0?A:null)!==null?Object.defineProperty(d,"ref",{enumerable:!1,get:u}):Object.defineProperty(d,"ref",{enumerable:!1,value:null}),d._store={},Object.defineProperty(d._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(d,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(d,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:z}),Object.defineProperty(d,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:Ie}),Object.freeze&&(Object.freeze(d.props),Object.freeze(d)),d}function h(d,w,M,N,z,Ie){var A=w.children;if(A!==void 0)if(N)if(V(A)){for(N=0;N<A.length;N++)f(A[N]);Object.freeze&&Object.freeze(A)}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 f(A);if(D.call(w,"key")){A=e(d);var oe=Object.keys(w).filter(function(Pe){return Pe!=="key"});N=0<oe.length?"{key: someKey, "+oe.join(": ..., ")+": ...}":"{key: someKey}",Q[A+N]||(oe=0<oe.length?"{"+oe.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
2
|
+
let props = %s;
|
|
3
|
+
<%s {...props} />
|
|
4
|
+
React keys must be passed directly to JSX without using spread:
|
|
5
|
+
let props = %s;
|
|
6
|
+
<%s key={someKey} {...props} />`,N,A,oe,A),Q[A+N]=!0)}if(A=null,M!==void 0&&(n(M),A=""+M),i(w)&&(n(w.key),A=""+w.key),"key"in w){M={};for(var de in w)de!=="key"&&(M[de]=w[de])}else M=w;return A&&s(M,typeof d=="function"?d.displayName||d.name||"Unknown":d),c(d,A,M,a(),z,Ie)}function f(d){l(d)?d._store&&(d._store.validated=1):typeof d=="object"&&d!==null&&d.$$typeof===re&&(d._payload.status==="fulfilled"?l(d._payload.value)&&d._payload.value._store&&(d._payload.value._store.validated=1):d._store&&(d._store.validated=1))}function l(d){return typeof d=="object"&&d!==null&&d.$$typeof===y}var m=T,y=Symbol.for("react.transitional.element"),p=Symbol.for("react.portal"),x=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),C=Symbol.for("react.profiler"),S=Symbol.for("react.consumer"),$=Symbol.for("react.context"),_=Symbol.for("react.forward_ref"),H=Symbol.for("react.suspense"),be=Symbol.for("react.suspense_list"),ne=Symbol.for("react.memo"),re=Symbol.for("react.lazy"),fe=Symbol.for("react.activity"),v=Symbol.for("react.client.reference"),I=m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,D=Object.prototype.hasOwnProperty,V=Array.isArray,ae=console.createTask?console.createTask:function(){return null};m={react_stack_bottom_frame:function(d){return d()}};var J,K={},G=m.react_stack_bottom_frame.bind(m,o)(),P=ae(r(o)),Q={};ve.Fragment=x,ve.jsx=function(d,w,M){var N=1e4>I.recentlyCreatedOwnerStacks++;return h(d,w,M,!1,N?Error("react-stack-top-frame"):G,N?ae(r(d)):P)},ve.jsxs=function(d,w,M){var N=1e4>I.recentlyCreatedOwnerStacks++;return h(d,w,M,!0,N?Error("react-stack-top-frame"):G,N?ae(r(d)):P)}})()),ve}var pt;function Vn(){return pt||(pt=1,process.env.NODE_ENV==="production"?Fe.exports=Bn():Fe.exports=qn()),Fe.exports}var b=Vn();function $e(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function zn(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function bt(e){let t,n,r;e.length!==2?(t=$e,n=(s,u)=>$e(e(s),u),r=(s,u)=>e(s)-u):(t=e===$e||e===zn?e:Xn,n=e,r=e);function a(s,u,c=0,h=s.length){if(c<h){if(t(u,u)!==0)return h;do{const f=c+h>>>1;n(s[f],u)<0?c=f+1:h=f}while(c<h)}return c}function o(s,u,c=0,h=s.length){if(c<h){if(t(u,u)!==0)return h;do{const f=c+h>>>1;n(s[f],u)<=0?c=f+1:h=f}while(c<h)}return c}function i(s,u,c=0,h=s.length){const f=a(s,u,c,h-1);return f>c&&r(s[f-1],u)>-r(s[f],u)?f-1:f}return{left:a,center:i,right:o}}function Xn(){return 0}function Jn(e){return e===null?NaN:+e}const Kn=bt($e).right;bt(Jn).center;class xt extends Map{constructor(t,n=er){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,a]of t)this.set(r,a)}get(t){return super.get(wt(this,t))}has(t){return super.has(wt(this,t))}set(t,n){return super.set(Qn(this,t),n)}delete(t){return super.delete(Zn(this,t))}}function wt({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function Qn({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Zn({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function er(e){return e!==null&&typeof e=="object"?e.valueOf():e}const tr=Math.sqrt(50),nr=Math.sqrt(10),rr=Math.sqrt(2);function We(e,t,n){const r=(t-e)/Math.max(0,n),a=Math.floor(Math.log10(r)),o=r/Math.pow(10,a),i=o>=tr?10:o>=nr?5:o>=rr?2:1;let s,u,c;return a<0?(c=Math.pow(10,-a)/i,s=Math.round(e*c),u=Math.round(t*c),s/c<e&&++s,u/c>t&&--u,c=-c):(c=Math.pow(10,a)*i,s=Math.round(e/c),u=Math.round(t/c),s*c<e&&++s,u*c>t&&--u),u<s&&.5<=n&&n<2?We(e,t,n*2):[s,u,c]}function ar(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const r=t<e,[a,o,i]=r?We(t,e,n):We(e,t,n);if(!(o>=a))return[];const s=o-a+1,u=new Array(s);if(r)if(i<0)for(let c=0;c<s;++c)u[c]=(o-c)/-i;else for(let c=0;c<s;++c)u[c]=(o-c)*i;else if(i<0)for(let c=0;c<s;++c)u[c]=(a+c)/-i;else for(let c=0;c<s;++c)u[c]=(a+c)*i;return u}function Ze(e,t,n){return t=+t,e=+e,n=+n,We(e,t,n)[2]}function or(e,t,n){t=+t,e=+e,n=+n;const r=t<e,a=r?Ze(t,e,n):Ze(e,t,n);return(r?-1:1)*(a<0?1/-a:a)}function ir(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,o=new Array(a);++r<a;)o[r]=e+r*n;return o}function et(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}const vt=Symbol("implicit");function Et(){var e=new xt,t=[],n=[],r=vt;function a(o){let i=e.get(o);if(i===void 0){if(r!==vt)return r;e.set(o,i=t.push(o)-1)}return n[i%n.length]}return a.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new xt;for(const i of o)e.has(i)||e.set(i,t.push(i)-1);return a},a.range=function(o){return arguments.length?(n=Array.from(o),a):n.slice()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.copy=function(){return Et(t,n).unknown(r)},et.apply(a,arguments),a}function Mt(){var e=Et().unknown(void 0),t=e.domain,n=e.range,r=0,a=1,o,i,s=!1,u=0,c=0,h=.5;delete e.unknown;function f(){var l=t().length,m=a<r,y=m?a:r,p=m?r:a;o=(p-y)/Math.max(1,l-u+c*2),s&&(o=Math.floor(o)),y+=(p-y-o*(l-u))*h,i=o*(1-u),s&&(y=Math.round(y),i=Math.round(i));var x=ir(l).map(function(E){return y+o*E});return n(m?x.reverse():x)}return e.domain=function(l){return arguments.length?(t(l),f()):t()},e.range=function(l){return arguments.length?([r,a]=l,r=+r,a=+a,f()):[r,a]},e.rangeRound=function(l){return[r,a]=l,r=+r,a=+a,s=!0,f()},e.bandwidth=function(){return i},e.step=function(){return o},e.round=function(l){return arguments.length?(s=!!l,f()):s},e.padding=function(l){return arguments.length?(u=Math.min(1,c=+l),f()):u},e.paddingInner=function(l){return arguments.length?(u=Math.min(1,l),f()):u},e.paddingOuter=function(l){return arguments.length?(c=+l,f()):c},e.align=function(l){return arguments.length?(h=Math.max(0,Math.min(1,l)),f()):h},e.copy=function(){return Mt(t(),[r,a]).round(s).paddingInner(u).paddingOuter(c).align(h)},et.apply(f(),arguments)}function tt(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function kt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Ee(){}var Me=.7,Le=1/Me,he="\\s*([+-]?\\d+)\\s*",ke="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",q="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",sr=/^#([0-9a-f]{3,8})$/,cr=new RegExp(`^rgb\\(${he},${he},${he}\\)$`),ur=new RegExp(`^rgb\\(${q},${q},${q}\\)$`),lr=new RegExp(`^rgba\\(${he},${he},${he},${ke}\\)$`),fr=new RegExp(`^rgba\\(${q},${q},${q},${ke}\\)$`),dr=new RegExp(`^hsl\\(${ke},${q},${q}\\)$`),hr=new RegExp(`^hsla\\(${ke},${q},${q},${ke}\\)$`),Ot={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};tt(Ee,Oe,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:St,formatHex:St,formatHex8:mr,formatHsl:gr,formatRgb:_t,toString:_t});function St(){return this.rgb().formatHex()}function mr(){return this.rgb().formatHex8()}function gr(){return Dt(this).formatHsl()}function _t(){return this.rgb().formatRgb()}function Oe(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=sr.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Ct(t):n===3?new F(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?He(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?He(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=cr.exec(e))?new F(t[1],t[2],t[3],1):(t=ur.exec(e))?new F(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=lr.exec(e))?He(t[1],t[2],t[3],t[4]):(t=fr.exec(e))?He(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=dr.exec(e))?Tt(t[1],t[2]/100,t[3]/100,1):(t=hr.exec(e))?Tt(t[1],t[2]/100,t[3]/100,t[4]):Ot.hasOwnProperty(e)?Ct(Ot[e]):e==="transparent"?new F(NaN,NaN,NaN,0):null}function Ct(e){return new F(e>>16&255,e>>8&255,e&255,1)}function He(e,t,n,r){return r<=0&&(e=t=n=NaN),new F(e,t,n,r)}function yr(e){return e instanceof Ee||(e=Oe(e)),e?(e=e.rgb(),new F(e.r,e.g,e.b,e.opacity)):new F}function nt(e,t,n,r){return arguments.length===1?yr(e):new F(e,t,n,r??1)}function F(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}tt(F,nt,kt(Ee,{brighter(e){return e=e==null?Le:Math.pow(Le,e),new F(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Me:Math.pow(Me,e),new F(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new F(se(this.r),se(this.g),se(this.b),Ge(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Nt,formatHex:Nt,formatHex8:pr,formatRgb:Rt,toString:Rt}));function Nt(){return`#${ce(this.r)}${ce(this.g)}${ce(this.b)}`}function pr(){return`#${ce(this.r)}${ce(this.g)}${ce(this.b)}${ce((isNaN(this.opacity)?1:this.opacity)*255)}`}function Rt(){const e=Ge(this.opacity);return`${e===1?"rgb(":"rgba("}${se(this.r)}, ${se(this.g)}, ${se(this.b)}${e===1?")":`, ${e})`}`}function Ge(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function se(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ce(e){return e=se(e),(e<16?"0":"")+e.toString(16)}function Tt(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new U(e,t,n,r)}function Dt(e){if(e instanceof U)return new U(e.h,e.s,e.l,e.opacity);if(e instanceof Ee||(e=Oe(e)),!e)return new U;if(e instanceof U)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),o=Math.max(t,n,r),i=NaN,s=o-a,u=(o+a)/2;return s?(t===o?i=(n-r)/s+(n<r)*6:n===o?i=(r-t)/s+2:i=(t-n)/s+4,s/=u<.5?o+a:2-o-a,i*=60):s=u>0&&u<1?0:i,new U(i,s,u,e.opacity)}function br(e,t,n,r){return arguments.length===1?Dt(e):new U(e,t,n,r??1)}function U(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}tt(U,br,kt(Ee,{brighter(e){return e=e==null?Le:Math.pow(Le,e),new U(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Me:Math.pow(Me,e),new U(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new F(rt(e>=240?e-240:e+120,a,r),rt(e,a,r),rt(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new U(At(this.h),Ue(this.s),Ue(this.l),Ge(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Ge(this.opacity);return`${e===1?"hsl(":"hsla("}${At(this.h)}, ${Ue(this.s)*100}%, ${Ue(this.l)*100}%${e===1?")":`, ${e})`}`}}));function At(e){return e=(e||0)%360,e<0?e+360:e}function Ue(e){return Math.max(0,Math.min(1,e||0))}function rt(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const at=e=>()=>e;function xr(e,t){return function(n){return e+n*t}}function wr(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function vr(e){return(e=+e)==1?It:function(t,n){return n-t?wr(t,n,e):at(isNaN(t)?n:t)}}function It(e,t){var n=t-e;return n?xr(e,n):at(isNaN(e)?t:e)}const Pt=(function e(t){var n=vr(t);function r(a,o){var i=n((a=nt(a)).r,(o=nt(o)).r),s=n(a.g,o.g),u=n(a.b,o.b),c=It(a.opacity,o.opacity);return function(h){return a.r=i(h),a.g=s(h),a.b=u(h),a.opacity=c(h),a+""}}return r.gamma=e,r})(1);function Er(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),a;return function(o){for(a=0;a<n;++a)r[a]=e[a]*(1-o)+t[a]*o;return r}}function Mr(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function kr(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,a=new Array(r),o=new Array(n),i;for(i=0;i<r;++i)a[i]=st(e[i],t[i]);for(;i<n;++i)o[i]=t[i];return function(s){for(i=0;i<r;++i)o[i]=a[i](s);return o}}function Or(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Be(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Sr(e,t){var n={},r={},a;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(a in t)a in e?n[a]=st(e[a],t[a]):r[a]=t[a];return function(o){for(a in n)r[a]=n[a](o);return r}}var ot=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,it=new RegExp(ot.source,"g");function _r(e){return function(){return e}}function Cr(e){return function(t){return e(t)+""}}function Nr(e,t){var n=ot.lastIndex=it.lastIndex=0,r,a,o,i=-1,s=[],u=[];for(e=e+"",t=t+"";(r=ot.exec(e))&&(a=it.exec(t));)(o=a.index)>n&&(o=t.slice(n,o),s[i]?s[i]+=o:s[++i]=o),(r=r[0])===(a=a[0])?s[i]?s[i]+=a:s[++i]=a:(s[++i]=null,u.push({i,x:Be(r,a)})),n=it.lastIndex;return n<t.length&&(o=t.slice(n),s[i]?s[i]+=o:s[++i]=o),s.length<2?u[0]?Cr(u[0].x):_r(t):(t=u.length,function(c){for(var h=0,f;h<t;++h)s[(f=u[h]).i]=f.x(c);return s.join("")})}function st(e,t){var n=typeof t,r;return t==null||n==="boolean"?at(t):(n==="number"?Be:n==="string"?(r=Oe(t))?(t=r,Pt):Nr:t instanceof Oe?Pt:t instanceof Date?Or:Mr(t)?Er:Array.isArray(t)?kr:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?Sr:Be)(e,t)}function Rr(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function Tr(e){return function(){return e}}function Dr(e){return+e}var jt=[0,1];function me(e){return e}function ct(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:Tr(isNaN(t)?NaN:.5)}function Ar(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function Ir(e,t,n){var r=e[0],a=e[1],o=t[0],i=t[1];return a<r?(r=ct(a,r),o=n(i,o)):(r=ct(r,a),o=n(o,i)),function(s){return o(r(s))}}function Pr(e,t,n){var r=Math.min(e.length,t.length)-1,a=new Array(r),o=new Array(r),i=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++i<r;)a[i]=ct(e[i],e[i+1]),o[i]=n(t[i],t[i+1]);return function(s){var u=Kn(e,s,1,r)-1;return o[u](a[u](s))}}function jr(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Yr(){var e=jt,t=jt,n=st,r,a,o,i=me,s,u,c;function h(){var l=Math.min(e.length,t.length);return i!==me&&(i=Ar(e[0],e[l-1])),s=l>2?Pr:Ir,u=c=null,f}function f(l){return l==null||isNaN(l=+l)?o:(u||(u=s(e.map(r),t,n)))(r(i(l)))}return f.invert=function(l){return i(a((c||(c=s(t,e.map(r),Be)))(l)))},f.domain=function(l){return arguments.length?(e=Array.from(l,Dr),h()):e.slice()},f.range=function(l){return arguments.length?(t=Array.from(l),h()):t.slice()},f.rangeRound=function(l){return t=Array.from(l),n=Rr,h()},f.clamp=function(l){return arguments.length?(i=l?!0:me,h()):i!==me},f.interpolate=function(l){return arguments.length?(n=l,h()):n},f.unknown=function(l){return arguments.length?(o=l,f):o},function(l,m){return r=l,a=m,h()}}function Fr(){return Yr()(me,me)}function $r(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function qe(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function ge(e){return e=qe(Math.abs(e)),e?e[1]:NaN}function Wr(e,t){return function(n,r){for(var a=n.length,o=[],i=0,s=e[0],u=0;a>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),o.push(n.substring(a-=s,a+s)),!((u+=s+1)>r));)s=e[i=(i+1)%e.length];return o.reverse().join(t)}}function Lr(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var Hr=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ve(e){if(!(t=Hr.exec(e)))throw new Error("invalid format: "+e);var t;return new ut({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Ve.prototype=ut.prototype;function ut(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}ut.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Gr(e){e:for(var t=e.length,n=1,r=-1,a;n<t;++n)switch(e[n]){case".":r=a=n;break;case"0":r===0&&(r=n),a=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(a+1):e}var Yt;function Ur(e,t){var n=qe(e,t);if(!n)return e+"";var r=n[0],a=n[1],o=a-(Yt=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,i=r.length;return o===i?r:o>i?r+new Array(o-i+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+qe(e,Math.max(0,t+o-1))[0]}function Ft(e,t){var n=qe(e,t);if(!n)return e+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const $t={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:$r,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Ft(e*100,t),r:Ft,s:Ur,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Wt(e){return e}var Lt=Array.prototype.map,Ht=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Br(e){var t=e.grouping===void 0||e.thousands===void 0?Wt:Wr(Lt.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?Wt:Lr(Lt.call(e.numerals,String)),i=e.percent===void 0?"%":e.percent+"",s=e.minus===void 0?"−":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function c(f){f=Ve(f);var l=f.fill,m=f.align,y=f.sign,p=f.symbol,x=f.zero,E=f.width,C=f.comma,S=f.precision,$=f.trim,_=f.type;_==="n"?(C=!0,_="g"):$t[_]||(S===void 0&&(S=12),$=!0,_="g"),(x||l==="0"&&m==="=")&&(x=!0,l="0",m="=");var H=p==="$"?n:p==="#"&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",be=p==="$"?r:/[%p]/.test(_)?i:"",ne=$t[_],re=/[defgprs%]/.test(_);S=S===void 0?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,S)):Math.max(0,Math.min(20,S));function fe(v){var I=H,D=be,V,ae,J;if(_==="c")D=ne(v)+D,v="";else{v=+v;var K=v<0||1/v<0;if(v=isNaN(v)?u:ne(Math.abs(v),S),$&&(v=Gr(v)),K&&+v==0&&y!=="+"&&(K=!1),I=(K?y==="("?y:s:y==="-"||y==="("?"":y)+I,D=(_==="s"?Ht[8+Yt/3]:"")+D+(K&&y==="("?")":""),re){for(V=-1,ae=v.length;++V<ae;)if(J=v.charCodeAt(V),48>J||J>57){D=(J===46?a+v.slice(V+1):v.slice(V))+D,v=v.slice(0,V);break}}}C&&!x&&(v=t(v,1/0));var G=I.length+v.length+D.length,P=G<E?new Array(E-G+1).join(l):"";switch(C&&x&&(v=t(P+v,P.length?E-D.length:1/0),P=""),m){case"<":v=I+v+D+P;break;case"=":v=I+P+v+D;break;case"^":v=P.slice(0,G=P.length>>1)+I+v+D+P.slice(G);break;default:v=P+I+v+D;break}return o(v)}return fe.toString=function(){return f+""},fe}function h(f,l){var m=c((f=Ve(f),f.type="f",f)),y=Math.max(-8,Math.min(8,Math.floor(ge(l)/3)))*3,p=Math.pow(10,-y),x=Ht[8+y/3];return function(E){return m(p*E)+x}}return{format:c,formatPrefix:h}}var ze,Gt,Ut;qr({thousands:",",grouping:[3],currency:["$",""]});function qr(e){return ze=Br(e),Gt=ze.format,Ut=ze.formatPrefix,ze}function Vr(e){return Math.max(0,-ge(Math.abs(e)))}function zr(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(ge(t)/3)))*3-ge(Math.abs(e)))}function Xr(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,ge(t)-ge(e))+1}function Jr(e,t,n,r){var a=or(e,t,n),o;switch(r=Ve(r??",f"),r.type){case"s":{var i=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=zr(a,i))&&(r.precision=o),Ut(r,i)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=Xr(a,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=Vr(a))&&(r.precision=o-(r.type==="%")*2);break}}return Gt(r)}function Kr(e){var t=e.domain;return e.ticks=function(n){var r=t();return ar(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var a=t();return Jr(a[0],a[a.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),a=0,o=r.length-1,i=r[a],s=r[o],u,c,h=10;for(s<i&&(c=i,i=s,s=c,c=a,a=o,o=c);h-- >0;){if(c=Ze(i,s,n),c===u)return r[a]=i,r[o]=s,t(r);if(c>0)i=Math.floor(i/c)*c,s=Math.ceil(s/c)*c;else if(c<0)i=Math.ceil(i*c)/c,s=Math.floor(s*c)/c;else break;u=c}return e},e}function Bt(){var e=Fr();return e.copy=function(){return jr(e,Bt())},et.apply(e,arguments),Kr(e)}const qt=6048e5,Qr=864e5,Vt=6e4,zt=36e5,Xt=Symbol.for("constructDateFrom");function L(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&Xt in e?e[Xt](t):e instanceof Date?new e.constructor(t):new Date(t)}function R(e,t){return L(t||e,e)}function Jt(e,t,n){const r=R(e,n?.in);return isNaN(t)?L(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Zr(e,t,n){const r=R(e,n?.in);if(isNaN(t))return L(e,NaN);if(!t)return r;const a=r.getDate(),o=L(e,r.getTime());o.setMonth(r.getMonth()+t+1,0);const i=o.getDate();return a>=i?o:(r.setFullYear(o.getFullYear(),o.getMonth(),a),r)}let ea={};function Se(){return ea}function B(e,t){const n=Se(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=R(e,t?.in),o=a.getDay(),i=(o<r?7:0)+o-r;return a.setDate(a.getDate()-i),a.setHours(0,0,0,0),a}function Xe(e,t){return B(e,{...t,weekStartsOn:1})}function Kt(e,t){const n=R(e,t?.in),r=n.getFullYear(),a=L(n,0);a.setFullYear(r+1,0,4),a.setHours(0,0,0,0);const o=Xe(a),i=L(n,0);i.setFullYear(r,0,4),i.setHours(0,0,0,0);const s=Xe(i);return n.getTime()>=o.getTime()?r+1:n.getTime()>=s.getTime()?r:r-1}function Qt(e){const t=R(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Zt(e,...t){const n=L.bind(null,t.find(r=>typeof r=="object"));return t.map(n)}function en(e,t){const n=R(e,t?.in);return n.setHours(0,0,0,0),n}function ta(e,t,n){const[r,a]=Zt(n?.in,e,t),o=en(r),i=en(a),s=+o-Qt(o),u=+i-Qt(i);return Math.round((s-u)/Qr)}function na(e,t){const n=Kt(e,t),r=L(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),Xe(r)}function tn(e,t,n){return Jt(e,t*7,n)}function ra(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function nn(e){return!(!ra(e)&&typeof e!="number"||isNaN(+R(e)))}function aa(e,t){const n=R(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function oa(e,t){const[n,r]=Zt(e,t.start,t.end);return{start:n,end:r}}function ia(e,t){const{start:n,end:r}=oa(t?.in,e);let a=+n>+r;const o=B(a?r:n,t),i=B(a?n:r,t);o.setHours(15),i.setHours(15);const s=+i.getTime();let u=o,c=1;const h=[];for(;+u<=s;)u.setHours(0),h.push(L(n,u)),u=tn(u,c),u.setHours(15);return a?h.reverse():h}function sa(e,t){const n=R(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function ca(e,t){const n=R(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function lt(e,t){const n=Se(),r=n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=R(e,t?.in),o=a.getDay(),i=(o<r?-7:0)+6-(o-r);return a.setDate(a.getDate()+i),a.setHours(23,59,59,999),a}const ua={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},la=(e,t,n)=>{let r;const a=ua[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function ft(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const fa={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},da={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},ha={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},ma={date:ft({formats:fa,defaultWidth:"full"}),time:ft({formats:da,defaultWidth:"full"}),dateTime:ft({formats:ha,defaultWidth:"full"})},ga={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},ya=(e,t,n,r)=>ga[e];function _e(e){return(t,n)=>{const r=n?.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const i=e.defaultFormattingWidth||e.defaultWidth,s=n?.width?String(n.width):i;a=e.formattingValues[s]||e.formattingValues[i]}else{const i=e.defaultWidth,s=n?.width?String(n.width):e.defaultWidth;a=e.values[s]||e.values[i]}const o=e.argumentCallback?e.argumentCallback(t):t;return a[o]}}const pa={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},ba={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},xa={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},wa={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},va={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Ea={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Ma={ordinalNumber:(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:_e({values:pa,defaultWidth:"wide"}),quarter:_e({values:ba,defaultWidth:"wide",argumentCallback:e=>e-1}),month:_e({values:xa,defaultWidth:"wide"}),day:_e({values:wa,defaultWidth:"wide"}),dayPeriod:_e({values:va,defaultWidth:"wide",formattingValues:Ea,defaultFormattingWidth:"wide"})};function Ce(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],o=t.match(a);if(!o)return null;const i=o[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],u=Array.isArray(s)?Oa(s,f=>f.test(i)):ka(s,f=>f.test(i));let c;c=e.valueCallback?e.valueCallback(u):u,c=n.valueCallback?n.valueCallback(c):c;const h=t.slice(i.length);return{value:c,rest:h}}}function ka(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function Oa(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function Sa(e){return(t,n={})=>{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],o=t.match(e.parsePattern);if(!o)return null;let i=e.valueCallback?e.valueCallback(o[0]):o[0];i=n.valueCallback?n.valueCallback(i):i;const s=t.slice(a.length);return{value:i,rest:s}}}const _a=/^(\d+)(th|st|nd|rd)?/i,Ca=/\d+/i,Na={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Ra={any:[/^b/i,/^(a|c)/i]},Ta={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Da={any:[/1/i,/2/i,/3/i,/4/i]},Aa={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},Ia={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Pa={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},ja={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Ya={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Fa={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},$a={ordinalNumber:Sa({matchPattern:_a,parsePattern:Ca,valueCallback:e=>parseInt(e,10)}),era:Ce({matchPatterns:Na,defaultMatchWidth:"wide",parsePatterns:Ra,defaultParseWidth:"any"}),quarter:Ce({matchPatterns:Ta,defaultMatchWidth:"wide",parsePatterns:Da,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Ce({matchPatterns:Aa,defaultMatchWidth:"wide",parsePatterns:Ia,defaultParseWidth:"any"}),day:Ce({matchPatterns:Pa,defaultMatchWidth:"wide",parsePatterns:ja,defaultParseWidth:"any"}),dayPeriod:Ce({matchPatterns:Ya,defaultMatchWidth:"any",parsePatterns:Fa,defaultParseWidth:"any"})},Wa={code:"en-US",formatDistance:la,formatLong:ma,formatRelative:ya,localize:Ma,match:$a,options:{weekStartsOn:0,firstWeekContainsDate:1}};function La(e,t){const n=R(e,t?.in);return ta(n,ca(n))+1}function Ha(e,t){const n=R(e,t?.in),r=+Xe(n)-+na(n);return Math.round(r/qt)+1}function rn(e,t){const n=R(e,t?.in),r=n.getFullYear(),a=Se(),o=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,i=L(t?.in||e,0);i.setFullYear(r+1,0,o),i.setHours(0,0,0,0);const s=B(i,t),u=L(t?.in||e,0);u.setFullYear(r,0,o),u.setHours(0,0,0,0);const c=B(u,t);return+n>=+s?r+1:+n>=+c?r:r-1}function Ga(e,t){const n=Se(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=rn(e,t),o=L(t?.in||e,0);return o.setFullYear(a,0,r),o.setHours(0,0,0,0),B(o,t)}function Ua(e,t){const n=R(e,t?.in),r=+B(n,t)-+Ga(n,t);return Math.round(r/qt)+1}function O(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Z={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return O(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):O(n+1,2)},d(e,t){return O(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return n==="am"?"a.m.":"p.m."}},h(e,t){return O(e.getHours()%12||12,t.length)},H(e,t){return O(e.getHours(),t.length)},m(e,t){return O(e.getMinutes(),t.length)},s(e,t){return O(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return O(a,t.length)}},ye={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},an={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return Z.y(e,t)},Y:function(e,t,n,r){const a=rn(e,r),o=a>0?a:1-a;if(t==="YY"){const i=o%100;return O(i,2)}return t==="Yo"?n.ordinalNumber(o,{unit:"year"}):O(o,t.length)},R:function(e,t){const n=Kt(e);return O(n,t.length)},u:function(e,t){const n=e.getFullYear();return O(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return O(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return O(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Z.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return O(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const a=Ua(e,r);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):O(a,t.length)},I:function(e,t,n){const r=Ha(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):O(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Z.d(e,t)},D:function(e,t,n){const r=La(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):O(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const a=e.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return O(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const a=e.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return O(o,t.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),a=r===0?7:r;switch(t){case"i":return String(a);case"ii":return O(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let a;switch(r===12?a=ye.noon:r===0?a=ye.midnight:a=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let a;switch(r>=17?a=ye.evening:r>=12?a=ye.afternoon:r>=4?a=ye.morning:a=ye.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Z.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Z.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):O(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):O(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Z.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Z.s(e,t)},S:function(e,t){return Z.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return sn(r);case"XXXX":case"XX":return ue(r);default:return ue(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return sn(r);case"xxxx":case"xx":return ue(r);default:return ue(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+on(r,":");default:return"GMT"+ue(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+on(r,":");default:return"GMT"+ue(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return O(r,t.length)},T:function(e,t,n){return O(+e,t.length)}};function on(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Math.trunc(r/60),o=r%60;return o===0?n+String(a):n+String(a)+t+O(o,2)}function sn(e,t){return e%60===0?(e>0?"-":"+")+O(Math.abs(e)/60,2):ue(e,t)}function ue(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=O(Math.trunc(r/60),2),o=O(r%60,2);return n+a+t+o}const cn=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},un=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Ba={p:un,P:(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return cn(e,t);let o;switch(r){case"P":o=t.dateTime({width:"short"});break;case"PP":o=t.dateTime({width:"medium"});break;case"PPP":o=t.dateTime({width:"long"});break;default:o=t.dateTime({width:"full"});break}return o.replace("{{date}}",cn(r,t)).replace("{{time}}",un(a,t))}},qa=/^D+$/,Va=/^Y+$/,za=["D","DD","YY","YYYY"];function Xa(e){return qa.test(e)}function Ja(e){return Va.test(e)}function Ka(e,t,n){const r=Qa(e,t,n);if(console.warn(r),za.includes(e))throw new RangeError(r)}function Qa(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Za=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,eo=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,to=/^'([^]*?)'?$/,no=/''/g,ro=/[a-zA-Z]/;function Y(e,t,n){const r=Se(),a=r.locale??Wa,o=r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,i=r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=R(e,n?.in);if(!nn(s))throw new RangeError("Invalid time value");let u=t.match(eo).map(h=>{const f=h[0];if(f==="p"||f==="P"){const l=Ba[f];return l(h,a.formatLong)}return h}).join("").match(Za).map(h=>{if(h==="''")return{isToken:!1,value:"'"};const f=h[0];if(f==="'")return{isToken:!1,value:ao(h)};if(an[f])return{isToken:!0,value:h};if(f.match(ro))throw new RangeError("Format string contains an unescaped latin alphabet character `"+f+"`");return{isToken:!1,value:h}});a.localize.preprocessor&&(u=a.localize.preprocessor(s,u));const c={firstWeekContainsDate:o,weekStartsOn:i,locale:a};return u.map(h=>{if(!h.isToken)return h.value;const f=h.value;(Ja(f)||Xa(f))&&Ka(f,t,String(e));const l=an[f[0]];return l(s,f,a.localize,c)}).join("")}function ao(e){const t=e.match(to);return t?t[1].replace(no,"'"):e}function oo(e,t){return R(e,t?.in).getMonth()}function ln(e,t){return R(e,t?.in).getFullYear()}function io(e,t,n){const r=+R(e,n?.in),[a,o]=[+R(t.start,n?.in),+R(t.end,n?.in)].sort((i,s)=>i-s);return r>=a&&r<=o}function so(e,t){const n=()=>L(t?.in,NaN),a=fo(e);let o;if(a.date){const c=ho(a.date,2);o=mo(c.restDateString,c.year)}if(!o||isNaN(+o))return n();const i=+o;let s=0,u;if(a.time&&(s=go(a.time),isNaN(s)))return n();if(a.timezone){if(u=yo(a.timezone),isNaN(u))return n()}else{const c=new Date(i+s),h=R(0,t?.in);return h.setFullYear(c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()),h.setHours(c.getUTCHours(),c.getUTCMinutes(),c.getUTCSeconds(),c.getUTCMilliseconds()),h}return R(i+s+u,t?.in)}const Je={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},co=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,uo=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,lo=/^([+-])(\d{2})(?::?(\d{2}))?$/;function fo(e){const t={},n=e.split(Je.dateTimeDelimiter);let r;if(n.length>2)return t;if(/:/.test(n[0])?r=n[0]:(t.date=n[0],r=n[1],Je.timeZoneDelimiter.test(t.date)&&(t.date=e.split(Je.timeZoneDelimiter)[0],r=e.substr(t.date.length,e.length))),r){const a=Je.timezone.exec(r);a?(t.time=r.replace(a[1],""),t.timezone=a[1]):t.time=r}return t}function ho(e,t){const n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),r=e.match(n);if(!r)return{year:NaN,restDateString:""};const a=r[1]?parseInt(r[1]):null,o=r[2]?parseInt(r[2]):null;return{year:o===null?a:o*100,restDateString:e.slice((r[1]||r[2]).length)}}function mo(e,t){if(t===null)return new Date(NaN);const n=e.match(co);if(!n)return new Date(NaN);const r=!!n[4],a=Ne(n[1]),o=Ne(n[2])-1,i=Ne(n[3]),s=Ne(n[4]),u=Ne(n[5])-1;if(r)return vo(t,s,u)?po(t,s,u):new Date(NaN);{const c=new Date(0);return!xo(t,o,i)||!wo(t,a)?new Date(NaN):(c.setUTCFullYear(t,o,Math.max(a,i)),c)}}function Ne(e){return e?parseInt(e):1}function go(e){const t=e.match(uo);if(!t)return NaN;const n=dt(t[1]),r=dt(t[2]),a=dt(t[3]);return Eo(n,r,a)?n*zt+r*Vt+a*1e3:NaN}function dt(e){return e&&parseFloat(e.replace(",","."))||0}function yo(e){if(e==="Z")return 0;const t=e.match(lo);if(!t)return 0;const n=t[1]==="+"?-1:1,r=parseInt(t[2]),a=t[3]&&parseInt(t[3])||0;return Mo(r,a)?n*(r*zt+a*Vt):NaN}function po(e,t,n){const r=new Date(0);r.setUTCFullYear(e,0,4);const a=r.getUTCDay()||7,o=(t-1)*7+n+1-a;return r.setUTCDate(r.getUTCDate()+o),r}const bo=[31,null,31,30,31,30,31,31,30,31,30,31];function fn(e){return e%400===0||e%4===0&&e%100!==0}function xo(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(bo[t]||(fn(e)?29:28))}function wo(e,t){return t>=1&&t<=(fn(e)?366:365)}function vo(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}function Eo(e,t,n){return e===24?t===0&&n===0:n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}function Mo(e,t){return t>=0&&t<=59}const ko=["#6366f1","#8b5cf6","#ec4899","#10b981","#f59e0b","#3b82f6","#ef4444"],Oo=({data:e,view:t,dataKeys:n,colors:r=ko})=>T.useMemo(()=>{if(!e||e.length===0)return[];const i=e.map((c,h)=>{const f=c[n.date],l=f instanceof Date?f:so(f);let m=0,y=[];return Array.isArray(n.value)?n.value.forEach((p,x)=>{const E=Number(c[p])||0;m+=E,y.push({key:p,value:E,color:r[x%r.length]})}):m=Number(c[n.value])||0,{id:c.id||`item-${h}`,label:c[n.label]||"",value:m,stackedValues:y.length>0?y:void 0,date:nn(l)?l:new Date,color:y.length===0?r[0]:void 0}}).sort((c,h)=>c.date.getTime()-h.date.getTime()),s=(c,h)=>c.reduce((f,l)=>{const m=h(l);return(f[m]=f[m]||[]).push(l),f},{});let u=[];if(t==="day"){const c=s(i,h=>Y(h.date,"yyyy-MM-dd"));u=Object.entries(c).map(([h,f])=>{const l=f,m=l[0],y=l.reduce((x,E)=>x+E.value,0);let p=[];if(m.stackedValues){const x=new Map;l.forEach(E=>{E.stackedValues?.forEach(C=>{const S=x.get(C.key)||0;x.set(C.key,S+C.value)})}),p=Array.from(x.entries()).map(([E,C],S)=>({key:E,value:C,color:r[S%r.length]}))}return{...m,id:h,label:Y(m.date,"E dd"),value:y,stackedValues:p.length>0?p:void 0}})}else if(t==="week"){const c=s(i,h=>Y(B(h.date),"yyyy-MM-dd"));u=Object.entries(c).map(([h,f])=>{const l=f,m=l[0],y=l.reduce((S,$)=>S+$.value,0);let p=[];if(m.stackedValues){const S=new Map;l.forEach($=>{$.stackedValues?.forEach(_=>{const H=S.get(_.key)||0;S.set(_.key,H+_.value)})}),p=Array.from(S.entries()).map(([$,_],H)=>({key:$,value:_,color:r[H%r.length]}))}const x=B(m.date),E=lt(m.date),C=`${Y(x,"MMM dd")}-${Y(E,"MMM dd")}`;return{...m,id:h,label:C,value:y,stackedValues:p.length>0?p:void 0}})}else if(t==="month"){const c=s(i,h=>Y(sa(h.date),"yyyy-MM"));u=Object.entries(c).map(([h,f])=>{const l=f,m=l[0],y=l.reduce((x,E)=>x+E.value,0);let p=[];if(m.stackedValues){const x=new Map;l.forEach(E=>{E.stackedValues?.forEach(C=>{const S=x.get(C.key)||0;x.set(C.key,S+C.value)})}),p=Array.from(x.entries()).map(([E,C],S)=>({key:E,value:C,color:r[S%r.length]}))}return{...m,id:h,label:Y(m.date,"MMM yy"),value:y,stackedValues:p.length>0?p:void 0}})}else if(t==="year"){const c=s(i,h=>Y(h.date,"yyyy"));u=Object.entries(c).map(([h,f])=>{const l=f,m=l[0],y=l.reduce((x,E)=>x+E.value,0);let p=[];if(m.stackedValues){const x=new Map;l.forEach(E=>{E.stackedValues?.forEach(C=>{const S=x.get(C.key)||0;x.set(C.key,S+C.value)})}),p=Array.from(x.entries()).map(([E,C],S)=>({key:E,value:C,color:r[S%r.length]}))}return{...m,id:h,label:h,value:y,stackedValues:p.length>0?p:void 0}})}else u=i;return u},[e,t,n,r]),So=({x:e,y:t,width:n,height:r,data:a,onClick:o,onHover:i,isActive:s,isDimmed:u,style:c,...h})=>{const f=T.useMemo(()=>a.isPrediction?"#8e44ad":s?"#e74c3c":a.color||"#3498db",[a,s]);return b.jsx("rect",{x:e,y:t,width:n,height:r,fill:f,rx:4,ry:4,className:"transition-all duration-300 cursor-pointer hover:opacity-80",onClick:()=>o?.(a),onMouseEnter:()=>i?.(a),onMouseLeave:()=>i?.(null),style:{opacity:u?.3:a.isPrediction?.7:1,stroke:s?"#c0392b":"none",strokeWidth:s?2:0,transition:"all 0.3s ease",...c},...h})};var dn;(function(e){e.STRING="string",e.NUMBER="number",e.INTEGER="integer",e.BOOLEAN="boolean",e.ARRAY="array",e.OBJECT="object"})(dn||(dn={}));var hn;(function(e){e.LANGUAGE_UNSPECIFIED="language_unspecified",e.PYTHON="python"})(hn||(hn={}));var mn;(function(e){e.OUTCOME_UNSPECIFIED="outcome_unspecified",e.OUTCOME_OK="outcome_ok",e.OUTCOME_FAILED="outcome_failed",e.OUTCOME_DEADLINE_EXCEEDED="outcome_deadline_exceeded"})(mn||(mn={}));const gn=["user","model","function","system"];var yn;(function(e){e.HARM_CATEGORY_UNSPECIFIED="HARM_CATEGORY_UNSPECIFIED",e.HARM_CATEGORY_HATE_SPEECH="HARM_CATEGORY_HATE_SPEECH",e.HARM_CATEGORY_SEXUALLY_EXPLICIT="HARM_CATEGORY_SEXUALLY_EXPLICIT",e.HARM_CATEGORY_HARASSMENT="HARM_CATEGORY_HARASSMENT",e.HARM_CATEGORY_DANGEROUS_CONTENT="HARM_CATEGORY_DANGEROUS_CONTENT",e.HARM_CATEGORY_CIVIC_INTEGRITY="HARM_CATEGORY_CIVIC_INTEGRITY"})(yn||(yn={}));var pn;(function(e){e.HARM_BLOCK_THRESHOLD_UNSPECIFIED="HARM_BLOCK_THRESHOLD_UNSPECIFIED",e.BLOCK_LOW_AND_ABOVE="BLOCK_LOW_AND_ABOVE",e.BLOCK_MEDIUM_AND_ABOVE="BLOCK_MEDIUM_AND_ABOVE",e.BLOCK_ONLY_HIGH="BLOCK_ONLY_HIGH",e.BLOCK_NONE="BLOCK_NONE"})(pn||(pn={}));var bn;(function(e){e.HARM_PROBABILITY_UNSPECIFIED="HARM_PROBABILITY_UNSPECIFIED",e.NEGLIGIBLE="NEGLIGIBLE",e.LOW="LOW",e.MEDIUM="MEDIUM",e.HIGH="HIGH"})(bn||(bn={}));var xn;(function(e){e.BLOCKED_REASON_UNSPECIFIED="BLOCKED_REASON_UNSPECIFIED",e.SAFETY="SAFETY",e.OTHER="OTHER"})(xn||(xn={}));var Re;(function(e){e.FINISH_REASON_UNSPECIFIED="FINISH_REASON_UNSPECIFIED",e.STOP="STOP",e.MAX_TOKENS="MAX_TOKENS",e.SAFETY="SAFETY",e.RECITATION="RECITATION",e.LANGUAGE="LANGUAGE",e.BLOCKLIST="BLOCKLIST",e.PROHIBITED_CONTENT="PROHIBITED_CONTENT",e.SPII="SPII",e.MALFORMED_FUNCTION_CALL="MALFORMED_FUNCTION_CALL",e.OTHER="OTHER"})(Re||(Re={}));var wn;(function(e){e.TASK_TYPE_UNSPECIFIED="TASK_TYPE_UNSPECIFIED",e.RETRIEVAL_QUERY="RETRIEVAL_QUERY",e.RETRIEVAL_DOCUMENT="RETRIEVAL_DOCUMENT",e.SEMANTIC_SIMILARITY="SEMANTIC_SIMILARITY",e.CLASSIFICATION="CLASSIFICATION",e.CLUSTERING="CLUSTERING"})(wn||(wn={}));var vn;(function(e){e.MODE_UNSPECIFIED="MODE_UNSPECIFIED",e.AUTO="AUTO",e.ANY="ANY",e.NONE="NONE"})(vn||(vn={}));var En;(function(e){e.MODE_UNSPECIFIED="MODE_UNSPECIFIED",e.MODE_DYNAMIC="MODE_DYNAMIC"})(En||(En={}));class j extends Error{constructor(t){super(`[GoogleGenerativeAI Error]: ${t}`)}}class pe extends j{constructor(t,n){super(t),this.response=n}}class Mn extends j{constructor(t,n,r,a){super(t),this.status=n,this.statusText=r,this.errorDetails=a}}class ee extends j{}class kn extends j{}const _o="https://generativelanguage.googleapis.com",Co="v1beta",No="0.24.1",Ro="genai-js";var le;(function(e){e.GENERATE_CONTENT="generateContent",e.STREAM_GENERATE_CONTENT="streamGenerateContent",e.COUNT_TOKENS="countTokens",e.EMBED_CONTENT="embedContent",e.BATCH_EMBED_CONTENTS="batchEmbedContents"})(le||(le={}));class To{constructor(t,n,r,a,o){this.model=t,this.task=n,this.apiKey=r,this.stream=a,this.requestOptions=o}toString(){var t,n;const r=((t=this.requestOptions)===null||t===void 0?void 0:t.apiVersion)||Co;let o=`${((n=this.requestOptions)===null||n===void 0?void 0:n.baseUrl)||_o}/${r}/${this.model}:${this.task}`;return this.stream&&(o+="?alt=sse"),o}}function Do(e){const t=[];return e?.apiClient&&t.push(e.apiClient),t.push(`${Ro}/${No}`),t.join(" ")}async function Ao(e){var t;const n=new Headers;n.append("Content-Type","application/json"),n.append("x-goog-api-client",Do(e.requestOptions)),n.append("x-goog-api-key",e.apiKey);let r=(t=e.requestOptions)===null||t===void 0?void 0:t.customHeaders;if(r){if(!(r instanceof Headers))try{r=new Headers(r)}catch(a){throw new ee(`unable to convert customHeaders value ${JSON.stringify(r)} to Headers: ${a.message}`)}for(const[a,o]of r.entries()){if(a==="x-goog-api-key")throw new ee(`Cannot set reserved header name ${a}`);if(a==="x-goog-api-client")throw new ee(`Header name ${a} can only be set using the apiClient field`);n.append(a,o)}}return n}async function Io(e,t,n,r,a,o){const i=new To(e,t,n,r,o);return{url:i.toString(),fetchOptions:Object.assign(Object.assign({},Fo(o)),{method:"POST",headers:await Ao(i),body:a})}}async function Te(e,t,n,r,a,o={},i=fetch){const{url:s,fetchOptions:u}=await Io(e,t,n,r,a,o);return Po(s,u,i)}async function Po(e,t,n=fetch){let r;try{r=await n(e,t)}catch(a){jo(a,e)}return r.ok||await Yo(r,e),r}function jo(e,t){let n=e;throw n.name==="AbortError"?(n=new kn(`Request aborted when fetching ${t.toString()}: ${e.message}`),n.stack=e.stack):e instanceof Mn||e instanceof ee||(n=new j(`Error fetching from ${t.toString()}: ${e.message}`),n.stack=e.stack),n}async function Yo(e,t){let n="",r;try{const a=await e.json();n=a.error.message,a.error.details&&(n+=` ${JSON.stringify(a.error.details)}`,r=a.error.details)}catch{}throw new Mn(`Error fetching from ${t.toString()}: [${e.status} ${e.statusText}] ${n}`,e.status,e.statusText,r)}function Fo(e){const t={};if(e?.signal!==void 0||e?.timeout>=0){const n=new AbortController;e?.timeout>=0&&setTimeout(()=>n.abort(),e.timeout),e?.signal&&e.signal.addEventListener("abort",()=>{n.abort()}),t.signal=n.signal}return t}function ht(e){return e.text=()=>{if(e.candidates&&e.candidates.length>0){if(e.candidates.length>1&&console.warn(`This response had ${e.candidates.length} candidates. Returning text from the first candidate only. Access response.candidates directly to use the other candidates.`),Ke(e.candidates[0]))throw new pe(`${te(e)}`,e);return $o(e)}else if(e.promptFeedback)throw new pe(`Text not available. ${te(e)}`,e);return""},e.functionCall=()=>{if(e.candidates&&e.candidates.length>0){if(e.candidates.length>1&&console.warn(`This response had ${e.candidates.length} candidates. Returning function calls from the first candidate only. Access response.candidates directly to use the other candidates.`),Ke(e.candidates[0]))throw new pe(`${te(e)}`,e);return console.warn("response.functionCall() is deprecated. Use response.functionCalls() instead."),On(e)[0]}else if(e.promptFeedback)throw new pe(`Function call not available. ${te(e)}`,e)},e.functionCalls=()=>{if(e.candidates&&e.candidates.length>0){if(e.candidates.length>1&&console.warn(`This response had ${e.candidates.length} candidates. Returning function calls from the first candidate only. Access response.candidates directly to use the other candidates.`),Ke(e.candidates[0]))throw new pe(`${te(e)}`,e);return On(e)}else if(e.promptFeedback)throw new pe(`Function call not available. ${te(e)}`,e)},e}function $o(e){var t,n,r,a;const o=[];if(!((n=(t=e.candidates)===null||t===void 0?void 0:t[0].content)===null||n===void 0)&&n.parts)for(const i of(a=(r=e.candidates)===null||r===void 0?void 0:r[0].content)===null||a===void 0?void 0:a.parts)i.text&&o.push(i.text),i.executableCode&&o.push("\n```"+i.executableCode.language+`
|
|
7
|
+
`+i.executableCode.code+"\n```\n"),i.codeExecutionResult&&o.push("\n```\n"+i.codeExecutionResult.output+"\n```\n");return o.length>0?o.join(""):""}function On(e){var t,n,r,a;const o=[];if(!((n=(t=e.candidates)===null||t===void 0?void 0:t[0].content)===null||n===void 0)&&n.parts)for(const i of(a=(r=e.candidates)===null||r===void 0?void 0:r[0].content)===null||a===void 0?void 0:a.parts)i.functionCall&&o.push(i.functionCall);if(o.length>0)return o}const Wo=[Re.RECITATION,Re.SAFETY,Re.LANGUAGE];function Ke(e){return!!e.finishReason&&Wo.includes(e.finishReason)}function te(e){var t,n,r;let a="";if((!e.candidates||e.candidates.length===0)&&e.promptFeedback)a+="Response was blocked",!((t=e.promptFeedback)===null||t===void 0)&&t.blockReason&&(a+=` due to ${e.promptFeedback.blockReason}`),!((n=e.promptFeedback)===null||n===void 0)&&n.blockReasonMessage&&(a+=`: ${e.promptFeedback.blockReasonMessage}`);else if(!((r=e.candidates)===null||r===void 0)&&r[0]){const o=e.candidates[0];Ke(o)&&(a+=`Candidate was blocked due to ${o.finishReason}`,o.finishMessage&&(a+=`: ${o.finishMessage}`))}return a}function De(e){return this instanceof De?(this.v=e,this):new De(e)}function Lo(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),a,o=[];return a={},i("next"),i("throw"),i("return"),a[Symbol.asyncIterator]=function(){return this},a;function i(l){r[l]&&(a[l]=function(m){return new Promise(function(y,p){o.push([l,m,y,p])>1||s(l,m)})})}function s(l,m){try{u(r[l](m))}catch(y){f(o[0][3],y)}}function u(l){l.value instanceof De?Promise.resolve(l.value.v).then(c,h):f(o[0][2],l)}function c(l){s("next",l)}function h(l){s("throw",l)}function f(l,m){l(m),o.shift(),o.length&&s(o[0][0],o[0][1])}}typeof SuppressedError=="function"&&SuppressedError;const Sn=/^data\: (.*)(?:\n\n|\r\r|\r\n\r\n)/;function Ho(e){const t=e.body.pipeThrough(new TextDecoderStream("utf8",{fatal:!0})),n=Bo(t),[r,a]=n.tee();return{stream:Uo(r),response:Go(a)}}async function Go(e){const t=[],n=e.getReader();for(;;){const{done:r,value:a}=await n.read();if(r)return ht(qo(t));t.push(a)}}function Uo(e){return Lo(this,arguments,function*(){const n=e.getReader();for(;;){const{value:r,done:a}=yield De(n.read());if(a)break;yield yield De(ht(r))}})}function Bo(e){const t=e.getReader();return new ReadableStream({start(r){let a="";return o();function o(){return t.read().then(({value:i,done:s})=>{if(s){if(a.trim()){r.error(new j("Failed to parse stream"));return}r.close();return}a+=i;let u=a.match(Sn),c;for(;u;){try{c=JSON.parse(u[1])}catch{r.error(new j(`Error parsing JSON response: "${u[1]}"`));return}r.enqueue(c),a=a.substring(u[0].length),u=a.match(Sn)}return o()}).catch(i=>{let s=i;throw s.stack=i.stack,s.name==="AbortError"?s=new kn("Request aborted when reading from the stream"):s=new j("Error reading from the stream"),s})}}})}function qo(e){const t=e[e.length-1],n={promptFeedback:t?.promptFeedback};for(const r of e){if(r.candidates){let a=0;for(const o of r.candidates)if(n.candidates||(n.candidates=[]),n.candidates[a]||(n.candidates[a]={index:a}),n.candidates[a].citationMetadata=o.citationMetadata,n.candidates[a].groundingMetadata=o.groundingMetadata,n.candidates[a].finishReason=o.finishReason,n.candidates[a].finishMessage=o.finishMessage,n.candidates[a].safetyRatings=o.safetyRatings,o.content&&o.content.parts){n.candidates[a].content||(n.candidates[a].content={role:o.content.role||"user",parts:[]});const i={};for(const s of o.content.parts)s.text&&(i.text=s.text),s.functionCall&&(i.functionCall=s.functionCall),s.executableCode&&(i.executableCode=s.executableCode),s.codeExecutionResult&&(i.codeExecutionResult=s.codeExecutionResult),Object.keys(i).length===0&&(i.text=""),n.candidates[a].content.parts.push(i)}a++}r.usageMetadata&&(n.usageMetadata=r.usageMetadata)}return n}async function _n(e,t,n,r){const a=await Te(t,le.STREAM_GENERATE_CONTENT,e,!0,JSON.stringify(n),r);return Ho(a)}async function Cn(e,t,n,r){const o=await(await Te(t,le.GENERATE_CONTENT,e,!1,JSON.stringify(n),r)).json();return{response:ht(o)}}function Nn(e){if(e!=null){if(typeof e=="string")return{role:"system",parts:[{text:e}]};if(e.text)return{role:"system",parts:[e]};if(e.parts)return e.role?e:{role:"system",parts:e.parts}}}function Ae(e){let t=[];if(typeof e=="string")t=[{text:e}];else for(const n of e)typeof n=="string"?t.push({text:n}):t.push(n);return Vo(t)}function Vo(e){const t={role:"user",parts:[]},n={role:"function",parts:[]};let r=!1,a=!1;for(const o of e)"functionResponse"in o?(n.parts.push(o),a=!0):(t.parts.push(o),r=!0);if(r&&a)throw new j("Within a single message, FunctionResponse cannot be mixed with other type of part in the request for sending chat message.");if(!r&&!a)throw new j("No content is provided for sending chat message.");return r?t:n}function zo(e,t){var n;let r={model:t?.model,generationConfig:t?.generationConfig,safetySettings:t?.safetySettings,tools:t?.tools,toolConfig:t?.toolConfig,systemInstruction:t?.systemInstruction,cachedContent:(n=t?.cachedContent)===null||n===void 0?void 0:n.name,contents:[]};const a=e.generateContentRequest!=null;if(e.contents){if(a)throw new ee("CountTokensRequest must have one of contents or generateContentRequest, not both.");r.contents=e.contents}else if(a)r=Object.assign(Object.assign({},r),e.generateContentRequest);else{const o=Ae(e);r.contents=[o]}return{generateContentRequest:r}}function Rn(e){let t;return e.contents?t=e:t={contents:[Ae(e)]},e.systemInstruction&&(t.systemInstruction=Nn(e.systemInstruction)),t}function Xo(e){return typeof e=="string"||Array.isArray(e)?{content:Ae(e)}:e}const Tn=["text","inlineData","functionCall","functionResponse","executableCode","codeExecutionResult"],Jo={user:["text","inlineData"],function:["functionResponse"],model:["text","functionCall","executableCode","codeExecutionResult"],system:["text"]};function Ko(e){let t=!1;for(const n of e){const{role:r,parts:a}=n;if(!t&&r!=="user")throw new j(`First content should be with role 'user', got ${r}`);if(!gn.includes(r))throw new j(`Each item should include role field. Got ${r} but valid roles are: ${JSON.stringify(gn)}`);if(!Array.isArray(a))throw new j("Content should have 'parts' property with an array of Parts");if(a.length===0)throw new j("Each Content should have at least one part");const o={text:0,inlineData:0,functionCall:0,functionResponse:0,fileData:0,executableCode:0,codeExecutionResult:0};for(const s of a)for(const u of Tn)u in s&&(o[u]+=1);const i=Jo[r];for(const s of Tn)if(!i.includes(s)&&o[s]>0)throw new j(`Content with role '${r}' can't contain '${s}' part`);t=!0}}function Dn(e){var t;if(e.candidates===void 0||e.candidates.length===0)return!1;const n=(t=e.candidates[0])===null||t===void 0?void 0:t.content;if(n===void 0||n.parts===void 0||n.parts.length===0)return!1;for(const r of n.parts)if(r===void 0||Object.keys(r).length===0||r.text!==void 0&&r.text==="")return!1;return!0}const An="SILENT_ERROR";class Qo{constructor(t,n,r,a={}){this.model=n,this.params=r,this._requestOptions=a,this._history=[],this._sendPromise=Promise.resolve(),this._apiKey=t,r?.history&&(Ko(r.history),this._history=r.history)}async getHistory(){return await this._sendPromise,this._history}async sendMessage(t,n={}){var r,a,o,i,s,u;await this._sendPromise;const c=Ae(t),h={safetySettings:(r=this.params)===null||r===void 0?void 0:r.safetySettings,generationConfig:(a=this.params)===null||a===void 0?void 0:a.generationConfig,tools:(o=this.params)===null||o===void 0?void 0:o.tools,toolConfig:(i=this.params)===null||i===void 0?void 0:i.toolConfig,systemInstruction:(s=this.params)===null||s===void 0?void 0:s.systemInstruction,cachedContent:(u=this.params)===null||u===void 0?void 0:u.cachedContent,contents:[...this._history,c]},f=Object.assign(Object.assign({},this._requestOptions),n);let l;return this._sendPromise=this._sendPromise.then(()=>Cn(this._apiKey,this.model,h,f)).then(m=>{var y;if(Dn(m.response)){this._history.push(c);const p=Object.assign({parts:[],role:"model"},(y=m.response.candidates)===null||y===void 0?void 0:y[0].content);this._history.push(p)}else{const p=te(m.response);p&&console.warn(`sendMessage() was unsuccessful. ${p}. Inspect response object for details.`)}l=m}).catch(m=>{throw this._sendPromise=Promise.resolve(),m}),await this._sendPromise,l}async sendMessageStream(t,n={}){var r,a,o,i,s,u;await this._sendPromise;const c=Ae(t),h={safetySettings:(r=this.params)===null||r===void 0?void 0:r.safetySettings,generationConfig:(a=this.params)===null||a===void 0?void 0:a.generationConfig,tools:(o=this.params)===null||o===void 0?void 0:o.tools,toolConfig:(i=this.params)===null||i===void 0?void 0:i.toolConfig,systemInstruction:(s=this.params)===null||s===void 0?void 0:s.systemInstruction,cachedContent:(u=this.params)===null||u===void 0?void 0:u.cachedContent,contents:[...this._history,c]},f=Object.assign(Object.assign({},this._requestOptions),n),l=_n(this._apiKey,this.model,h,f);return this._sendPromise=this._sendPromise.then(()=>l).catch(m=>{throw new Error(An)}).then(m=>m.response).then(m=>{if(Dn(m)){this._history.push(c);const y=Object.assign({},m.candidates[0].content);y.role||(y.role="model"),this._history.push(y)}else{const y=te(m);y&&console.warn(`sendMessageStream() was unsuccessful. ${y}. Inspect response object for details.`)}}).catch(m=>{m.message!==An&&console.error(m)}),l}}async function Zo(e,t,n,r){return(await Te(t,le.COUNT_TOKENS,e,!1,JSON.stringify(n),r)).json()}async function ei(e,t,n,r){return(await Te(t,le.EMBED_CONTENT,e,!1,JSON.stringify(n),r)).json()}async function ti(e,t,n,r){const a=n.requests.map(i=>Object.assign(Object.assign({},i),{model:t}));return(await Te(t,le.BATCH_EMBED_CONTENTS,e,!1,JSON.stringify({requests:a}),r)).json()}class In{constructor(t,n,r={}){this.apiKey=t,this._requestOptions=r,n.model.includes("/")?this.model=n.model:this.model=`models/${n.model}`,this.generationConfig=n.generationConfig||{},this.safetySettings=n.safetySettings||[],this.tools=n.tools,this.toolConfig=n.toolConfig,this.systemInstruction=Nn(n.systemInstruction),this.cachedContent=n.cachedContent}async generateContent(t,n={}){var r;const a=Rn(t),o=Object.assign(Object.assign({},this._requestOptions),n);return Cn(this.apiKey,this.model,Object.assign({generationConfig:this.generationConfig,safetySettings:this.safetySettings,tools:this.tools,toolConfig:this.toolConfig,systemInstruction:this.systemInstruction,cachedContent:(r=this.cachedContent)===null||r===void 0?void 0:r.name},a),o)}async generateContentStream(t,n={}){var r;const a=Rn(t),o=Object.assign(Object.assign({},this._requestOptions),n);return _n(this.apiKey,this.model,Object.assign({generationConfig:this.generationConfig,safetySettings:this.safetySettings,tools:this.tools,toolConfig:this.toolConfig,systemInstruction:this.systemInstruction,cachedContent:(r=this.cachedContent)===null||r===void 0?void 0:r.name},a),o)}startChat(t){var n;return new Qo(this.apiKey,this.model,Object.assign({generationConfig:this.generationConfig,safetySettings:this.safetySettings,tools:this.tools,toolConfig:this.toolConfig,systemInstruction:this.systemInstruction,cachedContent:(n=this.cachedContent)===null||n===void 0?void 0:n.name},t),this._requestOptions)}async countTokens(t,n={}){const r=zo(t,{model:this.model,generationConfig:this.generationConfig,safetySettings:this.safetySettings,tools:this.tools,toolConfig:this.toolConfig,systemInstruction:this.systemInstruction,cachedContent:this.cachedContent}),a=Object.assign(Object.assign({},this._requestOptions),n);return Zo(this.apiKey,this.model,r,a)}async embedContent(t,n={}){const r=Xo(t),a=Object.assign(Object.assign({},this._requestOptions),n);return ei(this.apiKey,this.model,r,a)}async batchEmbedContents(t,n={}){const r=Object.assign(Object.assign({},this._requestOptions),n);return ti(this.apiKey,this.model,t,r)}}class ni{constructor(t){this.apiKey=t}getGenerativeModel(t,n){if(!t.model)throw new j("Must provide a model name. Example: genai.getGenerativeModel({ model: 'my-model-name' })");return new In(this.apiKey,t,n)}getGenerativeModelFromCachedContent(t,n,r){if(!t.name)throw new ee("Cached content must contain a `name` field.");if(!t.model)throw new ee("Cached content must contain a `model` field.");const a=["model","systemInstruction"];for(const i of a)if(n?.[i]&&t[i]&&n?.[i]!==t[i]){if(i==="model"){const s=n.model.startsWith("models/")?n.model.replace("models/",""):n.model,u=t.model.startsWith("models/")?t.model.replace("models/",""):t.model;if(s===u)continue}throw new ee(`Different value for "${i}" specified in modelParams (${n[i]}) and cachedContent (${t[i]})`)}const o=Object.assign(Object.assign({},n),{model:t.model,tools:t.tools,toolConfig:t.toolConfig,systemInstruction:t.systemInstruction,cachedContent:t});return new In(this.apiKey,o,r)}}class ri{genAI;model;constructor(t,n="gemini-1.5-flash"){this.genAI=new ni(t),this.model=this.genAI.getGenerativeModel({model:n})}async predictNext(t,n=3,r="month"){if(t.length===0)return[];const a=`
|
|
8
|
+
I have a time series data:
|
|
9
|
+
${t.map(o=>`${o.label}: ${o.value}`).join(`
|
|
10
|
+
`)}
|
|
11
|
+
|
|
12
|
+
Predict the next ${n} values based on the trend.
|
|
13
|
+
Return ONLY a JSON array of numbers. Example: [10, 12, 15].
|
|
14
|
+
Do not include any explanation or markdown formatting.
|
|
15
|
+
`;try{const u=(await(await this.model.generateContent(a)).response).text().replace(/```json/g,"").replace(/```/g,"").trim(),c=JSON.parse(u),f=t[t.length-1].date;return c.map((l,m)=>{let y=f;r==="day"?y=Jt(f,m+1):r==="week"?y=tn(f,m+1):r==="month"&&(y=Zr(f,m+1));let p="";return r==="day"?p=Y(y,"eee dd"):r==="week"?p=`W${m+1}`:r==="month"?p=Y(y,"MMM"):p=Y(y,"yyyy"),{id:`prediction-${m}`,label:p,value:l,date:y,isPrediction:!0,color:"#8e44ad"}})}catch(o){return console.error("Gemini Prediction Failed",o),[]}}async analyze(t){const n=`
|
|
16
|
+
Analyze the following data trend:
|
|
17
|
+
${t.map(r=>`${r.label}: ${r.value}`).join(", ")}
|
|
18
|
+
|
|
19
|
+
Provide a short, insightful summary (max 2 sentences).
|
|
20
|
+
`;try{return(await this.model.generateContent(n)).response.text()}catch(r){return console.error("Gemini Analysis Failed",r),"Analysis unavailable."}}}const ai=({data:e,view:t="month",variant:n="default",dataKeys:r,geminiConfig:a,colors:o,axisLabels:i,onViewChange:s,height:u=400,width:c="100%",className:h="",theme:f})=>{const[l,m]=T.useState({year:null,month:null,weekStartDate:null}),[y,p]=T.useState(!1),[x,E]=T.useState("year"),C=T.useMemo(()=>l.year?e.filter(g=>{const k=g[r.date],W=new Date(k);if(ln(W)!==l.year||l.month!==null&&oo(W)!==l.month)return!1;if(l.weekStartDate){const X=l.weekStartDate,xe=lt(X);return io(W,{start:X,end:xe})}return!0}):e,[e,l,r.date]),S=T.useMemo(()=>{const g=new Set(e.map(k=>ln(new Date(k[r.date]))));return Array.from(g).sort((k,W)=>W-k)},[e,r.date]),$=Oo({data:C,view:t,dataKeys:r,colors:o}),[_,H]=T.useState(null),[be,ne]=T.useState([]),[re,fe]=T.useState(!1),v=t==="month"?12:7,[I,D]=T.useState(0);T.useEffect(()=>{D(0),ne([]),t==="month"?(m(g=>g.month!==null||g.weekStartDate!==null?{...g,month:null,weekStartDate:null}:g),E("year")):t==="week"&&(m(g=>g.weekStartDate!==null?{...g,weekStartDate:null}:g),E("month"))},[t]),T.useEffect(()=>{D(0),ne([])},[l]);const V=g=>{m({year:g,month:null,weekStartDate:null}),E("month"),s?.("month")},ae=g=>{m(k=>({...k,month:g,weekStartDate:null})),E("week"),s?.("week")},J=g=>{m(k=>({...k,weekStartDate:g})),p(!1),s?.("day")},K=()=>{m({year:null,month:null,weekStartDate:null}),E("year"),p(!1),s?.("month")},G=T.useMemo(()=>[...$,...be],[$,be]),P=T.useMemo(()=>{const g=G.length,k=Math.max(0,g-v-I),W=Math.min(g,g-I);return G.slice(k,W)},[G,I,v]),Q={top:40,right:20,bottom:40,left:40},d=800,w=d-Q.left-Q.right,M=(typeof u=="number"?u:400)-Q.top-Q.bottom,N=T.useMemo(()=>Mt().domain(P.map(g=>g.id)).range([0,w]).padding(.3),[P,w]),z=T.useMemo(()=>{const g=Math.max(...P.map(k=>k.value),0);return Bt().domain([0,g*1.1]).range([M,0])},[P,M]),Ie=async()=>{if(a?.apiKey){fe(!0);try{const g=new ri(a.apiKey,a.model),k=$.slice(-v),W=await g.predictNext(k,3,t);ne(W),D(0)}catch(g){console.error(g)}finally{fe(!1)}}},A=()=>{I>0&&D(g=>Math.max(0,g-1))},oe=()=>{G.length>v+I&&D(g=>g+1)},de=G.length>v+I,Pe=I>0,oi=f?.background||"#fff",Pn=f?.bar?.radius??4,jn=f?.bar?.opacity??1,ii=f?.bar?.maxWidth??60,mt=f?.grid?.stroke||"#eee",si=f?.grid?.strokeDasharray||"4 4",ci=f?.grid?.visible!==!1,Yn=f?.axis?.labelColor||"#9ca3af",Fn=f?.axis?.tickColor||"#9ca3af",$n=f?.axis?.fontSize||10;return b.jsxs("div",{className:`smart-bar-chart-wrapper ${h}`,style:{width:c,display:"flex",flexDirection:"column",gap:10,fontFamily:"sans-serif",background:oi,padding:16,borderRadius:12},children:[b.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",height:40},children:[b.jsx("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",marginRight:10},children:_?b.jsxs(b.Fragment,{children:[b.jsx("div",{style:{fontSize:14,fontWeight:"bold"},children:_.label}),b.jsxs("div",{style:{fontSize:12,color:"#666"},children:["Total: ",_.value]})]}):b.jsx("div",{style:{fontSize:12,color:"#999"},children:"Detailed Info Area"})}),a&&b.jsx("button",{onClick:Ie,disabled:re,style:{fontSize:10,padding:"6px 12px",cursor:"pointer",background:"#6366f1",color:"white",border:"none",borderRadius:4,fontWeight:"bold"},children:re?"Running...":"Predict AI"}),b.jsx("button",{onClick:()=>p(!y),style:{marginLeft:10,padding:6,cursor:"pointer",background:"#fff",border:"1px solid #ddd",borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center"},children:b.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"#666",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[b.jsx("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",ry:"2"}),b.jsx("line",{x1:"16",y1:"2",x2:"16",y2:"6"}),b.jsx("line",{x1:"8",y1:"2",x2:"8",y2:"6"}),b.jsx("line",{x1:"3",y1:"10",x2:"21",y2:"10"})]})}),y&&b.jsxs("div",{style:{position:"absolute",top:50,right:0,width:240,background:"#fff",border:"1px solid #e0e0e0",borderRadius:12,boxShadow:"0 10px 25px rgba(0,0,0,0.1)",zIndex:30,padding:16,fontFamily:"sans-serif"},children:[b.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:16,alignItems:"center"},children:[x!=="year"&&b.jsx("button",{onClick:()=>E(x==="week"?"month":"year"),style:{background:"none",border:"none",cursor:"pointer",fontSize:13,color:"#6366f1",fontWeight:600},children:"< Back"}),b.jsx("div",{style:{fontSize:14,fontWeight:"bold",color:"#1f2937",flex:1,textAlign:x!=="year"?"center":"left"},children:x==="year"?"Select Year":x==="month"?`${l.year}`:`${Y(new Date(l.year,l.month,1),"MMM yyyy")}`}),b.jsx("button",{onClick:()=>{K()},style:{background:"none",border:"none",cursor:"pointer",fontSize:12,color:"#ef4444"},children:"Reset"})]}),b.jsxs("div",{style:{display:"grid",gridTemplateColumns:x==="week"?"1fr":"repeat(3, 1fr)",gap:8},children:[x==="year"&&S.map(g=>b.jsx("button",{onClick:()=>V(g),style:{padding:"8px 4px",fontSize:13,border:"1px solid",borderColor:l.year===g?"#6366f1":"#eee",borderRadius:6,background:l.year===g?"#e0e7ff":"#fff",color:l.year===g?"#4338ca":"#374151",cursor:"pointer",transition:"all 0.2s"},children:g},g)),x==="month"&&Array.from({length:12}).map((g,k)=>b.jsx("button",{onClick:()=>ae(k),style:{padding:"8px 4px",fontSize:13,border:"1px solid",borderColor:l.month===k?"#6366f1":"#eee",borderRadius:6,background:l.month===k?"#e0e7ff":"#fff",color:l.month===k?"#4338ca":"#374151",cursor:"pointer",transition:"all 0.2s"},children:Y(new Date(2e3,k,1),"MMM")},k)),x==="week"&&l.year&&l.month!==null&&ia({start:new Date(l.year,l.month,1),end:aa(new Date(l.year,l.month,1))}).map((g,k)=>{const W=lt(g),X=`${Y(g,"d")} - ${Y(W,"d MMM")}`;return b.jsxs("button",{onClick:()=>J(g),style:{padding:"8px 12px",fontSize:13,border:"1px solid",borderColor:"#eee",borderRadius:6,background:"#fff",color:"#374151",cursor:"pointer",transition:"all 0.2s",textAlign:"left"},children:["Week ",k+1,": ",X]},g.toISOString())})]})]})]}),b.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[b.jsx("button",{onClick:oe,disabled:!de,style:{flexShrink:0,width:40,height:40,borderRadius:"50%",border:"1px solid #ddd",background:"#fff",cursor:de?"pointer":"default",opacity:de?1:.3,display:"flex",alignItems:"center",justifyContent:"center",fontSize:18,color:"#333",marginRight:10},children:"<"}),b.jsx("div",{style:{flexGrow:1,height:typeof u=="number"?u:400,position:"relative"},children:b.jsx("svg",{width:"100%",height:"100%",viewBox:`0 0 ${d} ${typeof u=="number"?u:400}`,preserveAspectRatio:"none",style:{overflow:"visible"},role:"img","aria-label":"Bar chart showing data over time",children:b.jsxs("g",{transform:`translate(${Q.left},${Q.top})`,children:[ci&&z.ticks(5).map(g=>b.jsxs("g",{transform:`translate(0, ${z(g)})`,children:[b.jsx("line",{x1:0,x2:w,stroke:mt,strokeDasharray:si}),b.jsx("text",{x:-10,y:4,textAnchor:"end",fontSize:$n,fill:Fn,children:g})]},`y-tick-${g}`)),b.jsx("line",{x1:0,y1:M,x2:w,y2:M,stroke:mt}),b.jsx("line",{x1:0,y1:0,x2:0,y2:M,stroke:mt}),i?.y&&b.jsx("text",{x:-30,y:M/2,transform:`rotate(-90, -30, ${M/2})`,textAnchor:"middle",fill:Yn,fontSize:12,children:i.y}),i?.x&&b.jsx("text",{x:w/2,y:M+35,textAnchor:"middle",fill:Yn,fontSize:12,children:i.x}),P.map(g=>{const k=N(g.id),W=N.bandwidth(),X=Math.min(W,ii),xe=k+(W-X)/2,Qe=z(g.value),Wn=M-Qe;if(k===void 0)return null;const je=_?.id===g.id,Ln=_!==null&&!je;if(n==="stacked"&&g.stackedValues){let Ye=M;return b.jsxs("g",{onMouseEnter:()=>H(g),onMouseLeave:()=>H(null),onClick:()=>H(_===g?null:g),style:{opacity:Ln?.3:1,transition:"opacity 0.3s"},children:[g.stackedValues.map((Hn,ui)=>{const Gn=Math.abs(z(Hn.value)-z(0)),Un=Ye-Gn,li=b.jsx("rect",{x:xe,y:Un,width:X,height:Gn,fill:Hn.color,rx:Pn,opacity:jn,stroke:je?"#fff":"none",strokeWidth:je?1:0},`${g.id}-${ui}`);return Ye=Un,li}),b.jsx("rect",{x:xe,y:Qe,width:X,height:Wn,fill:"transparent"})]},g.id)}return b.jsxs("g",{children:[b.jsx(So,{x:xe,y:Qe,width:X,height:Wn,data:g,isActive:je,isDimmed:Ln,onHover:H,onClick:Ye=>{H(Ye===_?null:Ye)},style:{rx:Pn,fillOpacity:jn},"aria-label":`${g.label}: ${g.value}`,role:"graphics-symbol"}),je&&b.jsx("text",{x:xe+X/2,y:Qe-5,textAnchor:"middle",fill:"#333",fontSize:12,fontWeight:"bold",pointerEvents:"none",children:g.value})]},g.id)}),P.map(g=>{const k=N(g.id);return k===void 0?null:b.jsx("text",{x:k+N.bandwidth()/2,y:M+15,textAnchor:"middle",fill:Fn,fontSize:$n,children:g.label},`label-${g.id}`)})]})})}),b.jsx("button",{onClick:A,disabled:!Pe,style:{flexShrink:0,width:40,height:40,borderRadius:"50%",border:"1px solid #ddd",background:"#fff",cursor:Pe?"pointer":"default",opacity:Pe?1:.3,display:"flex",alignItems:"center",justifyContent:"center",fontSize:18,color:"#333",marginLeft:10},children:">"})]})]})};ie.SmartBarChart=ai,Object.defineProperty(ie,Symbol.toStringTag,{value:"Module"})}));
|
package/dist/vite.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
package/package.json
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "universal-adaptive-bars",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "0.0.1",
|
|
5
|
+
"description": "A highly customizable smart bar chart for React and React Native",
|
|
6
|
+
"author": "Sammed Doshi <Sammeddoshi03.sd@gmail.com>",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/SammedDoshi03/universal-adaptive-bars.git"
|
|
10
|
+
},
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"type": "module",
|
|
15
|
+
"main": "./dist/smart-bar-chart.umd.cjs",
|
|
16
|
+
"module": "./dist/smart-bar-chart.js",
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"import": "./dist/smart-bar-chart.js",
|
|
21
|
+
"require": "./dist/smart-bar-chart.umd.cjs"
|
|
22
|
+
},
|
|
23
|
+
"./native": {
|
|
24
|
+
"import": "./src/lib/native.ts"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"dist",
|
|
29
|
+
"src/lib"
|
|
30
|
+
],
|
|
31
|
+
"scripts": {
|
|
32
|
+
"dev": "vite",
|
|
33
|
+
"build": "tsc -b && vite build",
|
|
34
|
+
"test": "vitest",
|
|
35
|
+
"lint": "eslint .",
|
|
36
|
+
"preview": "vite preview"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@google/generative-ai": "^0.24.1",
|
|
40
|
+
"clsx": "^2.1.1",
|
|
41
|
+
"d3-scale": "^4.0.2",
|
|
42
|
+
"date-fns": "^4.1.0",
|
|
43
|
+
"react": "^19.2.0",
|
|
44
|
+
"react-dom": "^19.2.0",
|
|
45
|
+
"tailwind-merge": "^3.4.0"
|
|
46
|
+
},
|
|
47
|
+
"peerDependencies": {
|
|
48
|
+
"react-native": "*",
|
|
49
|
+
"react-native-svg": "*"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@eslint/js": "^9.39.1",
|
|
53
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
54
|
+
"@testing-library/react": "^16.3.1",
|
|
55
|
+
"@types/d3-scale": "^4.0.9",
|
|
56
|
+
"@types/node": "^24.10.1",
|
|
57
|
+
"@types/react": "^19.2.5",
|
|
58
|
+
"@types/react-dom": "^19.2.3",
|
|
59
|
+
"@types/react-native": "^0.72.8",
|
|
60
|
+
"@vitejs/plugin-react": "^5.1.1",
|
|
61
|
+
"eslint": "^9.39.1",
|
|
62
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
63
|
+
"eslint-plugin-react-refresh": "^0.4.24",
|
|
64
|
+
"globals": "^16.5.0",
|
|
65
|
+
"jsdom": "^27.4.0",
|
|
66
|
+
"react-native-svg": "^15.15.1",
|
|
67
|
+
"typescript": "~5.9.3",
|
|
68
|
+
"typescript-eslint": "^8.46.4",
|
|
69
|
+
"vite": "^7.2.4",
|
|
70
|
+
"vitest": "^4.0.16"
|
|
71
|
+
}
|
|
72
|
+
}
|