kiro-memory 1.9.0 → 3.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.
Files changed (34) hide show
  1. package/README.md +5 -1
  2. package/package.json +5 -5
  3. package/plugin/dist/cli/contextkit.js +2611 -345
  4. package/plugin/dist/hooks/agentSpawn.js +853 -223
  5. package/plugin/dist/hooks/kiro-hooks.js +841 -211
  6. package/plugin/dist/hooks/postToolUse.js +853 -222
  7. package/plugin/dist/hooks/stop.js +850 -220
  8. package/plugin/dist/hooks/userPromptSubmit.js +848 -216
  9. package/plugin/dist/index.js +843 -340
  10. package/plugin/dist/plugins/github/github-client.js +152 -0
  11. package/plugin/dist/plugins/github/index.js +412 -0
  12. package/plugin/dist/plugins/github/issue-parser.js +54 -0
  13. package/plugin/dist/plugins/slack/formatter.js +90 -0
  14. package/plugin/dist/plugins/slack/index.js +215 -0
  15. package/plugin/dist/sdk/index.js +841 -215
  16. package/plugin/dist/servers/mcp-server.js +4461 -397
  17. package/plugin/dist/services/search/EmbeddingService.js +146 -37
  18. package/plugin/dist/services/search/HybridSearch.js +564 -116
  19. package/plugin/dist/services/search/VectorSearch.js +187 -60
  20. package/plugin/dist/services/search/index.js +565 -254
  21. package/plugin/dist/services/sqlite/Backup.js +416 -0
  22. package/plugin/dist/services/sqlite/Database.js +126 -153
  23. package/plugin/dist/services/sqlite/ImportExport.js +452 -0
  24. package/plugin/dist/services/sqlite/Observations.js +314 -19
  25. package/plugin/dist/services/sqlite/Prompts.js +1 -1
  26. package/plugin/dist/services/sqlite/Search.js +41 -29
  27. package/plugin/dist/services/sqlite/Summaries.js +4 -4
  28. package/plugin/dist/services/sqlite/index.js +1428 -208
  29. package/plugin/dist/viewer.css +1 -0
  30. package/plugin/dist/viewer.html +2 -179
  31. package/plugin/dist/viewer.js +23 -24942
  32. package/plugin/dist/viewer.js.map +7 -0
  33. package/plugin/dist/worker-service.js +427 -5569
  34. package/plugin/dist/worker-service.js.map +7 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../node_modules/react/cjs/react.production.min.js", "../../node_modules/react/index.js", "../../node_modules/scheduler/cjs/scheduler.production.min.js", "../../node_modules/scheduler/index.js", "../../node_modules/react-dom/cjs/react-dom.production.min.js", "../../node_modules/react-dom/index.js", "../../node_modules/react-dom/client.js", "../../src/ui/viewer/index.tsx", "../../src/ui/viewer/App.tsx", "../../src/ui/viewer/components/Header.tsx", "../../src/ui/viewer/components/SearchBar.tsx", "../../src/ui/viewer/utils/format.ts", "../../src/ui/viewer/components/Sidebar.tsx", "../../src/ui/viewer/components/Feed.tsx", "../../src/ui/viewer/components/Analytics.tsx", "../../src/ui/viewer/hooks/useAnalytics.ts", "../../src/ui/viewer/components/ActivityHeatmap.tsx", "../../src/ui/viewer/hooks/useTimeline.ts", "../../src/ui/viewer/components/Sessions.tsx", "../../src/ui/viewer/components/Timeline.tsx", "../../src/ui/viewer/components/DiffViewer.tsx", "../../src/ui/viewer/utils/diff.ts", "../../src/ui/viewer/hooks/useSSE.ts", "../../src/ui/viewer/hooks/useTheme.ts", "../../src/ui/viewer/hooks/useProjectAliases.ts", "../../src/ui/viewer/hooks/useFilters.ts", "../../src/ui/viewer/utils/data.ts"],
4
+ "sourcesContent": ["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n", "/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n", "/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n", "'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n", "'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n", "import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { App } from './App';\n\nconst root = ReactDOM.createRoot(document.getElementById('root')!);\nroot.render(\n <React.StrictMode>\n <App />\n </React.StrictMode>\n);\n", "import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { Header } from './components/Header';\nimport { Sidebar } from './components/Sidebar';\nimport { Feed } from './components/Feed';\nimport { Analytics } from './components/Analytics';\nimport { Sessions } from './components/Sessions';\nimport { Timeline } from './components/Timeline';\nimport { DiffViewer } from './components/DiffViewer';\nimport { useSSE } from './hooks/useSSE';\nimport { useTheme } from './hooks/useTheme';\nimport { useProjectAliases } from './hooks/useProjectAliases';\nimport { useFilters } from './hooks/useFilters';\nimport { Observation, Summary, UserPrompt, ViewMode, DiffSelection } from './types';\nimport { mergeAndDeduplicateByProject } from './utils/data';\n\nexport function App() {\n const [currentView, setCurrentView] = useState<ViewMode>('feed');\n const [paginatedObservations, setPaginatedObservations] = useState<Observation[]>([]);\n const [paginatedSummaries, setPaginatedSummaries] = useState<Summary[]>([]);\n const [paginatedPrompts, setPaginatedPrompts] = useState<UserPrompt[]>([]);\n const [isLoadingMore, setIsLoadingMore] = useState(false);\n const [hasMore, setHasMore] = useState({ observations: true, summaries: true, prompts: true });\n // Cursors per keyset pagination (null = nessuna pagina caricata o fine dati)\n const [cursors, setCursors] = useState<{\n observations: string | null;\n summaries: string | null;\n prompts: string | null;\n }>({ observations: null, summaries: null, prompts: null });\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\n const [highlightObsId, setHighlightObsId] = useState<number | null>(null);\n // Selezione iniziale per il DiffViewer (passata dal bottone \"Confronta\" nel Feed)\n const [diffInitialLeft, setDiffInitialLeft] = useState<DiffSelection | undefined>(undefined);\n\n const { observations, summaries, prompts, projects, isConnected, lastEventTime } = useSSE();\n const { preference: themePreference, resolvedTheme, setThemePreference } = useTheme();\n const { getDisplayName, updateAlias } = useProjectAliases();\n\n // Hook centralizzato per la gestione dei filtri avanzati\n const { state: filters, dispatch: dispatchFilter, debouncedSearchText, hasActiveFilters, savedFilters, saveCurrentFilter, deleteSavedFilter } = useFilters();\n\n // Alias per compatibilit\u00E0 con i componenti che usano currentFilter/activeTypes\n const currentFilter = filters.project;\n const activeTypes = filters.activeTypes;\n\n // Merge live SSE data with paginated data\n const allObservations = useMemo(() => {\n if (currentFilter) return paginatedObservations;\n return mergeAndDeduplicateByProject(observations, paginatedObservations);\n }, [observations, paginatedObservations, currentFilter]);\n\n const allSummaries = useMemo(() => {\n if (currentFilter) return paginatedSummaries;\n return mergeAndDeduplicateByProject(summaries, paginatedSummaries);\n }, [summaries, paginatedSummaries, currentFilter]);\n\n const allPrompts = useMemo(() => {\n if (currentFilter) return paginatedPrompts;\n return mergeAndDeduplicateByProject(prompts, paginatedPrompts);\n }, [prompts, paginatedPrompts, currentFilter]);\n\n // Applica tutti i filtri attivi: tipo, data, concetti, testo libero\n const filteredObservations = useMemo(() => {\n let result = allObservations;\n\n // Filtro per tipo\n result = result.filter(o => activeTypes.has(o.type));\n\n // Filtro per data (dal lato client sulle osservazioni gi\u00E0 caricate)\n if (filters.dateRange.from) {\n const fromTs = new Date(filters.dateRange.from).getTime();\n result = result.filter(o => o.created_at_epoch >= fromTs);\n }\n if (filters.dateRange.to) {\n // Include l'intera giornata di fine periodo\n const toTs = new Date(filters.dateRange.to).getTime() + 86_400_000;\n result = result.filter(o => o.created_at_epoch < toTs);\n }\n\n // Filtro per concetti selezionati\n if (filters.activeConcepts.size > 0) {\n result = result.filter(o => {\n if (!o.concepts) return false;\n const obsConcepts = o.concepts.split(',').map(c => c.trim());\n return Array.from(filters.activeConcepts).some(c => obsConcepts.includes(c));\n });\n }\n\n // Filtro per testo libero (con debounce applicato)\n if (debouncedSearchText.trim()) {\n const needle = debouncedSearchText.trim().toLowerCase();\n result = result.filter(o => {\n const haystack = [o.title, o.narrative, o.concepts, o.text]\n .filter(Boolean)\n .join(' ')\n .toLowerCase();\n return haystack.includes(needle);\n });\n }\n\n return result;\n }, [allObservations, activeTypes, filters.dateRange, filters.activeConcepts, debouncedSearchText]);\n\n // Statistiche reali dal server (totali DB, non conteggi paginazione locale)\n const [stats, setStats] = useState<{\n observations: number; summaries: number; prompts: number;\n tokenEconomics: { discoveryTokens: number; readTokens: number; savings: number };\n }>({ observations: 0, summaries: 0, prompts: 0, tokenEconomics: { discoveryTokens: 0, readTokens: 0, savings: 0 } });\n\n // Recupera le statistiche dall'analytics overview\n useEffect(() => {\n const params = currentFilter ? `?project=${encodeURIComponent(currentFilter)}` : '';\n fetch(`/api/analytics/overview${params}`)\n .then(r => r.ok ? r.json() : null)\n .then(data => {\n if (data) {\n setStats({\n observations: data.observations || 0,\n summaries: data.summaries || 0,\n prompts: data.prompts || 0,\n tokenEconomics: data.tokenEconomics || { discoveryTokens: 0, readTokens: 0, savings: 0 },\n });\n }\n })\n .catch(() => {});\n }, [currentFilter, allObservations.length]);\n\n // Fetch paginato per progetto specifico con supporto al filtro date.\n // Prima pagina: nessun cursor, reset completo dei dati.\n const fetchForProject = useCallback(async (\n project: string,\n dateFrom?: string,\n dateTo?: string\n ) => {\n setIsLoadingMore(true);\n try {\n const params = new URLSearchParams({\n limit: '30',\n ...(project && { project }),\n ...(dateFrom && { from: dateFrom }),\n ...(dateTo && { to: dateTo }),\n });\n\n const [obsRes, sumRes, promptRes] = await Promise.all([\n fetch(`/api/observations?${params}`),\n fetch(`/api/summaries?${params}`),\n fetch(`/api/prompts?${params}`)\n ]);\n\n if (obsRes.ok) {\n const json = await obsRes.json();\n setPaginatedObservations(json.data ?? json);\n setCursors(prev => ({ ...prev, observations: json.next_cursor ?? null }));\n setHasMore(prev => ({ ...prev, observations: json.has_more ?? false }));\n }\n if (sumRes.ok) {\n const json = await sumRes.json();\n setPaginatedSummaries(json.data ?? json);\n setCursors(prev => ({ ...prev, summaries: json.next_cursor ?? null }));\n setHasMore(prev => ({ ...prev, summaries: json.has_more ?? false }));\n }\n if (promptRes.ok) {\n const json = await promptRes.json();\n setPaginatedPrompts(json.data ?? json);\n setCursors(prev => ({ ...prev, prompts: json.next_cursor ?? null }));\n setHasMore(prev => ({ ...prev, prompts: json.has_more ?? false }));\n }\n } catch (error) {\n console.error('Failed to load data:', error);\n } finally {\n setIsLoadingMore(false);\n }\n }, []);\n\n // Caricamento incrementale con keyset pagination \u2014 usa il cursor dell'ultima pagina.\n // Recupera solo i tipi che hanno ancora dati disponibili.\n const handleLoadMore = useCallback(async () => {\n if (isLoadingMore) return;\n if (!hasMore.observations && !hasMore.summaries && !hasMore.prompts) return;\n setIsLoadingMore(true);\n\n try {\n const limit = '20';\n const projectParam = currentFilter ? `&project=${encodeURIComponent(currentFilter)}` : '';\n const fromParam = filters.dateRange.from ? `&from=${filters.dateRange.from}` : '';\n const toParam = filters.dateRange.to ? `&to=${filters.dateRange.to}` : '';\n const dateParams = `${fromParam}${toParam}`;\n\n const fetches = await Promise.all([\n hasMore.observations\n ? fetch(`/api/observations?cursor=${encodeURIComponent(cursors.observations ?? '')}&limit=${limit}${projectParam}${dateParams}`)\n : null,\n hasMore.summaries\n ? fetch(`/api/summaries?cursor=${encodeURIComponent(cursors.summaries ?? '')}&limit=${limit}${projectParam}${dateParams}`)\n : null,\n hasMore.prompts\n ? fetch(`/api/prompts?cursor=${encodeURIComponent(cursors.prompts ?? '')}&limit=${limit}${projectParam}${dateParams}`)\n : null,\n ]);\n\n const [obsRes, sumRes, promptRes] = fetches;\n const nextHasMore = { ...hasMore };\n const nextCursors = { ...cursors };\n\n if (obsRes?.ok) {\n const json = await obsRes.json();\n const newObs = json.data ?? json;\n if (newObs.length === 0 || !json.has_more) {\n nextHasMore.observations = false;\n nextCursors.observations = null;\n } else {\n setPaginatedObservations(prev => [...prev, ...newObs]);\n nextCursors.observations = json.next_cursor ?? null;\n }\n }\n if (sumRes?.ok) {\n const json = await sumRes.json();\n const newSum = json.data ?? json;\n if (newSum.length === 0 || !json.has_more) {\n nextHasMore.summaries = false;\n nextCursors.summaries = null;\n } else {\n setPaginatedSummaries(prev => [...prev, ...newSum]);\n nextCursors.summaries = json.next_cursor ?? null;\n }\n }\n if (promptRes?.ok) {\n const json = await promptRes.json();\n const newPrompts = json.data ?? json;\n if (newPrompts.length === 0 || !json.has_more) {\n nextHasMore.prompts = false;\n nextCursors.prompts = null;\n } else {\n setPaginatedPrompts(prev => [...prev, ...newPrompts]);\n nextCursors.prompts = json.next_cursor ?? null;\n }\n }\n\n setHasMore(nextHasMore);\n setCursors(nextCursors);\n } catch (error) {\n console.error('Failed to load more data:', error);\n } finally {\n setIsLoadingMore(false);\n }\n }, [currentFilter, filters.dateRange, cursors, isLoadingMore, hasMore]);\n\n // Reset + fetch automatico quando cambiano il progetto o il range di date.\n // Azzera anche i cursors keyset per ripartire dalla prima pagina.\n useEffect(() => {\n setPaginatedObservations([]);\n setPaginatedSummaries([]);\n setPaginatedPrompts([]);\n setHasMore({ observations: true, summaries: true, prompts: true });\n setCursors({ observations: null, summaries: null, prompts: null });\n\n if (currentFilter) {\n fetchForProject(currentFilter, filters.dateRange.from || undefined, filters.dateRange.to || undefined);\n }\n }, [currentFilter, filters.dateRange.from, filters.dateRange.to, fetchForProject]);\n\n // Scroll + highlight dopo navigazione dalla searchbar\n useEffect(() => {\n if (highlightObsId === null) return;\n const targetId = `obs-${highlightObsId}`;\n let attempts = 0;\n const tryScroll = () => {\n const el = document.querySelector(`[data-id=\"${targetId}\"]`);\n if (el) {\n el.scrollIntoView({ behavior: 'smooth', block: 'center' });\n el.classList.add('ring-2', 'ring-accent-violet', 'ring-offset-2', 'ring-offset-surface-0');\n setTimeout(() => {\n el.classList.remove('ring-2', 'ring-accent-violet', 'ring-offset-2', 'ring-offset-surface-0');\n setHighlightObsId(null);\n }, 3000);\n } else if (attempts < 10) {\n attempts++;\n setTimeout(tryScroll, 200);\n } else {\n setHighlightObsId(null);\n }\n };\n tryScroll();\n }, [highlightObsId, paginatedObservations, allObservations]);\n\n // Callback per navigazione dalla searchbar\n const handleSearchNavigate = useCallback((project: string, obsId: number) => {\n setCurrentView('feed');\n dispatchFilter({ type: 'SET_PROJECT', payload: project });\n setHighlightObsId(obsId);\n }, [dispatchFilter]);\n\n // Callback invocata dal Feed quando si preme \"Confronta\" su una card osservazione\n const handleCompareObs = useCallback((obs: Observation) => {\n const content = [obs.narrative, obs.text, obs.title].filter(Boolean).join('\\n\\n');\n setDiffInitialLeft({\n kind: 'observation',\n id: obs.id,\n title: obs.title || `Osservazione #${obs.id}`,\n date: obs.created_at,\n project: obs.project,\n content,\n });\n setCurrentView('diff');\n }, []);\n\n return (\n <div className=\"h-screen overflow-hidden flex bg-surface-0\">\n {/* Sidebar desktop */}\n <div className=\"hidden md:flex w-[260px] flex-shrink-0\">\n <Sidebar\n projects={projects}\n filters={filters}\n dispatch={dispatchFilter}\n hasActiveFilters={hasActiveFilters}\n savedFilters={savedFilters}\n onSaveFilter={saveCurrentFilter}\n onDeleteSavedFilter={deleteSavedFilter}\n stats={stats}\n getDisplayName={getDisplayName}\n onRenameProject={updateAlias}\n />\n </div>\n\n {/* Sidebar mobile (drawer) */}\n {isMobileMenuOpen && (\n <>\n <div\n className=\"fixed inset-0 bg-black/50 z-40 md:hidden\"\n onClick={() => setIsMobileMenuOpen(false)}\n />\n <div className=\"fixed inset-y-0 left-0 w-[280px] z-50 md:hidden animate-slide-in-left\">\n <Sidebar\n projects={projects}\n filters={filters}\n dispatch={dispatchFilter}\n hasActiveFilters={hasActiveFilters}\n savedFilters={savedFilters}\n onSaveFilter={saveCurrentFilter}\n onDeleteSavedFilter={deleteSavedFilter}\n stats={stats}\n getDisplayName={getDisplayName}\n onRenameProject={async (p, name) => { await updateAlias(p, name); setIsMobileMenuOpen(false); }}\n />\n </div>\n </>\n )}\n\n {/* Colonna destra: header + contenuto */}\n <div className=\"flex-1 min-w-0 flex flex-col overflow-hidden\">\n {/* Header sopra il contenuto (non sulla sidebar) */}\n <Header\n isConnected={isConnected}\n lastEventTime={lastEventTime}\n resolvedTheme={resolvedTheme}\n themePreference={themePreference}\n onThemeChange={setThemePreference}\n currentView={currentView}\n onViewChange={setCurrentView}\n onMenuToggle={() => setIsMobileMenuOpen(prev => !prev)}\n onSearchNavigate={handleSearchNavigate}\n />\n\n {/* Feed principale */}\n <main className=\"flex-1 min-w-0 overflow-y-auto bg-surface-0\">\n <div className=\"max-w-3xl mx-auto px-6 py-6\">\n {/* Banner filtro progetto attivo */}\n {currentFilter && (\n <div className=\"flex items-center gap-3 mb-6 animate-fade-in\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-9 h-9 rounded-lg bg-accent-violet/15 flex items-center justify-center\">\n <span className=\"text-xs font-bold text-accent-violet\">\n {getDisplayName(currentFilter).substring(0, 2).toUpperCase()}\n </span>\n </div>\n <div>\n <h2 className=\"text-lg font-bold text-zinc-100\">{getDisplayName(currentFilter)}</h2>\n {currentFilter !== getDisplayName(currentFilter) && (\n <span className=\"text-[11px] font-mono text-zinc-600\">{currentFilter}</span>\n )}\n </div>\n </div>\n <button\n onClick={() => dispatchFilter({ type: 'SET_PROJECT', payload: '' })}\n className=\"ml-auto flex items-center gap-1.5 text-xs text-zinc-500 hover:text-zinc-300 transition-colors px-3 py-1.5 rounded-lg hover:bg-surface-2 border border-transparent hover:border-border\"\n >\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n Clear filter\n </button>\n </div>\n )}\n\n {currentView === 'feed' ? (\n <Feed\n observations={filteredObservations}\n summaries={allSummaries}\n prompts={allPrompts}\n onLoadMore={handleLoadMore}\n isLoading={isLoadingMore}\n hasMore={hasMore.observations || hasMore.summaries || hasMore.prompts}\n getDisplayName={getDisplayName}\n onCompareObs={handleCompareObs}\n />\n ) : currentView === 'sessions' ? (\n <Sessions\n currentFilter={currentFilter}\n getDisplayName={getDisplayName}\n />\n ) : currentView === 'timeline' ? (\n /* Vista timeline interattiva canvas (issue #21) */\n <Timeline\n currentFilter={currentFilter}\n onNavigate={(project, obsId) => {\n setCurrentView('feed');\n dispatchFilter({ type: 'SET_PROJECT', payload: project });\n setHighlightObsId(obsId > 0 ? obsId : null);\n }}\n />\n ) : currentView === 'diff' ? (\n /* Vista diff viewer (issue #22) */\n <div className=\"h-[calc(100vh-8rem)]\">\n <DiffViewer\n observations={allObservations}\n summaries={allSummaries}\n getDisplayName={getDisplayName}\n initialLeft={diffInitialLeft}\n />\n </div>\n ) : (\n <Analytics\n currentFilter={currentFilter}\n getDisplayName={getDisplayName}\n onDayClick={(date) => {\n // Click su cella heatmap: filtra il feed per quel giorno specifico\n setCurrentView('feed');\n dispatchFilter({\n type: 'SET_DATE_RANGE',\n payload: { from: date, to: date },\n });\n }}\n />\n )}\n </div>\n </main>\n </div>\n </div>\n );\n}\n", "import React, { useState, useEffect } from 'react';\nimport { SearchBar } from './SearchBar';\nimport type { ViewMode } from '../types';\n\nimport type { ThemePreference } from '../types';\n\ninterface HeaderProps {\n isConnected: boolean;\n lastEventTime: number;\n resolvedTheme: 'light' | 'dark';\n themePreference: ThemePreference;\n onThemeChange: (theme: ThemePreference) => void;\n currentView: ViewMode;\n onViewChange: (view: ViewMode) => void;\n onMenuToggle?: () => void;\n onSearchNavigate?: (project: string, observationId: number) => void;\n}\n\n/** Formatta secondi trascorsi in testo leggibile */\nfunction formatAgo(ms: number): string {\n if (ms <= 0) return '';\n const sec = Math.floor(ms / 1000);\n if (sec < 5) return 'just now';\n if (sec < 60) return `${sec}s ago`;\n const min = Math.floor(sec / 60);\n if (min < 60) return `${min}m ago`;\n return `${Math.floor(min / 60)}h ago`;\n}\n\nexport function Header({ isConnected, lastEventTime, resolvedTheme, themePreference, onThemeChange, currentView, onViewChange, onMenuToggle, onSearchNavigate }: HeaderProps) {\n /* Cicla il tema: dark \u2192 light \u2192 system \u2192 dark */\n const cycleTheme = () => {\n const order: ThemePreference[] = ['dark', 'light', 'system'];\n const current = order.indexOf(themePreference);\n onThemeChange(order[(current + 1) % order.length]);\n };\n /* Aggiorna il testo \"Updated Xs ago\" ogni 5 secondi */\n const [now, setNow] = useState(Date.now());\n useEffect(() => {\n const t = setInterval(() => setNow(Date.now()), 5_000);\n return () => clearInterval(t);\n }, []);\n\n const agoText = lastEventTime > 0 ? formatAgo(now - lastEventTime) : '';\n /* Evento fresco: meno di 3 secondi fa */\n const isFresh = lastEventTime > 0 && (now - lastEventTime) < 3_000;\n return (\n <header className=\"flex items-center gap-4 px-4 md:px-6 h-14 bg-surface-1 border-b border-border z-50\">\n {/* Menu hamburger (solo mobile) */}\n {onMenuToggle && (\n <button\n onClick={onMenuToggle}\n className=\"md:hidden w-8 h-8 rounded-lg bg-surface-2 border border-border text-zinc-400 hover:text-zinc-100 hover:bg-surface-3 transition-all flex items-center justify-center flex-shrink-0\"\n aria-label=\"Apri menu laterale\"\n >\n <svg className=\"w-4 h-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <line x1=\"4\" y1=\"6\" x2=\"20\" y2=\"6\" /><line x1=\"4\" y1=\"12\" x2=\"20\" y2=\"12\" /><line x1=\"4\" y1=\"18\" x2=\"20\" y2=\"18\" />\n </svg>\n </button>\n )}\n\n {/* Cerca */}\n <SearchBar onNavigate={onSearchNavigate} />\n\n {/* Spacer */}\n <div className=\"flex-1\" />\n\n {/* Status + ultimo aggiornamento */}\n <div className=\"hidden sm:flex items-center gap-2 px-3 py-1.5 rounded-lg bg-surface-2 border border-border\">\n <div className={`w-2 h-2 rounded-full transition-all ${\n isFresh ? 'bg-accent-green scale-125' :\n isConnected ? 'bg-accent-green animate-pulse-dot' : 'bg-zinc-500'\n }`} />\n <span className={`text-xs font-medium ${isConnected ? 'text-accent-green' : 'text-zinc-500'}`}>\n {isConnected ? 'Live' : 'Offline'}\n </span>\n {agoText && (\n <span className=\"text-[10px] text-zinc-600 ml-1\">{agoText}</span>\n )}\n </div>\n\n {/* View toggle: Feed / Analytics / Sessions */}\n <div className=\"hidden sm:flex items-center rounded-lg bg-surface-2 border border-border p-0.5\" role=\"tablist\" aria-label=\"View mode\">\n <button\n onClick={() => onViewChange('feed')}\n className={`flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs font-medium transition-all ${\n currentView === 'feed'\n ? 'bg-surface-3 text-zinc-100 shadow-sm'\n : 'text-zinc-500 hover:text-zinc-300'\n }`}\n role=\"tab\"\n aria-selected={currentView === 'feed'}\n aria-label=\"Memory Feed\"\n >\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\" /><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\" /><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\" />\n <line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\" /><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\" /><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\" />\n </svg>\n Feed\n </button>\n <button\n onClick={() => onViewChange('analytics')}\n className={`flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs font-medium transition-all ${\n currentView === 'analytics'\n ? 'bg-surface-3 text-zinc-100 shadow-sm'\n : 'text-zinc-500 hover:text-zinc-300'\n }`}\n role=\"tab\"\n aria-selected={currentView === 'analytics'}\n aria-label=\"Analytics Dashboard\"\n >\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"10\" /><line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"4\" /><line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"14\" />\n </svg>\n Analytics\n </button>\n <button\n onClick={() => onViewChange('sessions')}\n className={`flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs font-medium transition-all ${\n currentView === 'sessions'\n ? 'bg-surface-3 text-zinc-100 shadow-sm'\n : 'text-zinc-500 hover:text-zinc-300'\n }`}\n role=\"tab\"\n aria-selected={currentView === 'sessions'}\n aria-label=\"Sessions\"\n >\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" /><polyline points=\"12 6 12 12 16 14\" />\n </svg>\n Sessions\n </button>\n {/* Tab Timeline interattiva (issue #21) */}\n <button\n onClick={() => onViewChange('timeline')}\n className={`flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs font-medium transition-all ${\n currentView === 'timeline'\n ? 'bg-surface-3 text-zinc-100 shadow-sm'\n : 'text-zinc-500 hover:text-zinc-300'\n }`}\n role=\"tab\"\n aria-selected={currentView === 'timeline'}\n aria-label=\"Timeline interattiva\"\n >\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\" />\n <circle cx=\"7\" cy=\"12\" r=\"2\" /><circle cx=\"12\" cy=\"12\" r=\"2\" /><circle cx=\"17\" cy=\"12\" r=\"2\" />\n </svg>\n Timeline\n </button>\n {/* Tab Diff viewer (issue #22) */}\n <button\n onClick={() => onViewChange('diff')}\n className={`flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs font-medium transition-all ${\n currentView === 'diff'\n ? 'bg-surface-3 text-zinc-100 shadow-sm'\n : 'text-zinc-500 hover:text-zinc-300'\n }`}\n role=\"tab\"\n aria-selected={currentView === 'diff'}\n aria-label=\"Confronta elementi\"\n >\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M16 18 22 12 16 6\" /><path d=\"M8 6 2 12 8 18\" />\n </svg>\n Diff\n </button>\n </div>\n\n {/* Theme toggle */}\n <button\n onClick={cycleTheme}\n className=\"w-8 h-8 rounded-lg bg-surface-2 border border-border text-zinc-400 hover:text-zinc-100 hover:bg-surface-3 hover:border-border-hover transition-all flex items-center justify-center\"\n title={`Theme: ${themePreference}`}\n aria-label={`Theme: ${themePreference}. Click to change`}\n >\n {themePreference === 'system' ? (\n <svg className=\"w-4 h-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" /><line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\" /><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\" />\n </svg>\n ) : resolvedTheme === 'dark' ? (\n <svg className=\"w-4 h-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path d=\"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\" />\n </svg>\n ) : (\n <svg className=\"w-4 h-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\" />\n </svg>\n )}\n </button>\n </header>\n );\n}\n", "import React, { useState, useRef, useEffect, useCallback } from 'react';\nimport { getTypeBadgeClasses, timeAgo } from '../utils/format';\n\ninterface HybridResult {\n id: string;\n title: string;\n content: string;\n type: string;\n project: string;\n created_at_epoch: number;\n score: number;\n source: 'vector' | 'keyword' | 'hybrid';\n}\n\nconst SOURCE_BADGE: Record<string, { bg: string; text: string; label: string }> = {\n vector: { bg: 'bg-violet-500/15', text: 'text-violet-400', label: 'semantic' },\n keyword: { bg: 'bg-amber-500/15', text: 'text-amber-400', label: 'keyword' },\n hybrid: { bg: 'bg-cyan-500/15', text: 'text-cyan-400', label: 'hybrid' },\n};\n\ninterface SearchBarProps {\n onNavigate?: (project: string, observationId: number) => void;\n}\n\nexport function SearchBar({ onNavigate }: SearchBarProps) {\n const [query, setQuery] = useState('');\n const [results, setResults] = useState<HybridResult[]>([]);\n const [isOpen, setIsOpen] = useState(false);\n const [isSearching, setIsSearching] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n const debounceRef = useRef<ReturnType<typeof setTimeout>>();\n\n const doSearch = useCallback(async (q: string) => {\n if (!q.trim()) { setResults([]); return; }\n setIsSearching(true);\n try {\n const res = await fetch(`/api/hybrid-search?q=${encodeURIComponent(q)}&limit=10`);\n if (res.ok) {\n const data = await res.json();\n setResults(data.results || []);\n setSelectedIndex(0);\n }\n } catch (err) { console.error('Search failed:', err); }\n finally { setIsSearching(false); }\n }, []);\n\n const handleChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n setQuery(value);\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(() => doSearch(value), 250);\n }, [doSearch]);\n\n const close = useCallback(() => {\n setIsOpen(false); setQuery(''); setResults([]); setSelectedIndex(0);\n }, []);\n\n const total = results.length;\n\n /** Naviga al risultato selezionato: cambia progetto + vista feed + scroll + highlight */\n const openSelected = useCallback(() => {\n if (total === 0) return;\n const item = results[selectedIndex];\n if (!item) return;\n close();\n if (onNavigate) {\n onNavigate(item.project, parseInt(String(item.id), 10));\n }\n }, [results, selectedIndex, total, close, onNavigate]);\n\n useEffect(() => {\n const handler = (e: KeyboardEvent) => {\n if ((e.metaKey || e.ctrlKey) && e.key === 'k') {\n e.preventDefault();\n setIsOpen(true);\n setTimeout(() => inputRef.current?.focus(), 50);\n }\n if (e.key === 'Escape') close();\n if (!isOpen) return;\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n setSelectedIndex(prev => Math.min(prev + 1, total - 1));\n }\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n setSelectedIndex(prev => Math.max(prev - 1, 0));\n }\n if (e.key === 'Enter' && total > 0) {\n e.preventDefault();\n openSelected();\n }\n };\n window.addEventListener('keydown', handler);\n return () => window.removeEventListener('keydown', handler);\n }, [close, isOpen, total, openSelected]);\n\n return (\n <>\n {/* Trigger */}\n <button\n onClick={() => { setIsOpen(true); setTimeout(() => inputRef.current?.focus(), 50); }}\n className=\"flex items-center gap-2.5 flex-1 max-w-md px-3 py-2 rounded-lg bg-surface-2 border border-border text-zinc-500 hover:text-zinc-300 hover:border-border-hover transition-all cursor-text\"\n aria-label=\"Search memories\"\n >\n <svg className=\"w-4 h-4 flex-shrink-0\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" /><path d=\"m21 21-4.3-4.3\" />\n </svg>\n <span className=\"text-sm\">Search memories...</span>\n <kbd className=\"ml-auto hidden sm:inline text-[11px] text-zinc-600 bg-surface-3 px-1.5 py-0.5 rounded font-mono border border-border\">\n {typeof navigator !== 'undefined' && navigator.platform?.includes('Mac') ? '\\u2318K' : 'Ctrl+K'}\n </kbd>\n </button>\n\n {/* Overlay */}\n {isOpen && (\n <div className=\"fixed inset-0 z-[999] bg-black/60 backdrop-blur-sm animate-fade-in\" onClick={close} role=\"dialog\" aria-modal=\"true\" aria-label=\"Search\">\n <div className=\"mx-auto mt-[12vh] w-full max-w-xl animate-scale-in px-4\" onClick={e => e.stopPropagation()}>\n <div className=\"bg-surface-1 border border-border rounded-xl shadow-2xl overflow-hidden\">\n {/* Input */}\n <div className=\"flex items-center gap-3 px-4 py-3.5 border-b border-border\">\n <svg className=\"w-5 h-5 text-accent-violet flex-shrink-0\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" /><path d=\"m21 21-4.3-4.3\" />\n </svg>\n <input\n ref={inputRef}\n type=\"text\"\n className=\"flex-1 bg-transparent border-none outline-none text-sm text-zinc-100 cmd-input\"\n placeholder=\"Search observations, summaries, concepts...\"\n value={query}\n onChange={handleChange}\n role=\"combobox\"\n aria-expanded={total > 0}\n aria-controls=\"search-results\"\n aria-activedescendant={total > 0 ? `search-item-${selectedIndex}` : undefined}\n autoFocus\n />\n {isSearching && <div className=\"w-4 h-4 border-2 border-accent-violet/30 border-t-accent-violet rounded-full animate-spin\" />}\n <kbd className=\"text-[10px] text-zinc-500 bg-surface-3 px-1.5 py-0.5 rounded font-mono border border-border cursor-pointer\" onClick={close}>ESC</kbd>\n </div>\n\n {/* Risultati */}\n <div id=\"search-results\" className=\"max-h-[360px] overflow-y-auto\" role=\"listbox\">\n {total === 0 && !isSearching && query.trim() && (\n <div className=\"px-4 py-10 text-center\">\n <p className=\"text-sm text-zinc-500\">No results for &quot;{query}&quot;</p>\n </div>\n )}\n\n {results.map((item, idx) => {\n const badge = getTypeBadgeClasses(item.type);\n const srcBadge = SOURCE_BADGE[item.source] || SOURCE_BADGE.keyword;\n\n return (\n <div\n key={item.id}\n id={`search-item-${idx}`}\n role=\"option\"\n aria-selected={idx === selectedIndex}\n className={`flex items-start gap-3 px-4 py-2.5 cursor-pointer transition-colors ${idx === selectedIndex ? 'bg-surface-2' : 'hover:bg-surface-2/50'}`}\n onClick={() => { setSelectedIndex(idx); openSelected(); }}\n >\n <div className={`w-2 h-2 rounded-full mt-1.5 flex-shrink-0 ${badge.dot}`} />\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-sm text-zinc-200 truncate\">{item.title}</div>\n {item.content && <div className=\"text-xs text-zinc-500 truncate mt-0.5\">{item.content.substring(0, 120)}</div>}\n <div className=\"flex items-center gap-2 mt-1 flex-wrap\">\n <span className={`text-[10px] font-medium px-1.5 py-0.5 rounded ${badge.bg} ${badge.text}`}>{item.type}</span>\n <span className=\"text-[10px] font-medium px-1.5 py-0.5 rounded bg-accent-violet/10 text-accent-violet\">{item.project}</span>\n <span className={`text-[10px] font-medium px-1.5 py-0.5 rounded ${srcBadge.bg} ${srcBadge.text}`}>{srcBadge.label}</span>\n <span className=\"text-[10px] text-zinc-600 font-mono\">{timeAgo(item.created_at_epoch)}</span>\n {item.score > 0 && <span className=\"text-[10px] text-zinc-700 font-mono\">{(item.score * 100).toFixed(0)}%</span>}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n\n {/* Footer */}\n <div className=\"flex items-center gap-4 px-4 py-2.5 border-t border-border text-[11px] text-zinc-600\">\n <span><kbd className=\"px-1 py-0.5 rounded bg-surface-3 border border-border font-mono mr-1\">&uarr;&darr;</kbd>navigate</span>\n <span><kbd className=\"px-1 py-0.5 rounded bg-surface-3 border border-border font-mono mr-1\">&crarr;</kbd>open</span>\n <span><kbd className=\"px-1 py-0.5 rounded bg-surface-3 border border-border font-mono mr-1\">esc</kbd>close</span>\n </div>\n </div>\n </div>\n </div>\n )}\n </>\n );\n}\n", "/**\n * Kiro Memory Viewer \u2014 formatting utilities\n */\n\n/**\n * Returns Tailwind CSS classes for observation type badge.\n */\nexport function getTypeBadgeClasses(type: string): { bg: string; text: string; dot: string } {\n const map: Record<string, { bg: string; text: string; dot: string }> = {\n 'file-write': { bg: 'bg-emerald-500/10 dark:bg-emerald-500/10', text: 'text-emerald-600 dark:text-emerald-400', dot: 'bg-emerald-500' },\n 'file-read': { bg: 'bg-cyan-500/10 dark:bg-cyan-500/10', text: 'text-cyan-600 dark:text-cyan-400', dot: 'bg-cyan-500' },\n 'command': { bg: 'bg-amber-500/10 dark:bg-amber-500/10', text: 'text-amber-600 dark:text-amber-400', dot: 'bg-amber-500' },\n 'research': { bg: 'bg-blue-500/10 dark:bg-blue-500/10', text: 'text-blue-600 dark:text-blue-400', dot: 'bg-blue-500' },\n 'delegation': { bg: 'bg-violet-500/10 dark:bg-violet-500/10', text: 'text-violet-600 dark:text-violet-400', dot: 'bg-violet-500' },\n 'tool-use': { bg: 'bg-zinc-500/10 dark:bg-zinc-500/10', text: 'text-zinc-600 dark:text-zinc-400', dot: 'bg-zinc-500' },\n 'constraint': { bg: 'bg-red-500/10 dark:bg-red-500/10', text: 'text-red-600 dark:text-red-400', dot: 'bg-red-500' },\n 'decision': { bg: 'bg-orange-500/10 dark:bg-orange-500/10', text: 'text-orange-600 dark:text-orange-400', dot: 'bg-orange-500' },\n 'heuristic': { bg: 'bg-indigo-500/10 dark:bg-indigo-500/10', text: 'text-indigo-600 dark:text-indigo-400', dot: 'bg-indigo-500' },\n 'rejected': { bg: 'bg-slate-500/10 dark:bg-slate-500/10', text: 'text-slate-600 dark:text-slate-400', dot: 'bg-slate-500' },\n };\n return map[type] || { bg: 'bg-zinc-500/10 dark:bg-zinc-500/10', text: 'text-zinc-600 dark:text-zinc-400', dot: 'bg-zinc-500' };\n}\n\n/**\n * Converts an epoch to a readable relative time string.\n * Accetta sia secondi che millisecondi (auto-detect: se > 1e12 \u2192 millisecondi).\n */\nexport function timeAgo(epoch: number): string {\n const epochMs = epoch > 1e12 ? epoch : epoch * 1000;\n const diff = Math.max(0, (Date.now() - epochMs) / 1000);\n\n if (diff < 60) return 'just now';\n if (diff < 3600) {\n const m = Math.floor(diff / 60);\n return `${m}m ago`;\n }\n if (diff < 86400) {\n const h = Math.floor(diff / 3600);\n return `${h}h ago`;\n }\n if (diff < 172800) return 'yesterday';\n if (diff < 604800) {\n const d = Math.floor(diff / 86400);\n return `${d}d ago`;\n }\n if (diff < 2592000) {\n const w = Math.floor(diff / 604800);\n return `${w}w ago`;\n }\n const date = new Date(epochMs);\n return date.toLocaleDateString('en-US', { day: 'numeric', month: 'short' });\n}\n\n/**\n * Formatta conteggio token in formato leggibile (1.2k, 45.3k, 1.2M).\n */\nexport function formatTokenCount(tokens: number): string {\n if (tokens >= 1_000_000) return `${(tokens / 1_000_000).toFixed(1)}M`;\n if (tokens >= 1_000) return `${(tokens / 1_000).toFixed(1)}k`;\n return String(tokens);\n}\n\n/**\n * Formatta durata in minuti in formato leggibile.\n */\nexport function formatDuration(minutes: number): string {\n if (minutes < 1) return '<1m';\n if (minutes < 60) return `${Math.round(minutes)}m`;\n const h = Math.floor(minutes / 60);\n const m = Math.round(minutes % 60);\n return m > 0 ? `${h}h ${m}m` : `${h}h`;\n}\n", "import React, { useState, useRef, useEffect } from 'react';\nimport { formatTokenCount } from '../utils/format';\nimport type { FilterState, FilterAction, SavedFilter, DatePreset, ConceptEntry } from '../types';\n\n/* Configurazione colori per tipo osservazione */\nconst TYPE_CONFIG: Record<string, { color: string; label: string }> = {\n 'file-write': { color: 'bg-accent-green', label: 'Changes' },\n 'file-read': { color: 'bg-accent-cyan', label: 'Reads' },\n 'command': { color: 'bg-accent-amber', label: 'Commands' },\n 'research': { color: 'bg-accent-blue', label: 'Research' },\n 'delegation': { color: 'bg-accent-violet', label: 'Delegations' },\n 'tool-use': { color: 'bg-zinc-400', label: 'Tools' },\n};\n\n/* Colori deterministici per i progetti (hash del nome) */\nconst PROJECT_COLORS = [\n { bg: 'bg-accent-violet/15', text: 'text-accent-violet', ring: 'ring-accent-violet/30' },\n { bg: 'bg-accent-blue/15', text: 'text-accent-blue', ring: 'ring-accent-blue/30' },\n { bg: 'bg-accent-green/15', text: 'text-accent-green', ring: 'ring-accent-green/30' },\n { bg: 'bg-accent-amber/15', text: 'text-accent-amber', ring: 'ring-accent-amber/30' },\n { bg: 'bg-accent-rose/15', text: 'text-accent-rose', ring: 'ring-accent-rose/30' },\n { bg: 'bg-accent-cyan/15', text: 'text-accent-cyan', ring: 'ring-accent-cyan/30' },\n { bg: 'bg-accent-orange/15', text: 'text-accent-orange', ring: 'ring-accent-orange/30' },\n];\n\nfunction getProjectColorByName(name: string) {\n let hash = 0;\n for (let i = 0; i < name.length; i++) hash = ((hash << 5) - hash) + name.charCodeAt(i) | 0;\n return PROJECT_COLORS[Math.abs(hash) % PROJECT_COLORS.length];\n}\n\n/* Preset rapidi per il filtro data */\nconst DATE_PRESETS: Array<{ id: DatePreset; label: string }> = [\n { id: 'today', label: 'Today' },\n { id: 'week', label: 'This Week' },\n { id: 'month', label: 'This Month' },\n { id: 'all', label: 'All Time' },\n];\n\n/* Formatta un timestamp ms in data leggibile breve */\nfunction formatSavedAt(ts: number): string {\n return new Date(ts).toLocaleDateString(undefined, { month: 'short', day: 'numeric' });\n}\n\ninterface SidebarProps {\n projects: string[];\n filters: FilterState;\n dispatch: React.Dispatch<FilterAction>;\n hasActiveFilters: boolean;\n savedFilters: SavedFilter[];\n onSaveFilter: () => void;\n onDeleteSavedFilter: (id: string) => void;\n stats: {\n observations: number;\n summaries: number;\n prompts: number;\n tokenEconomics: { discoveryTokens: number; readTokens: number; savings: number };\n };\n getDisplayName: (project: string) => string;\n onRenameProject: (project: string, displayName: string) => Promise<void>;\n}\n\nexport function Sidebar({\n projects,\n filters,\n dispatch,\n hasActiveFilters,\n savedFilters,\n onSaveFilter,\n onDeleteSavedFilter,\n stats,\n getDisplayName,\n onRenameProject,\n}: SidebarProps) {\n /* Stato locale per la rinomina progetto */\n const [editingProject, setEditingProject] = useState<string | null>(null);\n const [editValue, setEditValue] = useState('');\n const [renameFeedback, setRenameFeedback] = useState<{ project: string; success: boolean } | null>(null);\n const [projectSearch, setProjectSearch] = useState('');\n const editInputRef = useRef<HTMLInputElement>(null);\n\n /* Concepts disponibili per il progetto corrente */\n const [concepts, setConcepts] = useState<ConceptEntry[]>([]);\n const [conceptsLoading, setConceptsLoading] = useState(false);\n\n /* Filtro progetti per ricerca locale */\n const filteredProjects = projectSearch\n ? projects.filter(p =>\n getDisplayName(p).toLowerCase().includes(projectSearch.toLowerCase()) ||\n p.toLowerCase().includes(projectSearch.toLowerCase())\n )\n : projects;\n\n /* Focus automatico sull'input di rinomina */\n useEffect(() => {\n if (editingProject && editInputRef.current) {\n editInputRef.current.focus();\n editInputRef.current.select();\n }\n }, [editingProject]);\n\n /* Carica i concepts quando cambia il progetto selezionato */\n useEffect(() => {\n setConceptsLoading(true);\n const url = filters.project\n ? `/api/concepts?project=${encodeURIComponent(filters.project)}&limit=30`\n : '/api/concepts?limit=30';\n\n fetch(url)\n .then(r => r.ok ? r.json() : [])\n .then((data: ConceptEntry[]) => setConcepts(data))\n .catch(() => setConcepts([]))\n .finally(() => setConceptsLoading(false));\n }, [filters.project]);\n\n /* Gestione rinomina progetto */\n const startEditing = (project: string, e: React.MouseEvent) => {\n e.stopPropagation();\n setEditingProject(project);\n setEditValue(getDisplayName(project));\n };\n\n const confirmEdit = async () => {\n if (editingProject && editValue.trim()) {\n try {\n await onRenameProject(editingProject, editValue.trim());\n setRenameFeedback({ project: editingProject, success: true });\n } catch {\n setRenameFeedback({ project: editingProject, success: false });\n }\n setTimeout(() => setRenameFeedback(null), 2000);\n }\n setEditingProject(null);\n };\n\n const cancelEdit = () => { setEditingProject(null); setEditValue(''); };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') confirmEdit();\n if (e.key === 'Escape') cancelEdit();\n };\n\n /* Determina il preset attivo in base al date range corrente */\n function getActivePreset(): DatePreset | null {\n const { from, to } = filters.dateRange;\n if (!from && !to) return 'all';\n\n const now = new Date();\n const toStr = formatDateYMD(now);\n\n if (from === toStr && to === toStr) return 'today';\n\n const weekFrom = new Date(now);\n weekFrom.setDate(now.getDate() - 7);\n if (from === formatDateYMD(weekFrom) && to === toStr) return 'week';\n\n const monthFrom = new Date(now);\n monthFrom.setDate(now.getDate() - 30);\n if (from === formatDateYMD(monthFrom) && to === toStr) return 'month';\n\n return null;\n }\n\n function formatDateYMD(d: Date): string {\n const y = d.getFullYear();\n const m = String(d.getMonth() + 1).padStart(2, '0');\n const day = String(d.getDate()).padStart(2, '0');\n return `${y}-${m}-${day}`;\n }\n\n const activePreset = getActivePreset();\n\n return (\n <aside className=\"h-full overflow-y-auto bg-surface-1 border-r border-border flex flex-col\">\n {/* Brand con logo rete/nodi */}\n <div className=\"flex items-center gap-3 px-4 h-14 border-b border-border flex-shrink-0\">\n <svg className=\"w-8 h-8 flex-shrink-0\" viewBox=\"0 0 96 96\">\n <defs>\n <linearGradient id=\"km-grad\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n <stop offset=\"0%\" stopColor=\"#7C5AFF\" />\n <stop offset=\"100%\" stopColor=\"#3B82F6\" />\n </linearGradient>\n </defs>\n <circle cx=\"48\" cy=\"48\" r=\"44\" fill=\"none\" stroke=\"url(#km-grad)\" strokeWidth=\"1.5\" opacity=\"0.4\" />\n <circle cx=\"48\" cy=\"48\" r=\"10\" fill=\"url(#km-grad)\" opacity=\"0.9\" />\n <circle cx=\"48\" cy=\"8\" r=\"5\" fill=\"#7C5AFF\" opacity=\"0.9\" />\n <circle cx=\"82\" cy=\"28\" r=\"4\" fill=\"#6366F1\" opacity=\"0.7\" />\n <circle cx=\"82\" cy=\"68\" r=\"3.5\" fill=\"#3B82F6\" opacity=\"0.5\" />\n <circle cx=\"48\" cy=\"88\" r=\"3\" fill=\"#2563EB\" opacity=\"0.4\" />\n <circle cx=\"14\" cy=\"68\" r=\"2.5\" fill=\"#3B82F6\" opacity=\"0.3\" />\n <circle cx=\"14\" cy=\"28\" r=\"2\" fill=\"#7C5AFF\" opacity=\"0.25\" />\n <line x1=\"48\" y1=\"13\" x2=\"48\" y2=\"38\" stroke=\"#7C5AFF\" strokeWidth=\"1\" opacity=\"0.3\" strokeDasharray=\"3 4\" />\n <line x1=\"78\" y1=\"30\" x2=\"56\" y2=\"44\" stroke=\"#6366F1\" strokeWidth=\"1\" opacity=\"0.25\" strokeDasharray=\"3 4\" />\n <line x1=\"78\" y1=\"66\" x2=\"56\" y2=\"52\" stroke=\"#3B82F6\" strokeWidth=\"1\" opacity=\"0.2\" strokeDasharray=\"3 4\" />\n <line x1=\"48\" y1=\"85\" x2=\"48\" y2=\"58\" stroke=\"#2563EB\" strokeWidth=\"1\" opacity=\"0.15\" strokeDasharray=\"3 4\" />\n <line x1=\"17\" y1=\"66\" x2=\"40\" y2=\"52\" stroke=\"#3B82F6\" strokeWidth=\"1\" opacity=\"0.15\" strokeDasharray=\"3 4\" />\n </svg>\n <div>\n <h1 className=\"text-[15px] font-bold text-zinc-100 leading-none\">Kiro Memory</h1>\n <span className=\"text-[11px] text-zinc-500 mt-0.5 block\">Memory Dashboard</span>\n </div>\n </div>\n\n {/* \u2500\u2500 Sezione: Ricerca combinata \u2500\u2500 */}\n <div className=\"px-4 pt-4 pb-2\">\n <div className=\"relative\">\n <svg\n className=\"absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-zinc-600\"\n viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\"\n strokeLinecap=\"round\" strokeLinejoin=\"round\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" /><path d=\"m21 21-4.3-4.3\" />\n </svg>\n <input\n type=\"text\"\n value={filters.searchText}\n onChange={e => dispatch({ type: 'SET_SEARCH_TEXT', payload: e.target.value })}\n placeholder=\"Search observations...\"\n className=\"w-full bg-surface-2 border border-border rounded-md text-xs text-zinc-300 placeholder-zinc-600 pl-7 pr-7 py-1.5 outline-none focus:border-accent-violet/50 transition-colors\"\n aria-label=\"Cerca tra titolo, narrative e concepts\"\n />\n {filters.searchText && (\n <button\n onClick={() => dispatch({ type: 'SET_SEARCH_TEXT', payload: '' })}\n className=\"absolute right-2 top-1/2 -translate-y-1/2 text-zinc-600 hover:text-zinc-300 transition-colors\"\n aria-label=\"Cancella ricerca\"\n >\n <svg className=\"w-3 h-3\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n )}\n </div>\n </div>\n\n {/* \u2500\u2500 Sezione: Progetti \u2500\u2500 */}\n <div className=\"px-4 pb-4\">\n <h3 className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mb-3 px-2\">Projects</h3>\n\n {/* Tutti i progetti */}\n <button\n onClick={() => dispatch({ type: 'SET_PROJECT', payload: '' })}\n className={`w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-all text-left mb-0.5 ${\n filters.project === ''\n ? 'bg-accent-violet/10 text-accent-violet font-semibold'\n : 'text-zinc-400 hover:text-zinc-200 hover:bg-surface-2'\n }`}\n >\n <div className=\"w-7 h-7 rounded-md bg-accent-violet/15 flex items-center justify-center flex-shrink-0\">\n <svg className=\"w-3.5 h-3.5 text-accent-violet\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" /><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" />\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" /><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" />\n </svg>\n </div>\n <span className=\"flex-1\">All projects</span>\n <span className=\"text-xs text-zinc-600 font-mono tabular-nums\">{projects.length}</span>\n </button>\n\n {/* Ricerca progetti (visibile con 6+ progetti) */}\n {projects.length >= 6 && (\n <div className=\"relative mt-1 mb-2\">\n <svg className=\"absolute left-2.5 top-1/2 -translate-y-1/2 w-3 h-3 text-zinc-600\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" /><path d=\"m21 21-4.3-4.3\" />\n </svg>\n <input\n type=\"text\"\n value={projectSearch}\n onChange={e => setProjectSearch(e.target.value)}\n placeholder=\"Filter projects...\"\n className=\"w-full bg-surface-2 border border-border rounded-md text-xs text-zinc-300 placeholder-zinc-600 pl-7 pr-2 py-1.5 outline-none focus:border-accent-violet/50 transition-colors\"\n />\n </div>\n )}\n\n {/* Lista progetti (scrollabile con altezza massima) */}\n <div className=\"flex flex-col gap-0.5 mt-1 max-h-[32vh] overflow-y-auto\">\n {filteredProjects.map(project => {\n const pc = getProjectColorByName(project);\n const isEditing = editingProject === project;\n const isActive = filters.project === project;\n const initials = getDisplayName(project).substring(0, 2).toUpperCase();\n\n return (\n <div key={project} className=\"group\">\n {isEditing ? (\n <div className=\"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-surface-3 border border-border\">\n <input\n ref={editInputRef}\n type=\"text\"\n value={editValue}\n onChange={e => setEditValue(e.target.value)}\n onKeyDown={handleKeyDown}\n onBlur={confirmEdit}\n className=\"flex-1 min-w-0 bg-transparent border-none outline-none text-sm text-zinc-200\"\n />\n <button onClick={confirmEdit} className=\"text-accent-green hover:text-accent-green/80 p-0.5\">\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\"><polyline points=\"20 6 9 17 4 12\" /></svg>\n </button>\n <button onClick={cancelEdit} className=\"text-zinc-500 hover:text-zinc-300 p-0.5\">\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\"><path d=\"M18 6 6 18M6 6l12 12\" /></svg>\n </button>\n </div>\n ) : (\n <div\n role=\"button\"\n tabIndex={0}\n onClick={() => dispatch({ type: 'SET_PROJECT', payload: project })}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n dispatch({ type: 'SET_PROJECT', payload: project });\n }\n }}\n className={`w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-all text-left cursor-pointer ${\n isActive\n ? 'bg-surface-3 text-zinc-100 font-medium'\n : 'text-zinc-400 hover:text-zinc-200 hover:bg-surface-2'\n }`}\n >\n <div className={`w-7 h-7 rounded-md flex items-center justify-center flex-shrink-0 text-[11px] font-bold ${pc.bg} ${pc.text}`}>\n {initials}\n </div>\n <span className=\"flex-1 truncate\">{getDisplayName(project)}</span>\n {/* Feedback rinomina */}\n {renameFeedback?.project === project && (\n <span className={`text-[10px] font-medium animate-fade-in ${renameFeedback.success ? 'text-accent-green' : 'text-accent-rose'}`}>\n {renameFeedback.success ? 'Saved' : 'Error'}\n </span>\n )}\n <button\n type=\"button\"\n onClick={e => startEditing(project, e)}\n className=\"opacity-0 group-hover:opacity-100 text-zinc-600 hover:text-zinc-300 transition-all p-0.5\"\n title=\"Rename\"\n >\n <svg className=\"w-3 h-3\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z\" />\n </svg>\n </button>\n </div>\n )}\n </div>\n );\n })}\n </div>\n </div>\n\n <div className=\"mx-4 h-px bg-border\" />\n\n {/* \u2500\u2500 Sezione: Filtri tipo \u2500\u2500 */}\n <div className=\"p-4\">\n <h3 className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mb-3 px-2\">Type Filters</h3>\n <div className=\"flex flex-col gap-0.5\">\n {Object.entries(TYPE_CONFIG).map(([type, config]) => {\n const isActive = filters.activeTypes.has(type);\n return (\n <label\n key={type}\n className={`flex items-center gap-3 px-3 py-2 rounded-lg text-sm cursor-pointer transition-all ${\n isActive ? 'text-zinc-300 hover:text-zinc-100' : 'text-zinc-500 hover:text-zinc-400'\n }`}\n >\n <input\n type=\"checkbox\"\n checked={isActive}\n onChange={() => dispatch({ type: 'TOGGLE_TYPE', payload: type })}\n className=\"sr-only\"\n aria-label={`Filter ${config.label}`}\n />\n <div className={`w-4 h-4 rounded border flex items-center justify-center flex-shrink-0 transition-all ${\n isActive\n ? 'bg-accent-violet border-accent-violet'\n : 'bg-transparent border-zinc-600'\n }`} aria-hidden=\"true\">\n {isActive && (\n <svg className=\"w-2.5 h-2.5 text-white\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"3\">\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n )}\n </div>\n <div className={`w-2.5 h-2.5 rounded-full flex-shrink-0 ${config.color} ${isActive ? 'opacity-100' : 'opacity-30'}`} aria-hidden=\"true\" />\n <span className=\"flex-1\">{config.label}</span>\n </label>\n );\n })}\n </div>\n </div>\n\n <div className=\"mx-4 h-px bg-border\" />\n\n {/* \u2500\u2500 Sezione: Filtro data \u2500\u2500 */}\n <div className=\"p-4\">\n <h3 className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mb-3 px-2\">Date Range</h3>\n\n {/* Preset rapidi */}\n <div className=\"flex flex-wrap gap-1.5 mb-3\">\n {DATE_PRESETS.map(preset => (\n <button\n key={preset.id}\n onClick={() => dispatch({ type: 'SET_DATE_PRESET', payload: preset.id })}\n className={`text-[11px] px-2.5 py-1 rounded-md border transition-all ${\n activePreset === preset.id\n ? 'bg-accent-violet/20 border-accent-violet/50 text-accent-violet font-medium'\n : 'bg-surface-2 border-border text-zinc-400 hover:text-zinc-200 hover:border-zinc-500'\n }`}\n >\n {preset.label}\n </button>\n ))}\n </div>\n\n {/* Input data personalizzati */}\n <div className=\"space-y-2\">\n <div>\n <label className=\"text-[10px] uppercase tracking-wider text-zinc-600 mb-1 block px-1\">From</label>\n <input\n type=\"date\"\n value={filters.dateRange.from}\n onChange={e => dispatch({\n type: 'SET_DATE_RANGE',\n payload: { ...filters.dateRange, from: e.target.value }\n })}\n className=\"w-full bg-surface-2 border border-border rounded-md text-xs text-zinc-300 px-2.5 py-1.5 outline-none focus:border-accent-violet/50 transition-colors [color-scheme:dark]\"\n />\n </div>\n <div>\n <label className=\"text-[10px] uppercase tracking-wider text-zinc-600 mb-1 block px-1\">To</label>\n <input\n type=\"date\"\n value={filters.dateRange.to}\n onChange={e => dispatch({\n type: 'SET_DATE_RANGE',\n payload: { ...filters.dateRange, to: e.target.value }\n })}\n className=\"w-full bg-surface-2 border border-border rounded-md text-xs text-zinc-300 px-2.5 py-1.5 outline-none focus:border-accent-violet/50 transition-colors [color-scheme:dark]\"\n />\n </div>\n </div>\n </div>\n\n <div className=\"mx-4 h-px bg-border\" />\n\n {/* \u2500\u2500 Sezione: Concept chips \u2500\u2500 */}\n <div className=\"p-4\">\n <h3 className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mb-3 px-2\">\n Concepts\n {filters.activeConcepts.size > 0 && (\n <span className=\"ml-2 text-accent-violet font-bold\">{filters.activeConcepts.size}</span>\n )}\n </h3>\n\n {conceptsLoading ? (\n <p className=\"text-[11px] text-zinc-600 px-2\">Loading concepts...</p>\n ) : concepts.length === 0 ? (\n <p className=\"text-[11px] text-zinc-600 px-2\">No concepts found</p>\n ) : (\n <div className=\"flex flex-wrap gap-1.5\">\n {concepts.map(entry => {\n const isActive = filters.activeConcepts.has(entry.concept);\n return (\n <button\n key={entry.concept}\n onClick={() => dispatch({ type: 'TOGGLE_CONCEPT', payload: entry.concept })}\n title={`${entry.concept} (${entry.count} occorrenze)`}\n className={`inline-flex items-center gap-1 text-[11px] px-2 py-0.5 rounded-full border transition-all ${\n isActive\n ? 'bg-accent-violet/20 border-accent-violet/50 text-accent-violet font-medium'\n : 'bg-surface-2 border-border text-zinc-400 hover:text-zinc-200 hover:border-zinc-500'\n }`}\n >\n {entry.concept}\n <span className=\"text-[10px] opacity-60 tabular-nums\">{entry.count}</span>\n </button>\n );\n })}\n </div>\n )}\n </div>\n\n <div className=\"mx-4 h-px bg-border\" />\n\n {/* \u2500\u2500 Sezione: Filtri salvati \u2500\u2500 */}\n <div className=\"p-4\">\n <div className=\"flex items-center justify-between mb-3 px-2\">\n <h3 className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500\">My Filters</h3>\n <button\n onClick={onSaveFilter}\n disabled={!hasActiveFilters}\n className=\"text-[11px] px-2 py-0.5 rounded border border-border text-zinc-400 hover:text-zinc-200 hover:border-zinc-500 transition-all disabled:opacity-30 disabled:cursor-not-allowed\"\n title=\"Salva filtro corrente\"\n >\n + Save\n </button>\n </div>\n\n {savedFilters.length === 0 ? (\n <p className=\"text-[11px] text-zinc-600 px-2\">No saved filters yet</p>\n ) : (\n <div className=\"flex flex-col gap-1.5\">\n {savedFilters.map(sf => (\n <div\n key={sf.id}\n className=\"group flex items-start gap-2 px-3 py-2 rounded-lg bg-surface-2 border border-border hover:border-zinc-600 transition-all cursor-pointer\"\n role=\"button\"\n tabIndex={0}\n onClick={() => dispatch({ type: 'LOAD_SAVED', payload: sf })}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n dispatch({ type: 'LOAD_SAVED', payload: sf });\n }\n }}\n >\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-[12px] text-zinc-300 font-medium truncate\">{sf.name}</p>\n <div className=\"flex flex-wrap gap-1 mt-1\">\n {sf.project && (\n <span className=\"text-[10px] bg-surface-3 border border-border px-1.5 py-0.5 rounded text-zinc-500\">{sf.project}</span>\n )}\n {(sf.dateRange.from || sf.dateRange.to) && (\n <span className=\"text-[10px] bg-surface-3 border border-border px-1.5 py-0.5 rounded text-zinc-500\">\n {sf.dateRange.from || '\u2026'} \u2192 {sf.dateRange.to || '\u2026'}\n </span>\n )}\n {sf.activeTypes.length < 6 && (\n <span className=\"text-[10px] bg-surface-3 border border-border px-1.5 py-0.5 rounded text-zinc-500\">\n {sf.activeTypes.length} type{sf.activeTypes.length !== 1 ? 's' : ''}\n </span>\n )}\n </div>\n <p className=\"text-[10px] text-zinc-600 mt-1\">{formatSavedAt(sf.savedAt)}</p>\n </div>\n {/* Pulsante elimina \u2014 visibile all'hover */}\n <button\n type=\"button\"\n onClick={e => { e.stopPropagation(); onDeleteSavedFilter(sf.id); }}\n className=\"opacity-0 group-hover:opacity-100 text-zinc-600 hover:text-accent-rose transition-all p-0.5 flex-shrink-0 mt-0.5\"\n title=\"Elimina filtro salvato\"\n >\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"3 6 5 6 21 6\" />\n <path d=\"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6\" />\n <path d=\"M10 11v6M14 11v6\" />\n <path d=\"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2\" />\n </svg>\n </button>\n </div>\n ))}\n </div>\n )}\n </div>\n\n <div className=\"mx-4 h-px bg-border\" />\n\n {/* \u2500\u2500 Sezione: Statistiche \u2500\u2500 */}\n <div className=\"p-4\">\n <h3 className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mb-3 px-2\">Statistics</h3>\n <div className=\"grid grid-cols-2 gap-2\">\n {[\n { label: 'Observations', value: stats.observations, color: 'text-accent-violet' },\n { label: 'Summaries', value: stats.summaries, color: 'text-accent-cyan' },\n { label: 'Prompts', value: stats.prompts, color: 'text-accent-amber' },\n { label: 'Projects', value: projects.length, color: 'text-accent-green' },\n ].map(item => (\n <div key={item.label} className=\"rounded-lg bg-surface-2 border border-border px-3 py-3 text-center\">\n <div className={`text-xl font-bold tabular-nums ${item.color}`}>{item.value}</div>\n <div className=\"text-[10px] uppercase tracking-wider text-zinc-600 mt-1\">{item.label}</div>\n </div>\n ))}\n </div>\n </div>\n\n {/* \u2500\u2500 Sezione: Token Economics \u2500\u2500 */}\n {(stats.tokenEconomics.discoveryTokens > 0 || stats.tokenEconomics.readTokens > 0) && (\n <>\n <div className=\"mx-4 h-px bg-border\" />\n <div className=\"p-4\">\n <h3 className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mb-3 px-2\">Token Economics</h3>\n <div className=\"space-y-2\">\n <div className=\"rounded-lg bg-surface-2 border border-border px-3 py-2.5\">\n <div className=\"flex items-center justify-between mb-1.5\">\n <span className=\"text-[10px] uppercase tracking-wider text-zinc-600\">Discovery</span>\n <span className=\"text-xs font-bold text-amber-400 tabular-nums\">{formatTokenCount(stats.tokenEconomics.discoveryTokens)}</span>\n </div>\n <div className=\"flex items-center justify-between mb-1.5\">\n <span className=\"text-[10px] uppercase tracking-wider text-zinc-600\">Read cost</span>\n <span className=\"text-xs font-bold text-cyan-400 tabular-nums\">{formatTokenCount(stats.tokenEconomics.readTokens)}</span>\n </div>\n <div className=\"h-px bg-border my-1.5\" />\n <div className=\"flex items-center justify-between\">\n <span className=\"text-[10px] uppercase tracking-wider text-zinc-600\">Savings</span>\n <span className=\"text-xs font-bold text-emerald-400 tabular-nums\">{formatTokenCount(stats.tokenEconomics.savings)}</span>\n </div>\n </div>\n {stats.tokenEconomics.discoveryTokens > 0 && (\n <div className=\"rounded-md overflow-hidden h-2 bg-surface-3\">\n <div\n className=\"h-full bg-gradient-to-r from-emerald-500 to-emerald-400 transition-all\"\n style={{ width: `${Math.min(100, Math.round((stats.tokenEconomics.readTokens / stats.tokenEconomics.discoveryTokens) * 100))}%` }}\n />\n </div>\n )}\n {stats.tokenEconomics.discoveryTokens > 0 && (\n <p className=\"text-[10px] text-zinc-600 text-center\">\n {Math.round((1 - stats.tokenEconomics.readTokens / stats.tokenEconomics.discoveryTokens) * 100)}% token reduction\n </p>\n )}\n </div>\n </div>\n </>\n )}\n\n {/* \u2500\u2500 Footer \u2500\u2500 */}\n <div className=\"mt-auto px-4 py-4 space-y-2\">\n {/* Pulsante \"Clear All\" \u2014 visibile solo se ci sono filtri attivi */}\n {hasActiveFilters && (\n <button\n onClick={() => dispatch({ type: 'CLEAR_ALL' })}\n className=\"w-full flex items-center justify-center gap-1.5 text-xs text-zinc-500 hover:text-accent-rose transition-colors px-3 py-1.5 rounded-lg hover:bg-accent-rose/10 border border-transparent hover:border-accent-rose/30\"\n >\n <svg className=\"w-3 h-3\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M3 6h18M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6\" />\n <path d=\"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2\" />\n </svg>\n Clear All Filters\n </button>\n )}\n\n <div className=\"flex items-center justify-center gap-3\">\n <a href=\"https://github.com/Auriti-Labs/kiro-memory\" target=\"_blank\" rel=\"noopener noreferrer\" className=\"text-zinc-600 hover:text-zinc-400 transition-colors\" title=\"GitHub\">\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0 1 12 6.844a9.59 9.59 0 0 1 2.504.337c1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.02 10.02 0 0 0 22 12.017C22 6.484 17.522 2 12 2z\"/></svg>\n </a>\n <a href=\"https://auritidesign.it/docs/kiro-memory/\" target=\"_blank\" rel=\"noopener noreferrer\" className=\"text-zinc-600 hover:text-zinc-400 transition-colors\" title=\"Documentation\">\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\" /><path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\" /></svg>\n </a>\n </div>\n <div className=\"text-[10px] text-zinc-700 font-mono text-center\">Kiro Memory v1.9.0</div>\n </div>\n </aside>\n );\n}\n", "import React, { useMemo } from 'react';\nimport { Observation, Summary, UserPrompt } from '../types';\nimport { timeAgo } from '../utils/format';\n\n/** Callback opzionale per aprire il DiffViewer pre-caricato con questa osservazione */\ntype OnCompareObs = (obs: Observation) => void;\n\n/* \u2500\u2500 Color configuration by observation type \u2500\u2500 */\nconst TYPE_STYLES: Record<string, { border: string; bg: string; text: string; dot: string; label: string }> = {\n 'file-write': { border: 'border-l-emerald-500', bg: 'bg-emerald-500/10', text: 'text-emerald-400', dot: 'bg-emerald-500', label: 'change' },\n 'file-read': { border: 'border-l-cyan-500', bg: 'bg-cyan-500/10', text: 'text-cyan-400', dot: 'bg-cyan-500', label: 'read' },\n 'command': { border: 'border-l-amber-500', bg: 'bg-amber-500/10', text: 'text-amber-400', dot: 'bg-amber-500', label: 'command' },\n 'research': { border: 'border-l-blue-500', bg: 'bg-blue-500/10', text: 'text-blue-400', dot: 'bg-blue-500', label: 'research' },\n 'delegation': { border: 'border-l-violet-500', bg: 'bg-violet-500/10', text: 'text-violet-400', dot: 'bg-violet-500', label: 'delegation' },\n 'tool-use': { border: 'border-l-zinc-500', bg: 'bg-zinc-500/10', text: 'text-zinc-400', dot: 'bg-zinc-500', label: 'tool' },\n};\n\nfunction getTypeStyle(type: string) {\n return TYPE_STYLES[type] || TYPE_STYLES['tool-use'];\n}\n\n/* \u2500\u2500 Colors for concept badges \u2500\u2500 */\nconst CONCEPT_COLORS: Record<string, string> = {\n 'testing': 'bg-emerald-500/15 text-emerald-400 ring-emerald-500/25',\n 'ui-component': 'bg-violet-500/15 text-violet-400 ring-violet-500/25',\n 'hooks': 'bg-violet-500/15 text-violet-400 ring-violet-500/25',\n 'database': 'bg-amber-500/15 text-amber-400 ring-amber-500/25',\n 'api': 'bg-blue-500/15 text-blue-400 ring-blue-500/25',\n 'configuration': 'bg-zinc-500/15 text-zinc-400 ring-zinc-500/25',\n 'styling': 'bg-pink-500/15 text-pink-400 ring-pink-500/25',\n 'types': 'bg-cyan-500/15 text-cyan-400 ring-cyan-500/25',\n 'sdk': 'bg-indigo-500/15 text-indigo-400 ring-indigo-500/25',\n 'build': 'bg-orange-500/15 text-orange-400 ring-orange-500/25',\n 'devops': 'bg-rose-500/15 text-rose-400 ring-rose-500/25',\n 'documentation': 'bg-teal-500/15 text-teal-400 ring-teal-500/25',\n 'search': 'bg-sky-500/15 text-sky-400 ring-sky-500/25',\n 'backend': 'bg-lime-500/15 text-lime-400 ring-lime-500/25',\n 'git': 'bg-orange-500/15 text-orange-400 ring-orange-500/25',\n 'dependencies': 'bg-yellow-500/15 text-yellow-400 ring-yellow-500/25',\n 'debugging': 'bg-red-500/15 text-red-400 ring-red-500/25',\n 'code-quality': 'bg-emerald-500/15 text-emerald-400 ring-emerald-500/25',\n 'networking': 'bg-blue-500/15 text-blue-400 ring-blue-500/25',\n 'module-system': 'bg-indigo-500/15 text-indigo-400 ring-indigo-500/25',\n 'tech-debt': 'bg-red-500/15 text-red-400 ring-red-500/25',\n 'security': 'bg-red-500/15 text-red-400 ring-red-500/25',\n 'performance': 'bg-amber-500/15 text-amber-400 ring-amber-500/25',\n 'error-handling': 'bg-rose-500/15 text-rose-400 ring-rose-500/25',\n};\n\n/* \u2500\u2500 Utilities \u2500\u2500 */\n\nfunction basename(filePath: string): string {\n return filePath.split('/').pop() || filePath;\n}\n\nfunction stripProjectRoot(path: string): string {\n return path.replace(/^\\/home\\/[^/]+\\/[^/]+\\//, '');\n}\n\n/** Generate the main narrative text for the card */\nfunction generateNarrative(obs: Observation): string {\n if (obs.narrative) return obs.narrative;\n\n const title = obs.title || '';\n\n switch (obs.type) {\n case 'file-write': {\n if (title.startsWith('Written: ') || title.startsWith('Modified ') || title.startsWith('Created ')) {\n const path = title.replace(/^(Written|Modified|Created):?\\s*/, '');\n const fileName = basename(path);\n const isEdit = obs.text ? obs.text.includes('\"old_string\"') : true;\n return `${isEdit ? 'Modified' : 'Created'} **${fileName}**`;\n }\n return title || 'File changed';\n }\n case 'file-read': {\n if (title.startsWith('Searched for ') || title.startsWith('Searched codebase')) return title;\n if (title.startsWith('Read: ')) return `Read **${basename(title.replace('Read: ', ''))}**`;\n return title ? `Read **${basename(title)}**` : 'File read';\n }\n case 'command': {\n if (title.startsWith('Executed: ')) {\n const cmd = title.replace('Executed: ', '').split('|')[0].split('2>&1')[0].split('&&')[0].trim();\n const shortCmd = cmd.length > 70 ? cmd.substring(0, 67) + '...' : cmd;\n return `Ran \\`${shortCmd}\\``;\n }\n return title || 'Command executed';\n }\n case 'research': {\n if (title.startsWith('Searched: ')) return `Web search: \"${title.replace('Searched: ', '')}\"`;\n if (title.startsWith('Fetched ')) return `Fetched content from ${title.replace('Fetched ', '')}`;\n return title || 'Research performed';\n }\n case 'delegation': {\n const shortTitle = title.length > 100 ? title.substring(0, 97) + '...' : title;\n return `Delegated: ${shortTitle || 'sub-task'}`;\n }\n default:\n return title || `Tool executed (${obs.type})`;\n }\n}\n\n/** Generate a compact detail line (involved files) */\nfunction getDetailLine(obs: Observation): string | null {\n const parts: string[] = [];\n\n if (obs.files_modified) {\n const files = obs.files_modified.split(', ').map(stripProjectRoot);\n parts.push(`${files.length} file${files.length > 1 ? 's' : ''} modified`);\n }\n if (obs.files_read) {\n const files = obs.files_read.split(', ').map(stripProjectRoot);\n if (files.length > 1) parts.push(`${files.length} files read`);\n }\n\n return parts.length > 0 ? parts.join(' \u00B7 ') : null;\n}\n\n/* \u2500\u2500 Render text with **bold** and `code` support \u2500\u2500 */\nfunction renderMarkdown(text: string) {\n return text.split('**').map((segment, i) => {\n if (i % 2 === 1) return <strong key={i} className=\"text-zinc-100 font-semibold\">{segment}</strong>;\n return segment.split('`').map((part, j) =>\n j % 2 === 1\n ? <code key={`${i}-${j}`} className=\"text-amber-400/80 bg-amber-500/10 px-1 py-0.5 rounded text-[12px]\">{part}</code>\n : <span key={`${i}-${j}`}>{part}</span>\n );\n });\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n Feed \u2014 main list\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\n\ninterface FeedProps {\n observations: Observation[];\n summaries: Summary[];\n prompts: UserPrompt[];\n onLoadMore: () => void;\n isLoading: boolean;\n hasMore: boolean;\n getDisplayName: (project: string) => string;\n /** Callback opzionale per aprire il DiffViewer con l'osservazione selezionata */\n onCompareObs?: OnCompareObs;\n}\n\nexport function Feed({ observations, summaries, prompts, onLoadMore, isLoading, hasMore, getDisplayName, onCompareObs }: FeedProps) {\n /* Memoized sort to avoid recalculation on every render */\n const items = useMemo(() =>\n [...observations, ...summaries, ...prompts].sort(\n (a, b) => b.created_at_epoch - a.created_at_epoch\n ),\n [observations, summaries, prompts]\n );\n\n return (\n <div className=\"space-y-3\" aria-live=\"polite\" aria-label=\"Memory feed\">\n {items.map((item, index) => {\n const stagger = index < 8 ? `stagger-${index + 1}` : '';\n\n if ('type' in item && 'title' in item) {\n return (\n <div key={`obs-${item.id}`} data-id={`obs-${item.id}`} className={`animate-slide-up ${stagger}`}>\n <ObservationCard obs={item as Observation} getDisplayName={getDisplayName} onCompare={onCompareObs} />\n </div>\n );\n } else if ('request' in item) {\n return (\n <div key={`sum-${item.id}`} data-id={`sum-${item.id}`} className={`animate-slide-up ${stagger}`}>\n <SummaryCard summary={item as Summary} getDisplayName={getDisplayName} />\n </div>\n );\n } else {\n return (\n <div key={`prompt-${item.id}`} data-id={`prompt-${item.id}`} className={`animate-slide-up ${stagger}`}>\n <PromptCard prompt={item as UserPrompt} getDisplayName={getDisplayName} />\n </div>\n );\n }\n })}\n\n {/* Load more */}\n {hasMore && items.length > 0 && (\n <div className=\"pt-2\">\n <button\n onClick={onLoadMore}\n disabled={isLoading}\n className=\"flex items-center justify-center gap-2 w-full py-3 rounded-lg transition-all text-sm font-medium bg-surface-2 border border-border text-zinc-400 hover:bg-surface-3 hover:text-zinc-200 hover:border-border-hover disabled:opacity-40 disabled:cursor-not-allowed\"\n >\n {isLoading ? (\n <>\n <div className=\"w-4 h-4 border-2 border-accent-violet/30 border-t-accent-violet rounded-full animate-spin\" />\n Loading...\n </>\n ) : (\n <>\n <svg className=\"w-4 h-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"m6 9 6 6 6-6\" /></svg>\n Load more\n </>\n )}\n </button>\n </div>\n )}\n\n {/* Empty state */}\n {items.length === 0 && !isLoading && (\n <div className=\"flex flex-col items-center justify-center py-20 text-center\">\n <div className=\"w-16 h-16 rounded-2xl bg-surface-2 border border-border flex items-center justify-center mb-5\">\n <svg className=\"w-7 h-7 text-zinc-600\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\">\n <path d=\"M12 2a4 4 0 0 1 4 4c0 1.95-1.4 3.58-3.25 3.93a1 1 0 0 0-.75.97V13\" />\n <path d=\"M12 2a4 4 0 0 0-4 4c0 1.95 1.4 3.58 3.25 3.93a1 1 0 0 1 .75.97V13\" />\n <path d=\"M9 18h6\" /><path d=\"M10 22h4\" /><path d=\"M12 13v5\" />\n </svg>\n </div>\n <p className=\"text-base font-semibold text-zinc-300 mb-2\">No memories yet</p>\n <p className=\"text-sm text-zinc-500 max-w-xs leading-relaxed\">\n Start a coding session to begin capturing context automatically.\n </p>\n </div>\n )}\n\n {/* Loading state */}\n {items.length === 0 && isLoading && (\n <div className=\"flex flex-col items-center justify-center py-20\">\n <div className=\"w-6 h-6 border-2 border-accent-violet/30 border-t-accent-violet rounded-full animate-spin mb-4\" />\n <p className=\"text-sm text-zinc-500\">Loading memories...</p>\n </div>\n )}\n </div>\n );\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n Observation Card \u2014 design pulito con bottone Confronta\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\nfunction ObservationCard({ obs, getDisplayName, onCompare }: { obs: Observation; getDisplayName: (p: string) => string; onCompare?: OnCompareObs }) {\n const style = getTypeStyle(obs.type);\n const narrative = generateNarrative(obs);\n const detail = getDetailLine(obs);\n\n return (\n <div className={`bg-surface-1 border border-border rounded-lg border-l-[3px] ${style.border} shadow-card hover:shadow-card-hover hover:border-border-hover transition-all overflow-hidden group`}>\n <div className=\"px-4 py-3.5 min-w-0\">\n {/* Row 1: type badge + project + time + bottone confronta */}\n <div className=\"flex items-center gap-2 mb-2 flex-wrap\">\n <span className={`inline-flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide px-2 py-0.5 rounded-md ${style.bg} ${style.text}`}>\n <span className={`w-1.5 h-1.5 rounded-full ${style.dot}`} />\n {style.label}\n </span>\n <span className=\"inline-flex items-center text-[11px] font-medium px-2 py-0.5 rounded-md bg-accent-violet/10 text-accent-violet\">\n {getDisplayName(obs.project)}\n </span>\n {obs.is_stale === 1 && (\n <span className=\"inline-flex items-center gap-1 text-[10px] font-medium px-1.5 py-0.5 rounded-md bg-amber-500/10 text-amber-400 ring-1 ring-amber-500/25\" title=\"File modified after observation\">\n stale\n </span>\n )}\n <span className=\"text-[11px] text-zinc-500 font-mono ml-auto tabular-nums\">{timeAgo(obs.created_at_epoch)}</span>\n {/* Bottone \"Confronta\" \u2014 visibile al hover della card */}\n {onCompare && (\n <button\n onClick={() => onCompare(obs)}\n className=\"hidden group-hover:inline-flex items-center gap-1 text-[10px] font-medium px-2 py-0.5 rounded-md bg-surface-3 border border-border text-zinc-400 hover:text-zinc-200 hover:border-border-hover transition-all\"\n title=\"Apri nel Diff Viewer\"\n aria-label=\"Confronta questa osservazione\"\n >\n <svg className=\"w-3 h-3\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M16 18 22 12 16 6\" /><path d=\"M8 6 2 12 8 18\" />\n </svg>\n Confronta\n </button>\n )}\n </div>\n\n {/* Row 2: narrativa principale */}\n <h4 className=\"text-sm text-zinc-200 leading-snug break-words\">{renderMarkdown(narrative)}</h4>\n\n {/* Row 3: sottotitolo (percorso relativo, comando, URL) */}\n {obs.subtitle && obs.subtitle !== obs.title && (\n <p className=\"text-[12px] text-zinc-500 mt-1 font-mono truncate\">{stripProjectRoot(obs.subtitle)}</p>\n )}\n\n {/* Row 4: dettaglio file coinvolti */}\n {detail && (\n <p className=\"text-[11px] text-zinc-600 mt-1.5\">{detail}</p>\n )}\n\n {/* Row 5: badge concetti + ID */}\n <div className=\"flex items-center gap-2 mt-2.5\">\n {obs.concepts && (\n <div className=\"flex flex-wrap gap-1\">\n {obs.concepts.split(', ').map((concept, i) => {\n const colorClass = CONCEPT_COLORS[concept.trim()] || 'bg-zinc-500/15 text-zinc-400 ring-zinc-500/25';\n return (\n <span key={i} className={`text-[10px] font-medium px-1.5 py-0.5 rounded ring-1 ${colorClass}`}>\n {concept.trim()}\n </span>\n );\n })}\n </div>\n )}\n {/* ID posizionato a destra */}\n <span className=\"text-[10px] text-zinc-700 font-mono ml-auto tabular-nums\">#{obs.id}</span>\n </div>\n </div>\n </div>\n );\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n Summary Card\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\nfunction SummaryCard({ summary, getDisplayName }: { summary: Summary; getDisplayName: (p: string) => string }) {\n const sections = [\n { label: 'Investigated', value: summary.investigated, color: 'text-blue-400' },\n { label: 'Learned', value: summary.learned, color: 'text-emerald-400' },\n { label: 'Completed', value: summary.completed, color: 'text-violet-400' },\n { label: 'Next Steps', value: summary.next_steps, color: 'text-amber-400' },\n { label: 'Notes', value: summary.notes, color: 'text-zinc-400' },\n ].filter(s => s.value);\n\n return (\n <div className=\"bg-surface-1 border border-border rounded-lg border-l-[3px] border-l-cyan-500 shadow-card hover:shadow-card-hover hover:border-border-hover transition-all overflow-hidden\">\n <div className=\"px-4 pt-4 pb-2 min-w-0\">\n <div className=\"flex items-center gap-2 mb-2 flex-wrap\">\n <span className=\"inline-flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide px-2 py-0.5 rounded-md bg-cyan-500/10 text-cyan-400\">\n <svg className=\"w-3 h-3\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\" />\n <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\" />\n </svg>\n Session Summary\n </span>\n <span className=\"inline-flex items-center text-[11px] font-medium px-2 py-0.5 rounded-md bg-accent-violet/10 text-accent-violet\">\n {getDisplayName(summary.project)}\n </span>\n <span className=\"text-[11px] text-zinc-500 font-mono ml-auto\">{timeAgo(summary.created_at_epoch)}</span>\n </div>\n {summary.request && (\n <h3 className=\"text-[15px] font-semibold text-zinc-100 leading-snug break-words\">{summary.request}</h3>\n )}\n </div>\n\n <div className=\"px-4 pb-4 space-y-2\">\n {sections.map(({ label, value, color }) => (\n <div key={label} className=\"p-3 rounded-md bg-surface-2 border border-border\">\n <span className={`block text-[10px] font-semibold uppercase tracking-wider mb-1 ${color}`}>{label}</span>\n <p className=\"text-xs text-zinc-400 leading-relaxed\">{value}</p>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\n/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n Prompt Card\n \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */\nfunction PromptCard({ prompt, getDisplayName }: { prompt: UserPrompt; getDisplayName: (p: string) => string }) {\n return (\n <div className=\"bg-surface-1 border border-border rounded-lg border-l-[3px] border-l-rose-500 shadow-card hover:shadow-card-hover hover:border-border-hover transition-all overflow-hidden\">\n <div className=\"px-4 pt-4 pb-2 min-w-0\">\n <div className=\"flex items-center gap-2 mb-2 flex-wrap\">\n <span className=\"inline-flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide px-2 py-0.5 rounded-md bg-rose-500/10 text-rose-400\">\n <svg className=\"w-3 h-3\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\" />\n </svg>\n Prompt #{prompt.prompt_number}\n </span>\n <span className=\"inline-flex items-center text-[11px] font-medium px-2 py-0.5 rounded-md bg-accent-violet/10 text-accent-violet\">\n {getDisplayName(prompt.project)}\n </span>\n <span className=\"text-[11px] text-zinc-500 font-mono ml-auto\">{timeAgo(prompt.created_at_epoch)}</span>\n </div>\n </div>\n\n <div className=\"px-4 pb-4\">\n <div className=\"p-3 rounded-md bg-surface-0 border border-border text-sm text-zinc-300 leading-relaxed whitespace-pre-wrap break-words\">\n {prompt.prompt_text}\n </div>\n </div>\n </div>\n );\n}\n", "import React, { useState } from 'react';\nimport { useAnalytics } from '../hooks/useAnalytics';\nimport { formatTokenCount, formatDuration } from '../utils/format';\nimport type { TimelineEntry, TypeDistributionEntry, TokenEconomics } from '../types';\nimport { ActivityHeatmap } from './ActivityHeatmap';\n\n/* Colori per tipo osservazione (stessi del Feed) */\nconst TYPE_COLORS: Record<string, { bar: string; text: string }> = {\n 'file-write': { bar: 'bg-emerald-500', text: 'text-emerald-400' },\n 'file-read': { bar: 'bg-cyan-500', text: 'text-cyan-400' },\n 'command': { bar: 'bg-amber-500', text: 'text-amber-400' },\n 'research': { bar: 'bg-blue-500', text: 'text-blue-400' },\n 'delegation': { bar: 'bg-violet-500', text: 'text-violet-400' },\n 'tool-use': { bar: 'bg-zinc-500', text: 'text-zinc-400' },\n 'constraint': { bar: 'bg-red-500', text: 'text-red-400' },\n 'decision': { bar: 'bg-orange-500', text: 'text-orange-400' },\n 'heuristic': { bar: 'bg-indigo-500', text: 'text-indigo-400' },\n 'rejected': { bar: 'bg-slate-500', text: 'text-slate-400' },\n};\n\nfunction getTypeColor(type: string) {\n return TYPE_COLORS[type] || { bar: 'bg-zinc-500', text: 'text-zinc-400' };\n}\n\ninterface AnalyticsProps {\n currentFilter: string;\n getDisplayName: (project: string) => string;\n /** Callback opzionale per filtrare il feed per giorno dalla heatmap */\n onDayClick?: (date: string) => void;\n}\n\nexport function Analytics({ currentFilter, getDisplayName, onDayClick }: AnalyticsProps) {\n const { overview, timeline, typeDistribution, sessionStats, isLoading } = useAnalytics(currentFilter);\n\n if (isLoading) {\n return (\n <div className=\"flex flex-col items-center justify-center py-20\">\n <div className=\"w-6 h-6 border-2 border-accent-violet/30 border-t-accent-violet rounded-full animate-spin mb-4\" />\n <p className=\"text-sm text-zinc-500\">Loading analytics...</p>\n </div>\n );\n }\n\n if (!overview) {\n return (\n <div className=\"flex flex-col items-center justify-center py-20 text-center\">\n <div className=\"w-16 h-16 rounded-2xl bg-surface-2 border border-border flex items-center justify-center mb-5\">\n <svg className=\"w-7 h-7 text-zinc-600\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\">\n <line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"10\" /><line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"4\" /><line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"14\" />\n </svg>\n </div>\n <p className=\"text-base font-semibold text-zinc-300 mb-2\">No data available</p>\n <p className=\"text-sm text-zinc-500 max-w-xs leading-relaxed\">\n Start a coding session to begin collecting analytics data.\n </p>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-6\">\n {/* Sezione 0: Activity Heatmap (issue #23) \u2014 posizionata in cima alla view */}\n <ActivityHeatmap\n currentFilter={currentFilter}\n onDayClick={onDayClick}\n />\n\n {/* Sezione A: Stat Cards */}\n <div className=\"grid grid-cols-2 lg:grid-cols-4 gap-3\">\n <StatCard\n label=\"Observations\"\n value={overview.observations}\n sub={`${overview.observationsToday} today`}\n color=\"text-accent-violet\"\n />\n <StatCard\n label=\"This Week\"\n value={overview.observationsThisWeek}\n sub=\"observations\"\n color=\"text-accent-blue\"\n />\n <StatCard\n label=\"Sessions\"\n value={sessionStats?.total || overview.sessions}\n sub={sessionStats ? `${sessionStats.avgDurationMinutes}m avg` : ''}\n color=\"text-accent-cyan\"\n />\n <StatCard\n label=\"Knowledge\"\n value={overview.knowledgeCount}\n sub={`${overview.staleCount} stale`}\n color=\"text-accent-amber\"\n />\n </div>\n\n {/* Conteggi secondari */}\n <div className=\"grid grid-cols-3 gap-3\">\n <MiniStat label=\"Summaries\" value={overview.summaries} color=\"text-accent-cyan\" />\n <MiniStat label=\"Prompts\" value={overview.prompts} color=\"text-accent-rose\" />\n <MiniStat\n label=\"Completion\"\n value={sessionStats ? `${sessionStats.total > 0 ? Math.round((sessionStats.completed / sessionStats.total) * 100) : 0}%` : '\u2014'}\n color=\"text-accent-green\"\n />\n </div>\n\n {/* Sezione B: Token Economics */}\n {overview.tokenEconomics && overview.tokenEconomics.discoveryTokens > 0 && (\n <TokenEconomicsPanel economics={overview.tokenEconomics} />\n )}\n\n {/* Sezione C: Timeline Chart */}\n {timeline.length > 0 && (\n <div className=\"bg-surface-1 border border-border rounded-lg p-5\">\n <h3 className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mb-4\">Activity Timeline (30 days)</h3>\n <TimelineChart entries={timeline} />\n </div>\n )}\n\n {/* Sezione D: Type Distribution */}\n {typeDistribution.length > 0 && (\n <div className=\"bg-surface-1 border border-border rounded-lg p-5\">\n <h3 className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mb-4\">Observation Types</h3>\n <TypeDistributionChart entries={typeDistribution} />\n </div>\n )}\n\n {/* Sezione E: Session Stats */}\n {sessionStats && sessionStats.total > 0 && (\n <div className=\"bg-surface-1 border border-border rounded-lg p-5\">\n <h3 className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mb-4\">Sessions</h3>\n <SessionStatsPanel stats={sessionStats} />\n </div>\n )}\n </div>\n );\n}\n\n/* \u2500\u2500 Stat Card \u2500\u2500 */\nfunction StatCard({ label, value, sub, color }: { label: string; value: number; sub: string; color: string }) {\n return (\n <div className=\"rounded-lg bg-surface-1 border border-border px-4 py-4\">\n <div className={`text-2xl font-bold tabular-nums ${color}`}>{value.toLocaleString()}</div>\n <div className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mt-1\">{label}</div>\n {sub && <div className=\"text-[10px] text-zinc-600 mt-0.5\">{sub}</div>}\n </div>\n );\n}\n\n/* \u2500\u2500 Mini Stat \u2500\u2500 */\nfunction MiniStat({ label, value, color }: { label: string; value: number | string; color: string }) {\n return (\n <div className=\"rounded-lg bg-surface-1 border border-border px-3 py-3 text-center\">\n <div className={`text-lg font-bold tabular-nums ${color}`}>{typeof value === 'number' ? value.toLocaleString() : value}</div>\n <div className=\"text-[10px] uppercase tracking-wider text-zinc-600 mt-0.5\">{label}</div>\n </div>\n );\n}\n\n/* \u2500\u2500 Timeline Chart (CSS flexbox, niente SVG distorto) \u2500\u2500 */\nfunction TimelineChart({ entries }: { entries: TimelineEntry[] }) {\n const [hoveredIndex, setHoveredIndex] = useState<number | null>(null);\n const maxCount = Math.max(...entries.map(e => e.count), 1);\n const chartHeight = 120;\n\n // Label asse X: mostra ~6 date distribuite uniformemente\n const labelInterval = Math.max(1, Math.floor(entries.length / 6));\n\n return (\n <div className=\"space-y-2\">\n {/* Tooltip */}\n <div className=\"h-5 text-center\">\n {hoveredIndex !== null && entries[hoveredIndex] && (\n <span className=\"text-[11px] font-mono text-zinc-300 bg-surface-3 px-2.5 py-1 rounded\">\n {entries[hoveredIndex].day.slice(5)} \u2014 <span className=\"text-accent-violet font-semibold\">{entries[hoveredIndex].count}</span> observations\n </span>\n )}\n </div>\n\n {/* Barre */}\n <div className=\"flex items-end gap-[2px]\" style={{ height: chartHeight }}>\n {entries.map((entry, i) => {\n const heightPct = Math.max(1.5, (entry.count / maxCount) * 100);\n const isHovered = hoveredIndex === i;\n\n return (\n <div\n key={entry.day}\n className=\"flex-1 min-w-0 cursor-pointer transition-all duration-150\"\n style={{ height: `${heightPct}%` }}\n onMouseEnter={() => setHoveredIndex(i)}\n onMouseLeave={() => setHoveredIndex(null)}\n >\n <div\n className={`w-full h-full rounded-t transition-colors ${\n isHovered ? 'bg-accent-violet' : 'bg-accent-violet/50'\n }`}\n />\n </div>\n );\n })}\n </div>\n\n {/* Label asse X */}\n <div className=\"flex\">\n {entries.map((entry, i) => {\n const showLabel = i % labelInterval === 0 || i === entries.length - 1;\n return (\n <div key={`label-${i}`} className=\"flex-1 min-w-0 text-center\">\n {showLabel && (\n <span className=\"text-[10px] font-mono text-zinc-600\">{entry.day.slice(5)}</span>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\n/* \u2500\u2500 Type Distribution (horizontal bars) \u2500\u2500 */\nfunction TypeDistributionChart({ entries }: { entries: TypeDistributionEntry[] }) {\n const total = entries.reduce((sum, e) => sum + e.count, 0);\n const maxCount = Math.max(...entries.map(e => e.count), 1);\n\n return (\n <div className=\"space-y-2\">\n {entries.map(entry => {\n const pct = total > 0 ? Math.round((entry.count / total) * 100) : 0;\n const widthPct = Math.max(2, (entry.count / maxCount) * 100);\n const colors = getTypeColor(entry.type);\n\n return (\n <div key={entry.type} className=\"flex items-center gap-3\">\n <div className=\"w-24 text-right\">\n <span className={`text-xs font-medium ${colors.text}`}>{entry.type}</span>\n </div>\n <div className=\"flex-1 h-5 bg-surface-2 rounded-md overflow-hidden\">\n <div\n className={`h-full rounded-md ${colors.bar} transition-all duration-500`}\n style={{ width: `${widthPct}%` }}\n />\n </div>\n <div className=\"w-16 text-right\">\n <span className=\"text-xs text-zinc-400 font-mono tabular-nums\">{entry.count}</span>\n <span className=\"text-[10px] text-zinc-600 ml-1\">{pct}%</span>\n </div>\n </div>\n );\n })}\n </div>\n );\n}\n\n/* \u2500\u2500 Session Stats Panel \u2500\u2500 */\nfunction SessionStatsPanel({ stats }: { stats: { total: number; completed: number; avgDurationMinutes: number } }) {\n const completionRate = stats.total > 0 ? Math.round((stats.completed / stats.total) * 100) : 0;\n\n return (\n <div className=\"space-y-4\">\n {/* Barra progresso completamento */}\n <div>\n <div className=\"flex items-center justify-between mb-2\">\n <span className=\"text-xs text-zinc-400\">Completion rate</span>\n <span className=\"text-xs font-bold text-accent-green tabular-nums\">{completionRate}%</span>\n </div>\n <div className=\"h-2.5 bg-surface-2 rounded-full overflow-hidden\">\n <div\n className=\"h-full bg-accent-green rounded-full transition-all duration-500\"\n style={{ width: `${completionRate}%` }}\n />\n </div>\n <div className=\"flex items-center justify-between mt-1\">\n <span className=\"text-[10px] text-zinc-600\">{stats.completed} completed</span>\n <span className=\"text-[10px] text-zinc-600\">{stats.total} total</span>\n </div>\n </div>\n\n {/* Durata media */}\n <div className=\"flex items-center gap-3 p-3 rounded-lg bg-surface-2 border border-border\">\n <svg className=\"w-4 h-4 text-accent-cyan flex-shrink-0\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" /><polyline points=\"12 6 12 12 16 14\" />\n </svg>\n <div>\n <span className=\"text-sm font-semibold text-zinc-200\">{formatDuration(stats.avgDurationMinutes as number)}</span>\n <span className=\"text-xs text-zinc-500 ml-2\">avg session duration</span>\n </div>\n </div>\n </div>\n );\n}\n\n/* \u2500\u2500 Token Economics Panel \u2500\u2500 */\nfunction TokenEconomicsPanel({ economics }: { economics: TokenEconomics }) {\n const { discoveryTokens, readTokens, savings, reductionPct } = economics;\n\n return (\n <div className=\"bg-surface-1 border border-border rounded-lg p-5\">\n <h3 className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mb-4\">Token Economics</h3>\n\n <div className=\"grid grid-cols-3 gap-3 mb-4\">\n <div className=\"rounded-lg bg-surface-2 border border-border px-4 py-3 text-center\">\n <div className=\"text-lg font-bold text-amber-400 tabular-nums\">{formatTokenCount(discoveryTokens)}</div>\n <div className=\"text-[10px] uppercase tracking-wider text-zinc-600 mt-0.5\">Discovery</div>\n <div className=\"text-[9px] text-zinc-700 mt-0.5\">tokens spent</div>\n </div>\n <div className=\"rounded-lg bg-surface-2 border border-border px-4 py-3 text-center\">\n <div className=\"text-lg font-bold text-cyan-400 tabular-nums\">{formatTokenCount(readTokens)}</div>\n <div className=\"text-[10px] uppercase tracking-wider text-zinc-600 mt-0.5\">Read Cost</div>\n <div className=\"text-[9px] text-zinc-700 mt-0.5\">to reuse context</div>\n </div>\n <div className=\"rounded-lg bg-surface-2 border border-border px-4 py-3 text-center\">\n <div className=\"text-lg font-bold text-emerald-400 tabular-nums\">{formatTokenCount(savings)}</div>\n <div className=\"text-[10px] uppercase tracking-wider text-zinc-600 mt-0.5\">Savings</div>\n <div className=\"text-[9px] text-zinc-700 mt-0.5\">tokens saved</div>\n </div>\n </div>\n\n {/* Barra visuale: quanto costa leggere vs scoprire */}\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between text-[10px] text-zinc-500\">\n <span>Read cost vs Discovery cost</span>\n <span className=\"font-bold text-emerald-400\">{reductionPct}% reduction</span>\n </div>\n <div className=\"h-3 bg-surface-3 rounded-full overflow-hidden flex\">\n <div\n className=\"h-full bg-gradient-to-r from-cyan-500 to-cyan-400 rounded-l-full transition-all\"\n style={{ width: `${Math.min(100, discoveryTokens > 0 ? Math.round((readTokens / discoveryTokens) * 100) : 0)}%` }}\n />\n <div\n className=\"h-full bg-gradient-to-r from-emerald-500/40 to-emerald-400/40 rounded-r-full transition-all flex-1\"\n />\n </div>\n <div className=\"flex items-center justify-between text-[9px] text-zinc-700\">\n <span className=\"flex items-center gap-1\">\n <span className=\"w-2 h-2 rounded-full bg-cyan-500 inline-block\" />\n Read: {formatTokenCount(readTokens)}\n </span>\n <span className=\"flex items-center gap-1\">\n <span className=\"w-2 h-2 rounded-full bg-emerald-500/40 inline-block\" />\n Saved: {formatTokenCount(savings)}\n </span>\n </div>\n </div>\n </div>\n );\n}\n\n", "import { useState, useEffect, useRef, useCallback } from 'react';\nimport type { AnalyticsOverview, TimelineEntry, TypeDistributionEntry, SessionStatsData } from '../types';\n\ninterface AnalyticsData {\n overview: AnalyticsOverview | null;\n timeline: TimelineEntry[];\n typeDistribution: TypeDistributionEntry[];\n sessionStats: SessionStatsData | null;\n isLoading: boolean;\n}\n\n/** Analytics polling interval (ms) \u2014 synchronized with useSSE polling */\nconst POLL_INTERVAL = 30_000;\n\n/**\n * Hook for fetching analytics data with automatic polling.\n * Does NOT open its own EventSource \u2014 uses 30s polling for updates.\n */\nexport function useAnalytics(project: string): AnalyticsData {\n const [data, setData] = useState<AnalyticsData>({\n overview: null,\n timeline: [],\n typeDistribution: [],\n sessionStats: null,\n isLoading: true\n });\n\n const mountedRef = useRef(true);\n\n const fetchAnalytics = useCallback(async () => {\n if (!mountedRef.current) return;\n\n const params = project ? `?project=${encodeURIComponent(project)}` : '';\n\n try {\n const [overviewRes, timelineRes, typesRes, sessionsRes] = await Promise.all([\n fetch(`/api/analytics/overview${params}`),\n fetch(`/api/analytics/timeline${params}`),\n fetch(`/api/analytics/types${params}`),\n fetch(`/api/analytics/sessions${params}`)\n ]);\n\n if (!mountedRef.current) return;\n\n const overview = overviewRes.ok ? await overviewRes.json() : null;\n const timeline = timelineRes.ok ? await timelineRes.json() : [];\n const typeDistribution = typesRes.ok ? await typesRes.json() : [];\n const sessionStats = sessionsRes.ok ? await sessionsRes.json() : null;\n\n setData({ overview, timeline, typeDistribution, sessionStats, isLoading: false });\n } catch (err) {\n console.error('Analytics fetch failed:', err);\n if (mountedRef.current) {\n setData(prev => ({ ...prev, isLoading: false }));\n }\n }\n }, [project]);\n\n useEffect(() => {\n mountedRef.current = true;\n\n // Initial fetch\n setData(prev => ({ ...prev, isLoading: true }));\n fetchAnalytics();\n\n // Automatic polling every 30s\n const interval = setInterval(() => {\n if (mountedRef.current) fetchAnalytics();\n }, POLL_INTERVAL);\n\n return () => {\n mountedRef.current = false;\n clearInterval(interval);\n };\n }, [fetchAnalytics]);\n\n return data;\n}\n", "import React, { useMemo, useState, useRef, useCallback, useEffect } from 'react';\nimport { useTimeline } from '../hooks/useTimeline';\nimport type { HeatmapDayEntry } from '../types';\n\n// ============================================================================\n// Costanti\n// ============================================================================\n\n/** Colore di base per la heatmap \u2014 accent-violet del tema */\nconst VIOLET = '#7C5AFF';\n\n/** Etichette giorno della settimana (partono da lunedi) */\nconst DAY_LABELS = ['Mon', '', 'Wed', '', 'Fri', '', ''];\n\n/** Dimensioni cella GitHub-style */\nconst CELL_SIZE = 12;\nconst CELL_GAP = 2;\n\n// ============================================================================\n// Interfacce\n// ============================================================================\n\nexport interface ActivityHeatmapProps {\n /** Filtro progetto corrente (stringa vuota = tutti i progetti) */\n currentFilter: string;\n /** Callback invocata al click su una cella \u2014 riceve la data YYYY-MM-DD */\n onDayClick?: (date: string) => void;\n}\n\n/** Cella elaborata per il rendering */\ninterface CellData {\n date: string; // YYYY-MM-DD\n count: number;\n projects: string[];\n level: 0 | 1 | 2 | 3 | 4; // livello colore calcolato\n}\n\n/** Tooltip posizionato vicino alla cella */\ninterface TooltipState {\n cell: CellData;\n /** Coordinate relative al contenitore scroll */\n x: number;\n y: number;\n}\n\n// ============================================================================\n// Utilit\u00E0\n// ============================================================================\n\n/**\n * Calcola le soglie quantile per i 4 livelli di attivita (livello 0 = assenza).\n * I quantili vengono calcolati solo sui giorni con count > 0.\n */\nfunction computeQuantileThresholds(entries: HeatmapDayEntry[]): [number, number, number, number] {\n const activeCounts = entries.filter(e => e.count > 0).map(e => e.count).sort((a, b) => a - b);\n if (activeCounts.length === 0) return [1, 2, 3, 4];\n\n const quantile = (q: number): number => {\n const idx = Math.floor(q * (activeCounts.length - 1));\n return activeCounts[Math.min(idx, activeCounts.length - 1)];\n };\n\n return [\n quantile(0.25), // 25\u00B0 percentile \u2192 livello 1\n quantile(0.50), // 50\u00B0 percentile \u2192 livello 2\n quantile(0.75), // 75\u00B0 percentile \u2192 livello 3\n quantile(1.0), // massimo \u2192 livello 4\n ];\n}\n\n/**\n * Restituisce il livello (0\u20134) di intensita per un dato conteggio.\n */\nfunction getLevel(count: number, thresholds: [number, number, number, number]): 0 | 1 | 2 | 3 | 4 {\n if (count === 0) return 0;\n if (count <= thresholds[0]) return 1;\n if (count <= thresholds[1]) return 2;\n if (count <= thresholds[2]) return 3;\n return 4;\n}\n\n/**\n * Costruisce la griglia settimane \u2192 giorni (0=Lun \u2026 6=Dom) per gli ultimi N mesi.\n * Restituisce un array di colonne; ogni colonna e un array di 7 celle (alcune null se fuori range).\n */\nfunction buildGrid(\n entries: HeatmapDayEntry[],\n thresholds: [number, number, number, number]\n): { columns: (CellData | null)[][]; monthLabels: { label: string; colIndex: number }[] } {\n // Mappa data \u2192 entry per lookup rapido O(1)\n const byDate = new Map<string, HeatmapDayEntry>();\n for (const e of entries) byDate.set(e.date, e);\n\n // Data di fine = oggi, data di inizio = 6 mesi fa\n const today = new Date();\n // Annulla l'orario per lavorare solo sulle date\n today.setHours(0, 0, 0, 0);\n\n const start = new Date(today);\n start.setMonth(start.getMonth() - 6);\n // Retrocedi fino al lunedi della settimana iniziale\n const startDow = (start.getDay() + 6) % 7; // 0=Lun\n start.setDate(start.getDate() - startDow);\n\n const columns: (CellData | null)[][] = [];\n const monthLabels: { label: string; colIndex: number }[] = [];\n\n let current = new Date(start);\n let lastMonth = -1;\n\n // Itera giorno per giorno costruendo colonne di 7 celle\n while (current <= today) {\n const col: (CellData | null)[] = [];\n const colIndex = columns.length;\n\n for (let dow = 0; dow < 7; dow++) {\n if (current > today) {\n col.push(null); // cella futura \u2014 non renderizzata\n current.setDate(current.getDate() + 1);\n continue;\n }\n\n const dateStr = current.toISOString().slice(0, 10);\n const entry = byDate.get(dateStr);\n const count = entry?.count ?? 0;\n const level = getLevel(count, thresholds);\n\n col.push({\n date: dateStr,\n count,\n projects: entry?.projects ?? [],\n level,\n });\n\n // Etichetta mese: aggiungi solo alla prima settimana del mese\n const month = current.getMonth();\n if (month !== lastMonth) {\n monthLabels.push({\n label: current.toLocaleDateString('en-US', { month: 'short' }),\n colIndex,\n });\n lastMonth = month;\n }\n\n current.setDate(current.getDate() + 1);\n }\n\n columns.push(col);\n }\n\n return { columns, monthLabels };\n}\n\n/**\n * Calcola le statistiche del periodo per la riga riassuntiva.\n */\nfunction computeStats(entries: HeatmapDayEntry[]) {\n if (entries.length === 0) {\n return { total: 0, mostActiveDay: null, streak: 0, avgPerActiveDay: 0 };\n }\n\n // Totale osservazioni\n const total = entries.reduce((s, e) => s + e.count, 0);\n\n // Giorno piu attivo\n const mostActiveDay = entries.reduce((best, e) => (e.count > best.count ? e : best), entries[0]);\n\n // Media per giorno attivo\n const activeDays = entries.filter(e => e.count > 0);\n const avgPerActiveDay = activeDays.length > 0\n ? Math.round(total / activeDays.length)\n : 0;\n\n // Streak corrente: conta i giorni consecutivi con attivita partendo da oggi\n // Le entry sono ordinate per data (endpoint le restituisce in ordine ASC)\n const todayStr = new Date().toISOString().slice(0, 10);\n const byDate = new Map(entries.map(e => [e.date, e.count]));\n\n let streak = 0;\n const d = new Date();\n // Se oggi non ha attivita, lo streak puo ancora esistere a partire da ieri\n if (!byDate.get(todayStr)) {\n d.setDate(d.getDate() - 1);\n }\n\n while (true) {\n const ds = d.toISOString().slice(0, 10);\n const c = byDate.get(ds) ?? 0;\n if (c === 0) break;\n streak++;\n d.setDate(d.getDate() - 1);\n }\n\n return { total, mostActiveDay, streak, avgPerActiveDay };\n}\n\n// ============================================================================\n// Componente principale\n// ============================================================================\n\nexport function ActivityHeatmap({ currentFilter, onDayClick }: ActivityHeatmapProps) {\n const { days, isLoading, error } = useTimeline(currentFilter, 6);\n\n // Calcolo soglie quantile sui dati reali\n const thresholds = useMemo(() => computeQuantileThresholds(days), [days]);\n\n // Griglia settimane\n const { columns, monthLabels } = useMemo(() => buildGrid(days, thresholds), [days, thresholds]);\n\n // Statistiche periodo\n const stats = useMemo(() => computeStats(days), [days]);\n\n // Stato tooltip\n const [tooltip, setTooltip] = useState<TooltipState | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n // Nasconde il tooltip quando si sposta il mouse fuori dal container\n const handleContainerLeave = useCallback(() => setTooltip(null), []);\n\n // \u2500\u2500 Stato di caricamento \u2500\u2500\n if (isLoading) {\n return (\n <div className=\"bg-surface-1 border border-border rounded-lg p-5\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-5 h-5 border-2 border-accent-violet/30 border-t-accent-violet rounded-full animate-spin\" />\n <span className=\"text-sm text-zinc-500\">Caricamento activity heatmap...</span>\n </div>\n </div>\n );\n }\n\n // \u2500\u2500 Stato di errore \u2500\u2500\n if (error) {\n return (\n <div className=\"bg-surface-1 border border-border rounded-lg p-5\">\n <p className=\"text-sm text-zinc-500\">Impossibile caricare la heatmap: {error}</p>\n </div>\n );\n }\n\n return (\n <div className=\"bg-surface-1 border border-border rounded-lg p-5 space-y-4\">\n {/* Intestazione */}\n <div className=\"flex items-center justify-between\">\n <h3 className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500\">\n Activity Heatmap (6 months)\n </h3>\n {/* Legenda livelli colore */}\n <ColorScaleLegend />\n </div>\n\n {/* Griglia heatmap con scroll orizzontale su schermi piccoli */}\n <div\n className=\"overflow-x-auto pb-1\"\n ref={containerRef}\n onMouseLeave={handleContainerLeave}\n >\n <HeatmapGrid\n columns={columns}\n monthLabels={monthLabels}\n onDayClick={onDayClick}\n setTooltip={setTooltip}\n containerRef={containerRef}\n />\n </div>\n\n {/* Tooltip */}\n {tooltip && <HeatmapTooltip tooltip={tooltip} containerRef={containerRef} />}\n\n {/* Riga statistiche */}\n <StatsRow stats={stats} />\n </div>\n );\n}\n\n// ============================================================================\n// Griglia heatmap\n// ============================================================================\n\ninterface HeatmapGridProps {\n columns: (CellData | null)[][];\n monthLabels: { label: string; colIndex: number }[];\n onDayClick?: (date: string) => void;\n setTooltip: (t: TooltipState | null) => void;\n containerRef: React.RefObject<HTMLDivElement>;\n}\n\nfunction HeatmapGrid({ columns, monthLabels, onDayClick, setTooltip, containerRef }: HeatmapGridProps) {\n // Larghezza totale della griglia\n const gridWidth = columns.length * (CELL_SIZE + CELL_GAP);\n const gridHeight = 7 * (CELL_SIZE + CELL_GAP);\n\n // Offset sinistro per lasciare spazio alle etichette dei giorni\n const LEFT_OFFSET = 28;\n const TOP_OFFSET = 16; // spazio per etichette mese\n\n const totalWidth = LEFT_OFFSET + gridWidth;\n const totalHeight = TOP_OFFSET + gridHeight;\n\n return (\n <div\n style={{ position: 'relative', width: totalWidth, height: totalHeight }}\n aria-label=\"Activity heatmap degli ultimi 6 mesi\"\n >\n {/* Etichette giorni (sinistra) */}\n <div\n style={{\n position: 'absolute',\n top: TOP_OFFSET,\n left: 0,\n width: LEFT_OFFSET - 4,\n }}\n >\n {DAY_LABELS.map((label, i) => (\n label ? (\n <div\n key={i}\n style={{\n position: 'absolute',\n top: i * (CELL_SIZE + CELL_GAP) + CELL_SIZE / 2 - 5,\n right: 0,\n fontSize: 9,\n lineHeight: '10px',\n color: 'var(--zinc-500)',\n textAlign: 'right',\n userSelect: 'none',\n }}\n >\n {label}\n </div>\n ) : null\n ))}\n </div>\n\n {/* Area celle + etichette mese */}\n <div style={{ position: 'absolute', top: 0, left: LEFT_OFFSET }}>\n {/* Etichette mesi */}\n {monthLabels.map(({ label, colIndex }) => (\n <div\n key={`month-${colIndex}`}\n style={{\n position: 'absolute',\n top: 0,\n left: colIndex * (CELL_SIZE + CELL_GAP),\n fontSize: 9,\n lineHeight: '12px',\n color: 'var(--zinc-500)',\n userSelect: 'none',\n whiteSpace: 'nowrap',\n }}\n >\n {label}\n </div>\n ))}\n\n {/* Celle settimane */}\n <div\n style={{\n position: 'relative',\n top: TOP_OFFSET,\n display: 'flex',\n flexDirection: 'row',\n gap: CELL_GAP,\n }}\n >\n {columns.map((col, ci) => (\n <div\n key={ci}\n style={{ display: 'flex', flexDirection: 'column', gap: CELL_GAP }}\n >\n {col.map((cell, ri) => (\n <HeatmapCell\n key={`${ci}-${ri}`}\n cell={cell}\n onDayClick={onDayClick}\n setTooltip={setTooltip}\n containerRef={containerRef}\n />\n ))}\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n}\n\n// ============================================================================\n// Singola cella\n// ============================================================================\n\ninterface HeatmapCellProps {\n cell: CellData | null;\n onDayClick?: (date: string) => void;\n setTooltip: (t: TooltipState | null) => void;\n containerRef: React.RefObject<HTMLDivElement>;\n}\n\n/** Mappa livello \u2192 stile background */\nfunction getCellStyle(level: 0 | 1 | 2 | 3 | 4): React.CSSProperties {\n switch (level) {\n case 0: return { backgroundColor: 'var(--surface-2)' };\n case 1: return { backgroundColor: `${VIOLET}26` }; // 15% opacity \u2248 26 hex\n case 2: return { backgroundColor: `${VIOLET}59` }; // 35% opacity \u2248 59 hex\n case 3: return { backgroundColor: `${VIOLET}99` }; // 60% opacity \u2248 99 hex\n case 4: return { backgroundColor: VIOLET };\n }\n}\n\nfunction HeatmapCell({ cell, onDayClick, setTooltip, containerRef }: HeatmapCellProps) {\n // Cella futura o vuota: spazio visivo neutro\n if (cell === null) {\n return (\n <div\n style={{\n width: CELL_SIZE,\n height: CELL_SIZE,\n borderRadius: 2,\n backgroundColor: 'transparent',\n }}\n />\n );\n }\n\n const cellStyle = getCellStyle(cell.level);\n const isClickable = cell.count > 0 && onDayClick;\n\n const handleMouseEnter = useCallback((e: React.MouseEvent<HTMLDivElement>) => {\n if (!containerRef.current) return;\n const containerRect = containerRef.current.getBoundingClientRect();\n const cellRect = (e.currentTarget as HTMLDivElement).getBoundingClientRect();\n\n // Posizione relativa al contenitore con offset scroll\n const x = cellRect.left - containerRect.left + containerRef.current.scrollLeft + CELL_SIZE / 2;\n const y = cellRect.top - containerRect.top + containerRef.current.scrollTop;\n\n setTooltip({ cell, x, y });\n }, [cell, setTooltip, containerRef]);\n\n const handleMouseLeave = useCallback(() => {\n // Il tooltip viene nascosto dal handler del container per evitare flickering\n }, []);\n\n const handleClick = useCallback(() => {\n if (isClickable) onDayClick!(cell.date);\n }, [cell.date, isClickable, onDayClick]);\n\n return (\n <div\n style={{\n width: CELL_SIZE,\n height: CELL_SIZE,\n borderRadius: 2,\n cursor: isClickable ? 'pointer' : 'default',\n transition: 'transform 0.1s ease, filter 0.1s ease',\n ...cellStyle,\n }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onClick={handleClick}\n title={cell.count > 0 ? `${cell.date}: ${cell.count} observations` : undefined}\n aria-label={\n cell.count > 0\n ? `${cell.date}: ${cell.count} osservazioni`\n : `${cell.date}: nessuna attivita`\n }\n role={isClickable ? 'button' : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onKeyDown={isClickable ? (e) => { if (e.key === 'Enter' || e.key === ' ') handleClick(); } : undefined}\n />\n );\n}\n\n// ============================================================================\n// Tooltip\n// ============================================================================\n\ninterface HeatmapTooltipProps {\n tooltip: TooltipState;\n containerRef: React.RefObject<HTMLDivElement>;\n}\n\nfunction HeatmapTooltip({ tooltip, containerRef }: HeatmapTooltipProps) {\n const { cell, x, y } = tooltip;\n const TIP_W = 200;\n\n // Formatta la data in modo leggibile\n const formattedDate = new Date(cell.date + 'T12:00:00Z').toLocaleDateString('en-US', {\n weekday: 'short',\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n timeZone: 'UTC',\n });\n\n // Calcola se il tooltip va sopra o sotto la cella per evitare overflow\n const containerH = containerRef.current?.clientHeight ?? 200;\n const showAbove = y > containerH / 2;\n const tipTop = showAbove ? y - 8 - 100 : y + CELL_SIZE + 4; // 100px altezza stimata\n\n // Evita overflow orizzontale\n const containerW = containerRef.current?.clientWidth ?? 400;\n const tipLeft = Math.max(0, Math.min(x - TIP_W / 2, containerW - TIP_W - 8));\n\n return (\n <div\n className=\"absolute pointer-events-none z-30 bg-surface-3 border border-border rounded-lg px-3 py-2.5 shadow-lg\"\n style={{ left: tipLeft, top: tipTop, width: TIP_W }}\n >\n {/* Data */}\n <div className=\"text-[11px] font-mono text-zinc-400 mb-1.5\">{formattedDate}</div>\n\n {/* Conteggio osservazioni */}\n <div className=\"text-sm font-bold text-accent-violet tabular-nums\">\n {cell.count}{' '}\n <span className=\"text-xs font-normal text-zinc-400\">\n observation{cell.count !== 1 ? 's' : ''}\n </span>\n </div>\n\n {/* Lista progetti attivi */}\n {cell.projects.length > 0 && (\n <div className=\"mt-1.5 space-y-0.5\">\n {cell.projects.slice(0, 4).map(p => (\n <div key={p} className=\"flex items-center gap-1.5\">\n <div className=\"w-1.5 h-1.5 rounded-full bg-accent-violet/60 flex-shrink-0\" />\n <span className=\"text-[10px] text-zinc-500 truncate\">{p}</span>\n </div>\n ))}\n {cell.projects.length > 4 && (\n <div className=\"text-[10px] text-zinc-600 pl-3\">\n +{cell.projects.length - 4} altri\n </div>\n )}\n </div>\n )}\n\n {/* Invito al click se la cella e attiva */}\n {cell.count > 0 && (\n <div className=\"mt-1.5 text-[9px] text-zinc-700\">Clicca per filtrare questo giorno</div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Legenda scala colori\n// ============================================================================\n\nfunction ColorScaleLegend() {\n const levels: Array<{ level: 0 | 1 | 2 | 3 | 4; label: string }> = [\n { level: 0, label: 'None' },\n { level: 1, label: 'Low' },\n { level: 2, label: '' },\n { level: 3, label: '' },\n { level: 4, label: 'High' },\n ];\n\n return (\n <div className=\"flex items-center gap-1.5\">\n <span className=\"text-[10px] text-zinc-600 mr-0.5\">Less</span>\n {levels.map(({ level, label }) => (\n <div\n key={level}\n style={{\n width: 10,\n height: 10,\n borderRadius: 2,\n ...getCellStyle(level),\n }}\n title={label || undefined}\n />\n ))}\n <span className=\"text-[10px] text-zinc-600 ml-0.5\">More</span>\n </div>\n );\n}\n\n// ============================================================================\n// Riga statistiche\n// ============================================================================\n\ninterface StatsRowProps {\n stats: ReturnType<typeof computeStats>;\n}\n\nfunction StatsRow({ stats }: StatsRowProps) {\n const { total, mostActiveDay, streak, avgPerActiveDay } = stats;\n\n // Formatta la data del giorno piu attivo\n const mostActiveDateLabel = mostActiveDay\n ? new Date(mostActiveDay.date + 'T12:00:00Z').toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n timeZone: 'UTC',\n })\n : '\u2014';\n\n return (\n <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-3 pt-1 border-t border-border\">\n {/* Totale osservazioni nel periodo */}\n <StatItem\n value={total.toLocaleString()}\n label=\"Total observations\"\n color=\"text-accent-violet\"\n />\n\n {/* Giorno piu attivo */}\n <StatItem\n value={\n mostActiveDay\n ? `${mostActiveDay.count} on ${mostActiveDateLabel}`\n : '\u2014'\n }\n label=\"Most active day\"\n color=\"text-accent-amber\"\n small\n />\n\n {/* Streak corrente */}\n <StatItem\n value={streak > 0 ? `${streak}d` : '\u2014'}\n label=\"Current streak\"\n color=\"text-accent-green\"\n />\n\n {/* Media per giorno attivo */}\n <StatItem\n value={avgPerActiveDay > 0 ? `${avgPerActiveDay}/day` : '\u2014'}\n label=\"Avg active day\"\n color=\"text-accent-cyan\"\n />\n </div>\n );\n}\n\ninterface StatItemProps {\n value: string;\n label: string;\n color: string;\n /** Usa font piu piccolo per valori con piu caratteri */\n small?: boolean;\n}\n\nfunction StatItem({ value, label, color, small }: StatItemProps) {\n return (\n <div className=\"space-y-0.5\">\n <div className={`font-bold tabular-nums ${color} ${small ? 'text-xs' : 'text-sm'}`}>\n {value}\n </div>\n <div className=\"text-[10px] uppercase tracking-wider text-zinc-600\">{label}</div>\n </div>\n );\n}\n", "import { useState, useEffect, useRef, useCallback } from 'react';\nimport type { HeatmapDayEntry } from '../types';\n\n/** Dati restituiti dall'hook useTimeline */\ninterface TimelineData {\n days: HeatmapDayEntry[];\n isLoading: boolean;\n error: string | null;\n refetch: () => void;\n}\n\n/** Intervallo di polling automatico (ms) \u2014 allineato con useAnalytics */\nconst POLL_INTERVAL = 30_000;\n\n/**\n * Hook per il fetch dei dati heatmap della timeline interattiva.\n * Chiama GET /api/analytics/heatmap?months=6&project=<project>\n * e ri-fetcha automaticamente quando cambia il filtro progetto.\n *\n * @param project Filtro progetto corrente (stringa vuota = tutti i progetti)\n * @param months Finestra temporale in mesi (default 6)\n */\nexport function useTimeline(project: string, months: number = 6): TimelineData {\n const [days, setDays] = useState<HeatmapDayEntry[]>([]);\n const [isLoading, setIsLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n\n // Ref per evitare aggiornamenti di stato dopo unmount\n const mountedRef = useRef(true);\n\n const fetchData = useCallback(async () => {\n if (!mountedRef.current) return;\n\n setIsLoading(true);\n setError(null);\n\n // Costruisce i parametri della query\n const params = new URLSearchParams({ months: String(months) });\n if (project) params.set('project', project);\n\n try {\n const res = await fetch(`/api/analytics/heatmap?${params}`);\n\n if (!mountedRef.current) return;\n\n if (!res.ok) {\n throw new Error(`HTTP ${res.status}: ${res.statusText}`);\n }\n\n const data = await res.json() as { days: HeatmapDayEntry[] };\n if (mountedRef.current) {\n setDays(data.days ?? []);\n }\n } catch (err) {\n if (mountedRef.current) {\n setError(err instanceof Error ? err.message : 'Errore sconosciuto nel caricamento heatmap');\n setDays([]);\n }\n } finally {\n if (mountedRef.current) {\n setIsLoading(false);\n }\n }\n }, [project, months]);\n\n // Fetch iniziale + polling automatico\n useEffect(() => {\n mountedRef.current = true;\n fetchData();\n\n const interval = setInterval(() => {\n if (mountedRef.current) fetchData();\n }, POLL_INTERVAL);\n\n return () => {\n mountedRef.current = false;\n clearInterval(interval);\n };\n }, [fetchData]);\n\n return { days, isLoading, error, refetch: fetchData };\n}\n", "import React, { useState, useEffect } from 'react';\nimport type { Session } from '../types';\nimport { timeAgo, formatDuration } from '../utils/format';\n\nconst STATUS_STYLES: Record<string, { dot: string; text: string; label: string }> = {\n active: { dot: 'bg-accent-green animate-pulse-dot', text: 'text-accent-green', label: 'Active' },\n completed: { dot: 'bg-accent-blue', text: 'text-accent-blue', label: 'Completed' },\n failed: { dot: 'bg-accent-rose', text: 'text-accent-rose', label: 'Failed' },\n};\n\ninterface SessionsProps {\n currentFilter: string;\n getDisplayName: (project: string) => string;\n}\n\nexport function Sessions({ currentFilter, getDisplayName }: SessionsProps) {\n const [sessions, setSessions] = useState<Session[]>([]);\n const [isLoading, setIsLoading] = useState(true);\n const [expandedId, setExpandedId] = useState<number | null>(null);\n\n useEffect(() => {\n setIsLoading(true);\n const params = currentFilter ? `?project=${encodeURIComponent(currentFilter)}` : '';\n fetch(`/api/sessions${params}`)\n .then(r => r.ok ? r.json() : [])\n .then(data => setSessions(Array.isArray(data) ? data : []))\n .catch(() => setSessions([]))\n .finally(() => setIsLoading(false));\n }, [currentFilter]);\n\n if (isLoading) {\n return (\n <div className=\"flex flex-col items-center justify-center py-20\">\n <div className=\"w-6 h-6 border-2 border-accent-violet/30 border-t-accent-violet rounded-full animate-spin mb-4\" />\n <p className=\"text-sm text-zinc-500\">Loading sessions...</p>\n </div>\n );\n }\n\n if (sessions.length === 0) {\n return (\n <div className=\"flex flex-col items-center justify-center py-20 text-center\">\n <div className=\"w-16 h-16 rounded-2xl bg-surface-2 border border-border flex items-center justify-center mb-5\">\n <svg className=\"w-7 h-7 text-zinc-600\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" /><polyline points=\"12 6 12 12 16 14\" />\n </svg>\n </div>\n <p className=\"text-base font-semibold text-zinc-300 mb-2\">No sessions found</p>\n <p className=\"text-sm text-zinc-500 max-w-xs leading-relaxed\">\n Start a coding session to see it tracked here.\n </p>\n </div>\n );\n }\n\n /* Statistiche in cima */\n const total = sessions.length;\n const completed = sessions.filter(s => s.status === 'completed').length;\n const active = sessions.filter(s => s.status === 'active').length;\n const avgDuration = (() => {\n const completedSessions = sessions.filter(s => s.completed_at_epoch && s.started_at_epoch);\n if (completedSessions.length === 0) return 0;\n const totalMs = completedSessions.reduce((sum, s) => sum + ((s.completed_at_epoch || 0) - s.started_at_epoch), 0);\n return totalMs / completedSessions.length / 60_000; // minuti\n })();\n\n return (\n <div className=\"space-y-6\">\n {/* Stats cards */}\n <div className=\"grid grid-cols-2 lg:grid-cols-4 gap-3\">\n <div className=\"rounded-lg bg-surface-1 border border-border px-4 py-4\">\n <div className=\"text-2xl font-bold tabular-nums text-accent-violet\">{total}</div>\n <div className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mt-1\">Total</div>\n </div>\n <div className=\"rounded-lg bg-surface-1 border border-border px-4 py-4\">\n <div className=\"text-2xl font-bold tabular-nums text-accent-green\">{active}</div>\n <div className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mt-1\">Active</div>\n </div>\n <div className=\"rounded-lg bg-surface-1 border border-border px-4 py-4\">\n <div className=\"text-2xl font-bold tabular-nums text-accent-blue\">{completed}</div>\n <div className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mt-1\">Completed</div>\n </div>\n <div className=\"rounded-lg bg-surface-1 border border-border px-4 py-4\">\n <div className=\"text-2xl font-bold tabular-nums text-accent-cyan\">{formatDuration(avgDuration)}</div>\n <div className=\"text-[11px] font-semibold uppercase tracking-wider text-zinc-500 mt-1\">Avg Duration</div>\n </div>\n </div>\n\n {/* Lista sessioni */}\n <div className=\"space-y-2\">\n {sessions.map(session => {\n const style = STATUS_STYLES[session.status] || STATUS_STYLES.active;\n const isExpanded = expandedId === session.id;\n const duration = session.completed_at_epoch\n ? (session.completed_at_epoch - session.started_at_epoch) / 60_000\n : (Date.now() - session.started_at_epoch) / 60_000;\n\n return (\n <div\n key={session.id}\n className=\"bg-surface-1 border border-border rounded-lg overflow-hidden transition-all hover:border-border-hover\"\n >\n {/* Riga principale */}\n <button\n onClick={() => setExpandedId(isExpanded ? null : session.id)}\n className=\"w-full flex items-center gap-3 px-4 py-3 text-left\"\n aria-expanded={isExpanded}\n >\n {/* Status dot */}\n <div className={`w-2.5 h-2.5 rounded-full flex-shrink-0 ${style.dot}`} />\n\n {/* Contenuto */}\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-medium text-zinc-200 truncate\">\n {session.user_prompt || 'Session'}\n </span>\n <span className={`text-[10px] font-medium px-1.5 py-0.5 rounded ${style.text} bg-surface-3`}>\n {style.label}\n </span>\n </div>\n <div className=\"flex items-center gap-3 mt-1\">\n <span className=\"text-[11px] text-zinc-500\">{getDisplayName(session.project)}</span>\n <span className=\"text-[10px] text-zinc-600 font-mono\">{timeAgo(session.started_at_epoch)}</span>\n <span className=\"text-[10px] text-zinc-600 font-mono\">{formatDuration(duration)}</span>\n </div>\n </div>\n\n {/* Freccia expand */}\n <svg\n className={`w-4 h-4 text-zinc-600 transition-transform ${isExpanded ? 'rotate-180' : ''}`}\n viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </button>\n\n {/* Dettagli espansi */}\n {isExpanded && (\n <div className=\"px-4 pb-3 pt-0 border-t border-border space-y-2 animate-fade-in\">\n <div className=\"grid grid-cols-2 gap-3 text-xs\">\n <div>\n <span className=\"text-zinc-600\">Session ID</span>\n <div className=\"text-zinc-400 font-mono text-[11px] truncate\">{session.content_session_id}</div>\n </div>\n <div>\n <span className=\"text-zinc-600\">Duration</span>\n <div className=\"text-zinc-400 font-mono text-[11px]\">{formatDuration(duration)}</div>\n </div>\n <div>\n <span className=\"text-zinc-600\">Started</span>\n <div className=\"text-zinc-400 font-mono text-[11px]\">{new Date(session.started_at_epoch).toLocaleString()}</div>\n </div>\n <div>\n <span className=\"text-zinc-600\">Completed</span>\n <div className=\"text-zinc-400 font-mono text-[11px]\">\n {session.completed_at_epoch ? new Date(session.completed_at_epoch).toLocaleString() : session.status === 'completed' ? 'Before tracking' : '\u2014'}\n </div>\n </div>\n </div>\n {session.user_prompt && (\n <div>\n <span className=\"text-[11px] text-zinc-600\">Prompt</span>\n <p className=\"text-xs text-zinc-400 mt-0.5 leading-relaxed break-words\">{session.user_prompt}</p>\n </div>\n )}\n </div>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n", "import React, {\n useRef,\n useEffect,\n useCallback,\n useState,\n useMemo,\n useLayoutEffect,\n} from 'react';\nimport { useTimeline } from '../hooks/useTimeline';\nimport type { HeatmapDayEntry, TimelineZoomLevel } from '../types';\n\n// ============================================================================\n// Costanti colori \u2014 coerenti con il tema dark dell'UI\n// ============================================================================\n\n/** Colori canvas per tipo osservazione */\nconst TYPE_COLORS: Record<string, string> = {\n 'file-write': '#10B981', // emerald-500\n 'file-read': '#06B6D4', // cyan-500\n 'command': '#F59E0B', // amber-500\n 'research': '#3B82F6', // blue-500\n 'delegation': '#7C5AFF', // violet kiro\n 'tool-use': '#71717A', // zinc-500\n 'constraint': '#EF4444', // red-500\n 'decision': '#F97316', // orange-500\n 'heuristic': '#6366F1', // indigo-500\n 'rejected': '#64748B', // slate-500\n};\n\n/** Colori di sfondo del canvas */\nconst COLORS = {\n surface0: '#0a0b10', // bg-surface-0\n surface1: '#12131a', // bg-surface-1\n surface2: '#1a1b24', // bg-surface-2\n border: '#1f2130', // border\n textMuted:'#52525b', // zinc-600\n textDim: '#3f3f46', // zinc-700\n textBase: '#a1a1aa', // zinc-400\n textBold: '#e4e4e7', // zinc-200\n violet: '#7C5AFF', // accent-violet\n axisLine: '#2a2b38',\n};\n\n// ============================================================================\n// Tipi interni\n// ============================================================================\n\n/** Punto dati per il rendering canvas */\ninterface CanvasMarker {\n /** Data ISO YYYY-MM-DD */\n date: string;\n /** Numero di osservazioni */\n count: number;\n /** Progetti attivi quel giorno */\n projects: string[];\n /** Timestamp epoch ms (calcolato una sola volta) */\n epochMs: number;\n}\n\n/** Viewport della timeline (offset in pixel, scala px/ms) */\ninterface Viewport {\n offsetPx: number; // scroll orizzontale\n pxPerMs: number; // pixel per millisecondo\n}\n\n/** Rettangolo hit-test per la mini-overview */\ninterface OverviewRect {\n x: number; y: number; w: number; h: number;\n}\n\n// ============================================================================\n// Utilit\u00E0\n// ============================================================================\n\n/** Converte una data ISO YYYY-MM-DD in epoch ms (UTC mezzogiorno) */\nfunction isoToEpoch(dateStr: string): number {\n return new Date(dateStr + 'T12:00:00Z').getTime();\n}\n\n/** Formatta una data in etichetta asse X secondo il livello di zoom */\nfunction formatAxisLabel(epochMs: number, zoom: TimelineZoomLevel): string {\n const d = new Date(epochMs);\n if (zoom === 'month') {\n return d.toLocaleDateString('en-US', { month: 'short', year: '2-digit', timeZone: 'UTC' });\n }\n if (zoom === 'week') {\n return d.toLocaleDateString('en-US', { month: 'short', day: 'numeric', timeZone: 'UTC' });\n }\n // day\n return d.toLocaleDateString('en-US', { month: 'short', day: 'numeric', timeZone: 'UTC' });\n}\n\n/** Formatta la data per il tooltip */\nfunction formatTooltipDate(epochMs: number): string {\n return new Date(epochMs).toLocaleDateString('en-US', {\n weekday: 'short', year: 'numeric', month: 'short', day: 'numeric', timeZone: 'UTC'\n });\n}\n\n/** Calcola il livello di zoom in base alla scala px/ms */\nfunction computeZoomLevel(pxPerMs: number): TimelineZoomLevel {\n const pxPerDay = pxPerMs * 86_400_000;\n if (pxPerDay >= 40) return 'day';\n if (pxPerDay >= 10) return 'week';\n return 'month';\n}\n\n/** Scala px/ms per ogni livello di zoom */\nconst ZOOM_PRESETS: Record<TimelineZoomLevel, number> = {\n day: 40 / 86_400_000,\n week: 14 / 86_400_000,\n month: 4 / 86_400_000,\n};\n\n/** Incremento/decremento zoom con scroll wheel */\nconst ZOOM_FACTOR = 1.25;\n\n// ============================================================================\n// Props componente principale\n// ============================================================================\n\ninterface TimelineProps {\n /** Filtro progetto corrente */\n currentFilter: string;\n /** Callback per navigare a un'osservazione nel feed */\n onNavigate: (project: string, obsId: number) => void;\n}\n\n// ============================================================================\n// Componente principale Timeline\n// ============================================================================\n\nexport function Timeline({ currentFilter, onNavigate }: TimelineProps) {\n const { days, isLoading, error } = useTimeline(currentFilter, 6);\n\n // Converti le entry in CanvasMarker (calcola epochMs una sola volta)\n const markers = useMemo<CanvasMarker[]>(() =>\n days.map(d => ({ ...d, epochMs: isoToEpoch(d.date) })),\n [days]);\n\n if (isLoading) {\n return (\n <div className=\"flex flex-col items-center justify-center py-20\">\n <div className=\"w-6 h-6 border-2 border-accent-violet/30 border-t-accent-violet rounded-full animate-spin mb-4\" />\n <p className=\"text-sm text-zinc-500\">Caricamento timeline...</p>\n </div>\n );\n }\n\n if (error) {\n return (\n <div className=\"flex flex-col items-center justify-center py-20 text-center\">\n <div className=\"w-12 h-12 rounded-xl bg-red-500/10 border border-red-500/20 flex items-center justify-center mb-4\">\n <svg className=\"w-5 h-5 text-red-400\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" /><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\" /><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\" />\n </svg>\n </div>\n <p className=\"text-sm text-zinc-400 mb-1\">Errore caricamento timeline</p>\n <p className=\"text-xs text-zinc-600\">{error}</p>\n </div>\n );\n }\n\n if (markers.length === 0) {\n return (\n <div className=\"flex flex-col items-center justify-center py-20 text-center\">\n <div className=\"w-16 h-16 rounded-2xl bg-surface-2 border border-border flex items-center justify-center mb-5\">\n <svg className=\"w-7 h-7 text-zinc-600\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" /><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\" /><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\" /><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\" />\n </svg>\n </div>\n <p className=\"text-base font-semibold text-zinc-300 mb-2\">Nessun dato disponibile</p>\n <p className=\"text-sm text-zinc-500 max-w-xs leading-relaxed\">\n Avvia una sessione di coding per raccogliere dati sulla timeline.\n </p>\n </div>\n );\n }\n\n return <TimelineCanvas markers={markers} currentFilter={currentFilter} onNavigate={onNavigate} />;\n}\n\n// ============================================================================\n// Canvas interattivo \u2014 rendering Canvas 2D con RAF\n// ============================================================================\n\ninterface TimelineCanvasProps {\n markers: CanvasMarker[];\n currentFilter: string;\n onNavigate: (project: string, obsId: number) => void;\n}\n\nfunction TimelineCanvas({ markers, onNavigate }: TimelineCanvasProps) {\n // Refs canvas e contenitore\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const overviewRef = useRef<HTMLCanvasElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n // Dimensioni canvas (aggiornate al resize)\n const [canvasSize, setCanvasSize] = useState({ w: 800, h: 260 });\n\n // Viewport corrente\n const viewportRef = useRef<Viewport>({ offsetPx: 0, pxPerMs: ZOOM_PRESETS.week });\n\n // Stato interazione\n const isDraggingRef = useRef(false);\n const dragStartXRef = useRef(0);\n const dragOffsetRef = useRef(0);\n\n // Selezione intervallo\n const isSelectingRef = useRef(false);\n const selectStartXRef = useRef(0);\n const [selectedRange, setSelectedRange] = useState<{ fromMs: number; toMs: number } | null>(null);\n\n // Tooltip\n const [tooltip, setTooltip] = useState<{\n x: number; y: number; marker: CanvasMarker;\n } | null>(null);\n\n // Livello di zoom derivato dalla scala corrente\n const [zoomLevel, setZoomLevel] = useState<TimelineZoomLevel>('week');\n\n // Controllo RAF\n const rafRef = useRef<number>(0);\n const needsRedrawRef = useRef(true);\n\n // Debounce timer per zoom/pan\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // \u2500\u2500 Range temporale dei dati \u2500\u2500\n const timeRange = useMemo(() => {\n if (markers.length === 0) return { minMs: Date.now() - 7 * 86_400_000, maxMs: Date.now() };\n const minMs = markers[0].epochMs;\n const maxMs = markers[markers.length - 1].epochMs;\n return { minMs, maxMs };\n }, [markers]);\n\n // \u2500\u2500 Massimo conteggio (per altezza delle barre) \u2500\u2500\n const maxCount = useMemo(() => Math.max(...markers.map(m => m.count), 1), [markers]);\n\n // ============================================================================\n // Utility: converti pixel X in timestamp e viceversa\n // ============================================================================\n\n const epochToX = useCallback((epochMs: number): number => {\n const vp = viewportRef.current;\n return (epochMs - timeRange.minMs) * vp.pxPerMs - vp.offsetPx;\n }, [timeRange.minMs]);\n\n const xToEpoch = useCallback((x: number): number => {\n const vp = viewportRef.current;\n return timeRange.minMs + (x + vp.offsetPx) / vp.pxPerMs;\n }, [timeRange.minMs]);\n\n // ============================================================================\n // Disegno principale canvas\n // ============================================================================\n\n const MARGIN_LEFT = 0;\n const MARGIN_RIGHT = 0;\n const MARGIN_TOP = 20;\n const AXIS_HEIGHT = 28;\n const OVERVIEW_H = 40;\n const CHART_PADDING = 10;\n\n const drawCanvas = useCallback(() => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const { w, h } = canvasSize;\n const chartH = h - AXIS_HEIGHT;\n\n // Cancella\n ctx.clearRect(0, 0, w, h);\n ctx.fillStyle = COLORS.surface1;\n ctx.fillRect(0, 0, w, h);\n\n if (markers.length === 0) return;\n\n const vp = viewportRef.current;\n const pxPerDay = vp.pxPerMs * 86_400_000;\n const barW = Math.max(2, pxPerDay * 0.7);\n\n // \u2500\u2500 Griglia verticale (asse tempo) \u2500\u2500\n ctx.strokeStyle = COLORS.axisLine;\n ctx.lineWidth = 1;\n\n // Calcola intervallo etichette asse X in base al livello di zoom\n const zoom = computeZoomLevel(vp.pxPerMs);\n const labelIntervalMs = zoom === 'month'\n ? 30 * 86_400_000\n : zoom === 'week'\n ? 7 * 86_400_000\n : 86_400_000;\n\n // Trova il primo tick visibile\n const visibleStartMs = xToEpoch(MARGIN_LEFT);\n const firstTickMs = Math.ceil(visibleStartMs / labelIntervalMs) * labelIntervalMs;\n\n ctx.font = '11px Inter, system-ui, sans-serif';\n ctx.textAlign = 'center';\n ctx.fillStyle = COLORS.textMuted;\n\n for (let tickMs = firstTickMs; tickMs <= timeRange.maxMs + labelIntervalMs; tickMs += labelIntervalMs) {\n const x = epochToX(tickMs);\n if (x < MARGIN_LEFT - 60 || x > w + 60) continue;\n\n // Linea griglia\n ctx.beginPath();\n ctx.moveTo(x, MARGIN_TOP);\n ctx.lineTo(x, chartH - CHART_PADDING);\n ctx.stroke();\n\n // Etichetta asse X\n ctx.fillStyle = COLORS.textMuted;\n ctx.fillText(formatAxisLabel(tickMs, zoom), x, h - 8);\n }\n\n // \u2500\u2500 Linea base asse X \u2500\u2500\n ctx.strokeStyle = COLORS.axisLine;\n ctx.lineWidth = 1;\n ctx.beginPath();\n ctx.moveTo(MARGIN_LEFT, chartH - CHART_PADDING);\n ctx.lineTo(w - MARGIN_RIGHT, chartH - CHART_PADDING);\n ctx.stroke();\n\n // \u2500\u2500 Barre / markers \u2500\u2500\n const availableH = chartH - MARGIN_TOP - CHART_PADDING;\n\n for (const marker of markers) {\n const x = epochToX(marker.epochMs);\n\n // Salta i marker fuori schermo\n if (x + barW < MARGIN_LEFT || x > w + MARGIN_RIGHT) continue;\n\n const heightPct = marker.count / maxCount;\n const barH = Math.max(3, availableH * heightPct);\n const barY = chartH - CHART_PADDING - barH;\n\n // Colore: se pi\u00F9 progetti usano il marker primo; altrimenti colore per progetto\n // Usa un gradiente viola default per visualizzazioni multi-progetto\n const isHighlighted = selectedRange\n ? marker.epochMs >= selectedRange.fromMs && marker.epochMs <= selectedRange.toMs\n : true;\n\n // Usa violet di default per giornate multi-progetto, altrimenti il colore neutro\n const baseColor = COLORS.violet;\n ctx.fillStyle = isHighlighted ? baseColor : baseColor + '33'; // opacit\u00E0 ridotta fuori selezione\n\n // Barra principale\n const rx = 2; // border-radius\n ctx.beginPath();\n if (barH > rx * 2) {\n ctx.moveTo(x + rx, barY);\n ctx.lineTo(x + barW - rx, barY);\n ctx.quadraticCurveTo(x + barW, barY, x + barW, barY + rx);\n ctx.lineTo(x + barW, barY + barH);\n ctx.lineTo(x, barY + barH);\n ctx.lineTo(x, barY + rx);\n ctx.quadraticCurveTo(x, barY, x + rx, barY);\n } else {\n ctx.rect(x, barY, barW, barH);\n }\n ctx.closePath();\n ctx.fill();\n\n // Numero sopra la barra se c'\u00E8 spazio\n if (pxPerDay >= 20 && barH > 20 && marker.count > 0) {\n ctx.fillStyle = isHighlighted ? COLORS.textBold : COLORS.textMuted;\n ctx.font = '10px Inter, system-ui, sans-serif';\n ctx.textAlign = 'center';\n ctx.fillText(String(marker.count), x + barW / 2, barY - 4);\n }\n }\n\n // \u2500\u2500 Selezione range (drag) \u2500\u2500\n if (isSelectingRef.current && selectStartXRef.current !== 0) {\n // Disegna solo la selezione in corso\n }\n\n if (selectedRange) {\n const sx = epochToX(selectedRange.fromMs);\n const ex = epochToX(selectedRange.toMs);\n ctx.fillStyle = COLORS.violet + '22';\n ctx.fillRect(sx, MARGIN_TOP, ex - sx, chartH - MARGIN_TOP - CHART_PADDING);\n ctx.strokeStyle = COLORS.violet + '88';\n ctx.lineWidth = 1;\n ctx.strokeRect(sx, MARGIN_TOP, ex - sx, chartH - MARGIN_TOP - CHART_PADDING);\n }\n }, [canvasSize, markers, maxCount, epochToX, xToEpoch, timeRange, selectedRange]);\n\n // ============================================================================\n // Disegno overview (mini-mappa in fondo)\n // ============================================================================\n\n const drawOverview = useCallback(() => {\n const canvas = overviewRef.current;\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const { w } = canvasSize;\n const h = OVERVIEW_H;\n const totalMs = timeRange.maxMs - timeRange.minMs;\n if (totalMs <= 0) return;\n\n ctx.clearRect(0, 0, w, h);\n ctx.fillStyle = COLORS.surface2;\n ctx.fillRect(0, 0, w, h);\n\n // Barre mini proporali\n const overviewPxPerMs = w / totalMs;\n for (const marker of markers) {\n const x = (marker.epochMs - timeRange.minMs) * overviewPxPerMs;\n const barW = Math.max(1, overviewPxPerMs * 86_400_000 * 0.7);\n const heightPct = marker.count / maxCount;\n const barH = Math.max(1, (h - 4) * heightPct);\n ctx.fillStyle = COLORS.violet + '88';\n ctx.fillRect(x, h - barH - 2, barW, barH);\n }\n\n // Indicatore viewport (riquadro bianco)\n const vp = viewportRef.current;\n const visibleMs = canvasSize.w / vp.pxPerMs;\n const viewStartMs = timeRange.minMs + vp.offsetPx / vp.pxPerMs;\n const vx = (viewStartMs - timeRange.minMs) * overviewPxPerMs;\n const vw = visibleMs * overviewPxPerMs;\n\n ctx.strokeStyle = COLORS.violet;\n ctx.lineWidth = 1.5;\n ctx.strokeRect(Math.max(0, vx), 1, Math.min(vw, w - vx), h - 2);\n ctx.fillStyle = COLORS.violet + '18';\n ctx.fillRect(Math.max(0, vx), 1, Math.min(vw, w - vx), h - 2);\n\n // Bordo overview\n ctx.strokeStyle = COLORS.border;\n ctx.lineWidth = 1;\n ctx.strokeRect(0, 0, w, h);\n }, [canvasSize, markers, maxCount, timeRange]);\n\n // ============================================================================\n // RAF loop\n // ============================================================================\n\n const renderLoop = useCallback(() => {\n if (needsRedrawRef.current) {\n drawCanvas();\n drawOverview();\n needsRedrawRef.current = false;\n }\n rafRef.current = requestAnimationFrame(renderLoop);\n }, [drawCanvas, drawOverview]);\n\n /** Segna il canvas come da ridisegnare (debounced) */\n const scheduleRedraw = useCallback(() => {\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(() => {\n needsRedrawRef.current = true;\n }, 16); // ~1 frame di debounce\n }, []);\n\n // \u2500\u2500 Avvio RAF loop \u2500\u2500\n useEffect(() => {\n rafRef.current = requestAnimationFrame(renderLoop);\n return () => {\n cancelAnimationFrame(rafRef.current);\n };\n }, [renderLoop]);\n\n // \u2500\u2500 Ridisegna quando cambiano marker o selezione \u2500\u2500\n useEffect(() => {\n needsRedrawRef.current = true;\n }, [markers, selectedRange, canvasSize]);\n\n // ============================================================================\n // Inizializza viewport al caricamento dati\n // ============================================================================\n\n useEffect(() => {\n if (markers.length === 0) return;\n const totalMs = timeRange.maxMs - timeRange.minMs + 86_400_000;\n // Imposta il livello \"week\" di default e mostra gli ultimi ~90 giorni\n const targetPxPerMs = ZOOM_PRESETS.week;\n viewportRef.current = {\n pxPerMs: targetPxPerMs,\n // Allinea la vista sulla fine dei dati\n offsetPx: Math.max(0, totalMs * targetPxPerMs - canvasSize.w + 40),\n };\n setZoomLevel('week');\n needsRedrawRef.current = true;\n }, [markers, timeRange]);\n\n // ============================================================================\n // Gestione resize del contenitore (ResizeObserver)\n // ============================================================================\n\n useLayoutEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const observer = new ResizeObserver(entries => {\n for (const entry of entries) {\n const { width } = entry.contentRect;\n if (width > 0) {\n setCanvasSize(prev => ({ ...prev, w: Math.floor(width) }));\n needsRedrawRef.current = true;\n }\n }\n });\n\n observer.observe(container);\n return () => observer.disconnect();\n }, []);\n\n // ============================================================================\n // Hit test: trova il marker pi\u00F9 vicino a una posizione X\n // ============================================================================\n\n const hitTestMarker = useCallback((mouseX: number): CanvasMarker | null => {\n const vp = viewportRef.current;\n const pxPerDay = vp.pxPerMs * 86_400_000;\n const tolerance = Math.max(pxPerDay * 0.6, 4);\n\n let best: CanvasMarker | null = null;\n let bestDist = Infinity;\n\n for (const marker of markers) {\n const cx = epochToX(marker.epochMs) + pxPerDay / 2;\n const dist = Math.abs(mouseX - cx);\n if (dist < tolerance && dist < bestDist) {\n best = marker;\n bestDist = dist;\n }\n }\n return best;\n }, [markers, epochToX]);\n\n // ============================================================================\n // Gestori eventi mouse (canvas principale)\n // ============================================================================\n\n const handleMouseMove = useCallback((e: React.MouseEvent<HTMLCanvasElement>) => {\n const rect = canvasRef.current!.getBoundingClientRect();\n const mouseX = e.clientX - rect.left;\n const mouseY = e.clientY - rect.top;\n\n if (isDraggingRef.current) {\n // Pan orizzontale\n const delta = dragStartXRef.current - mouseX;\n viewportRef.current.offsetPx = Math.max(0, dragOffsetRef.current + delta);\n needsRedrawRef.current = true;\n return;\n }\n\n if (isSelectingRef.current) {\n // Selezione range (Shift + drag)\n const fromEpoch = xToEpoch(selectStartXRef.current);\n const toEpoch = xToEpoch(mouseX);\n setSelectedRange({\n fromMs: Math.min(fromEpoch, toEpoch),\n toMs: Math.max(fromEpoch, toEpoch),\n });\n needsRedrawRef.current = true;\n return;\n }\n\n // Hover tooltip\n const hit = hitTestMarker(mouseX);\n if (hit) {\n setTooltip({ x: mouseX, y: mouseY, marker: hit });\n } else {\n setTooltip(null);\n }\n }, [hitTestMarker, xToEpoch]);\n\n const handleMouseDown = useCallback((e: React.MouseEvent<HTMLCanvasElement>) => {\n const rect = canvasRef.current!.getBoundingClientRect();\n const mouseX = e.clientX - rect.left;\n\n if (e.shiftKey) {\n // Inizio selezione range\n isSelectingRef.current = true;\n selectStartXRef.current = mouseX;\n setSelectedRange(null);\n } else {\n // Inizio pan\n isDraggingRef.current = true;\n dragStartXRef.current = mouseX;\n dragOffsetRef.current = viewportRef.current.offsetPx;\n }\n canvasRef.current!.style.cursor = e.shiftKey ? 'crosshair' : 'grabbing';\n }, []);\n\n const handleMouseUp = useCallback((e: React.MouseEvent<HTMLCanvasElement>) => {\n if (isSelectingRef.current) {\n isSelectingRef.current = false;\n // Mantieni la selezione se abbastanza larga (>10px)\n const rect = canvasRef.current!.getBoundingClientRect();\n const mouseX = e.clientX - rect.left;\n if (Math.abs(mouseX - selectStartXRef.current) < 10) {\n setSelectedRange(null);\n }\n }\n isDraggingRef.current = false;\n canvasRef.current!.style.cursor = 'grab';\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n isDraggingRef.current = false;\n isSelectingRef.current = false;\n setTooltip(null);\n if (canvasRef.current) canvasRef.current.style.cursor = 'grab';\n }, []);\n\n const handleClick = useCallback((e: React.MouseEvent<HTMLCanvasElement>) => {\n const rect = canvasRef.current!.getBoundingClientRect();\n const mouseX = e.clientX - rect.left;\n const hit = hitTestMarker(mouseX);\n\n if (hit && hit.projects.length > 0) {\n // Naviga nel feed usando il primo progetto del marker\n onNavigate(hit.projects[0], 0);\n }\n }, [hitTestMarker, onNavigate]);\n\n // ============================================================================\n // Scroll wheel: zoom centrato sul cursore\n // ============================================================================\n\n const handleWheel = useCallback((e: React.WheelEvent<HTMLCanvasElement>) => {\n e.preventDefault();\n const rect = canvasRef.current!.getBoundingClientRect();\n const mouseX = e.clientX - rect.left;\n const mouseEpoch = xToEpoch(mouseX);\n\n const vp = viewportRef.current;\n const factor = e.deltaY < 0 ? ZOOM_FACTOR : 1 / ZOOM_FACTOR;\n const newPxPerMs = Math.max(\n ZOOM_PRESETS.month * 0.5,\n Math.min(ZOOM_PRESETS.day * 4, vp.pxPerMs * factor)\n );\n\n // Mantieni il mouse ancorato durante lo zoom\n vp.offsetPx = (mouseEpoch - timeRange.minMs) * newPxPerMs - mouseX;\n vp.pxPerMs = newPxPerMs;\n vp.offsetPx = Math.max(0, vp.offsetPx);\n\n const newZoom = computeZoomLevel(newPxPerMs);\n setZoomLevel(newZoom);\n scheduleRedraw();\n }, [xToEpoch, timeRange.minMs, scheduleRedraw]);\n\n // ============================================================================\n // Pulsanti zoom\n // ============================================================================\n\n const zoomIn = useCallback(() => {\n const vp = viewportRef.current;\n const centerEpoch = xToEpoch(canvasSize.w / 2);\n const newPxPerMs = Math.min(ZOOM_PRESETS.day * 4, vp.pxPerMs * ZOOM_FACTOR);\n vp.offsetPx = (centerEpoch - timeRange.minMs) * newPxPerMs - canvasSize.w / 2;\n vp.pxPerMs = newPxPerMs;\n vp.offsetPx = Math.max(0, vp.offsetPx);\n setZoomLevel(computeZoomLevel(newPxPerMs));\n needsRedrawRef.current = true;\n }, [xToEpoch, canvasSize.w, timeRange.minMs]);\n\n const zoomOut = useCallback(() => {\n const vp = viewportRef.current;\n const centerEpoch = xToEpoch(canvasSize.w / 2);\n const newPxPerMs = Math.max(ZOOM_PRESETS.month * 0.5, vp.pxPerMs / ZOOM_FACTOR);\n vp.offsetPx = (centerEpoch - timeRange.minMs) * newPxPerMs - canvasSize.w / 2;\n vp.pxPerMs = newPxPerMs;\n vp.offsetPx = Math.max(0, vp.offsetPx);\n setZoomLevel(computeZoomLevel(newPxPerMs));\n needsRedrawRef.current = true;\n }, [xToEpoch, canvasSize.w, timeRange.minMs]);\n\n const zoomToLevel = useCallback((level: TimelineZoomLevel) => {\n const vp = viewportRef.current;\n const centerEpoch = xToEpoch(canvasSize.w / 2);\n const newPxPerMs = ZOOM_PRESETS[level];\n vp.offsetPx = (centerEpoch - timeRange.minMs) * newPxPerMs - canvasSize.w / 2;\n vp.pxPerMs = newPxPerMs;\n vp.offsetPx = Math.max(0, vp.offsetPx);\n setZoomLevel(level);\n needsRedrawRef.current = true;\n }, [xToEpoch, canvasSize.w, timeRange.minMs]);\n\n /** Cancella la selezione del range */\n const clearSelection = useCallback(() => {\n setSelectedRange(null);\n needsRedrawRef.current = true;\n }, []);\n\n // ============================================================================\n // Click sulla overview: salta al punto corrispondente\n // ============================================================================\n\n const handleOverviewClick = useCallback((e: React.MouseEvent<HTMLCanvasElement>) => {\n const rect = overviewRef.current!.getBoundingClientRect();\n const mouseX = e.clientX - rect.left;\n const totalMs = timeRange.maxMs - timeRange.minMs;\n if (totalMs <= 0) return;\n\n const clickedMs = timeRange.minMs + (mouseX / canvasSize.w) * totalMs;\n const vp = viewportRef.current;\n // Centra la viewport sul punto cliccato\n vp.offsetPx = Math.max(0, (clickedMs - timeRange.minMs) * vp.pxPerMs - canvasSize.w / 2);\n needsRedrawRef.current = true;\n }, [timeRange, canvasSize.w]);\n\n // ============================================================================\n // Render\n // ============================================================================\n\n return (\n <div className=\"space-y-4\">\n {/* Toolbar */}\n <div className=\"flex items-center gap-3 flex-wrap\">\n {/* Titolo e range dati */}\n <div className=\"flex-1 min-w-0\">\n <h2 className=\"text-sm font-semibold text-zinc-200\">Timeline Interattiva</h2>\n <p className=\"text-[11px] text-zinc-500 mt-0.5\">\n {markers.length} giorni con attivit\u00E0\n {' \u00B7 '}\n {formatTooltipDate(timeRange.minMs)} \u2013 {formatTooltipDate(timeRange.maxMs)}\n </p>\n </div>\n\n {/* Pulsanti livello zoom */}\n <div className=\"flex items-center gap-1 rounded-lg bg-surface-2 border border-border p-0.5\">\n {(['day', 'week', 'month'] as TimelineZoomLevel[]).map(level => (\n <button\n key={level}\n onClick={() => zoomToLevel(level)}\n className={`px-2.5 py-1.5 rounded-md text-xs font-medium transition-all ${\n zoomLevel === level\n ? 'bg-surface-3 text-zinc-100 shadow-sm'\n : 'text-zinc-500 hover:text-zinc-300'\n }`}\n aria-label={`Zoom ${level}`}\n >\n {level === 'day' ? 'Giorno' : level === 'week' ? 'Settimana' : 'Mese'}\n </button>\n ))}\n </div>\n\n {/* Zoom +/- */}\n <div className=\"flex items-center gap-1\">\n <button\n onClick={zoomOut}\n className=\"w-7 h-7 rounded-md bg-surface-2 border border-border text-zinc-400 hover:text-zinc-100 hover:bg-surface-3 transition-all flex items-center justify-center\"\n aria-label=\"Riduci zoom\"\n title=\"Riduci zoom (o scroll verso il basso)\"\n >\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\">\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\n </svg>\n </button>\n <button\n onClick={zoomIn}\n className=\"w-7 h-7 rounded-md bg-surface-2 border border-border text-zinc-400 hover:text-zinc-100 hover:bg-surface-3 transition-all flex items-center justify-center\"\n aria-label=\"Aumenta zoom\"\n title=\"Aumenta zoom (o scroll verso l'alto)\"\n >\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\">\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" /><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\n </svg>\n </button>\n </div>\n\n {/* Pulsante cancella selezione */}\n {selectedRange && (\n <button\n onClick={clearSelection}\n className=\"flex items-center gap-1.5 text-xs text-zinc-400 hover:text-zinc-200 px-2.5 py-1.5 rounded-lg hover:bg-surface-2 border border-border transition-all\"\n aria-label=\"Cancella selezione\"\n >\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n Cancella selezione\n </button>\n )}\n </div>\n\n {/* Istruzioni uso */}\n <p className=\"text-[10px] text-zinc-600\">\n Trascina per navigare \u00B7 Scroll per zoom \u00B7 Shift+trascina per selezionare un intervallo \u00B7 Click su una barra per navigare al feed\n </p>\n\n {/* Canvas principale */}\n <div\n ref={containerRef}\n className=\"relative bg-surface-1 border border-border rounded-lg overflow-hidden\"\n style={{ height: canvasSize.h + 'px' }}\n >\n <canvas\n ref={canvasRef}\n width={canvasSize.w}\n height={canvasSize.h}\n style={{ cursor: 'grab', display: 'block', width: '100%', height: '100%' }}\n onMouseMove={handleMouseMove}\n onMouseDown={handleMouseDown}\n onMouseUp={handleMouseUp}\n onMouseLeave={handleMouseLeave}\n onClick={handleClick}\n onWheel={handleWheel}\n aria-label=\"Timeline interattiva delle osservazioni\"\n role=\"img\"\n />\n\n {/* Tooltip hover */}\n {tooltip && (\n <TooltipOverlay\n x={tooltip.x}\n y={tooltip.y}\n marker={tooltip.marker}\n canvasW={canvasSize.w}\n canvasH={canvasSize.h}\n />\n )}\n </div>\n\n {/* Overview (mini-mappa) */}\n <div className=\"relative bg-surface-2 border border-border rounded-lg overflow-hidden\" style={{ height: OVERVIEW_H + 'px' }}>\n <canvas\n ref={overviewRef}\n width={canvasSize.w}\n height={OVERVIEW_H}\n style={{ display: 'block', width: '100%', height: '100%', cursor: 'pointer' }}\n onClick={handleOverviewClick}\n title=\"Clicca per spostarti nella timeline\"\n aria-label=\"Mini-mappa della timeline (clicca per navigare)\"\n />\n <div className=\"absolute top-1 right-2 text-[9px] text-zinc-700 pointer-events-none select-none\">\n panoramica\n </div>\n </div>\n\n {/* Legenda range selezionato */}\n {selectedRange && (\n <div className=\"flex items-center gap-2 px-3 py-2 bg-accent-violet/10 border border-accent-violet/20 rounded-lg\">\n <div className=\"w-2 h-2 rounded-full bg-accent-violet\" />\n <span className=\"text-xs text-zinc-300\">\n Selezione: {formatTooltipDate(selectedRange.fromMs)} \u2013 {formatTooltipDate(selectedRange.toMs)}\n </span>\n <span className=\"text-xs text-zinc-500 ml-auto\">\n {markers.filter(m => m.epochMs >= selectedRange.fromMs && m.epochMs <= selectedRange.toMs)\n .reduce((sum, m) => sum + m.count, 0)} osservazioni\n </span>\n </div>\n )}\n\n {/* Legenda tipi (se zoom granulare) */}\n {zoomLevel === 'day' && (\n <TypeLegend />\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Tooltip componente\n// ============================================================================\n\ninterface TooltipOverlayProps {\n x: number;\n y: number;\n marker: CanvasMarker;\n canvasW: number;\n canvasH: number;\n}\n\nfunction TooltipOverlay({ x, y, marker, canvasW, canvasH }: TooltipOverlayProps) {\n // Posiziona il tooltip evitando overflow dei bordi\n const TIP_W = 200;\n const TIP_H = 80;\n const offsetX = x + TIP_W + 12 > canvasW ? x - TIP_W - 8 : x + 12;\n const offsetY = y + TIP_H + 12 > canvasH ? y - TIP_H - 8 : y - 8;\n\n return (\n <div\n className=\"absolute pointer-events-none z-20 bg-surface-3 border border-border rounded-lg px-3 py-2.5 shadow-lg\"\n style={{ left: offsetX, top: offsetY, width: TIP_W }}\n >\n <div className=\"text-[11px] font-mono text-zinc-400 mb-1\">\n {new Date(marker.epochMs).toLocaleDateString('en-US', {\n weekday: 'short', month: 'short', day: 'numeric', year: 'numeric', timeZone: 'UTC'\n })}\n </div>\n <div className=\"text-sm font-bold text-accent-violet tabular-nums\">\n {marker.count} <span className=\"text-xs font-normal text-zinc-400\">osservazioni</span>\n </div>\n {marker.projects.length > 0 && (\n <div className=\"text-[10px] text-zinc-600 mt-1 truncate\">\n {marker.projects.slice(0, 3).join(', ')}\n {marker.projects.length > 3 && ` +${marker.projects.length - 3}`}\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// Legenda tipi (visibile solo a zoom giornaliero)\n// ============================================================================\n\nfunction TypeLegend() {\n const entries = [\n { type: 'file-write', label: 'Scrittura' },\n { type: 'file-read', label: 'Lettura' },\n { type: 'command', label: 'Comando' },\n { type: 'research', label: 'Ricerca' },\n { type: 'delegation', label: 'Delega' },\n { type: 'tool-use', label: 'Tool' },\n ];\n\n return (\n <div className=\"flex flex-wrap gap-3\">\n {entries.map(({ type, label }) => (\n <div key={type} className=\"flex items-center gap-1.5\">\n <div\n className=\"w-2.5 h-2.5 rounded-sm\"\n style={{ backgroundColor: TYPE_COLORS[type] ?? '#71717A' }}\n />\n <span className=\"text-[10px] text-zinc-500\">{label}</span>\n </div>\n ))}\n </div>\n );\n}\n", "/**\n * DiffViewer \u2014 Componente side-by-side per confronto osservazioni e sommari (issue #22)\n *\n * Funzionalita:\n * - Visualizzazione side-by-side con scorrimento sincronizzato\n * - Evidenziazione colorata: verde aggiunte, rosso rimozioni, grigio invariate\n * - Numerazione riga su entrambi i pannelli\n * - Navigazione \"Modifica precedente\" / \"Prossima modifica\"\n * - Syntax highlighting base per JS/TS, Python, CSS (solo span, niente librerie)\n * - Selettore comparazione con ricerca\n */\n\nimport React, {\n useRef,\n useCallback,\n useState,\n useMemo,\n} from 'react';\nimport type { DiffChunk, DiffSelection, DiffItemKind, Observation, Summary } from '../types';\nimport { computeDiff, countDiffStats, getChangeIndices } from '../utils/diff';\nimport { timeAgo } from '../utils/format';\n\n// ============================================================================\n// Syntax highlighting \u2014 nessuna dipendenza esterna\n// ============================================================================\n\n/** Parole chiave JS/TS supportate per l'highlighting */\nconst JS_KEYWORDS = new Set([\n 'function', 'const', 'let', 'var', 'if', 'else', 'return',\n 'import', 'export', 'class', 'for', 'while', 'do', 'switch',\n 'case', 'break', 'continue', 'new', 'typeof', 'instanceof',\n 'try', 'catch', 'finally', 'throw', 'async', 'await', 'from',\n 'default', 'extends', 'interface', 'type', 'enum',\n]);\n\n/** Parole chiave Python supportate per l'highlighting */\nconst PY_KEYWORDS = new Set([\n 'def', 'class', 'import', 'from', 'if', 'else', 'elif', 'return',\n 'for', 'while', 'in', 'not', 'and', 'or', 'True', 'False', 'None',\n 'with', 'as', 'try', 'except', 'finally', 'raise', 'pass', 'yield',\n 'lambda', 'global', 'nonlocal', 'del', 'assert',\n]);\n\n/**\n * Applica syntax highlighting base a una singola riga di testo.\n * Restituisce un array di elementi React con classi colore appropriate.\n */\nfunction highlightLine(line: string): React.ReactNode[] {\n if (!line.trim()) return [<span key=\"empty\">{line}</span>];\n\n const nodes: React.ReactNode[] = [];\n let keyIdx = 0;\n\n // Commento di riga: // o # (tutto il resto della riga)\n const commentMatch = line.match(/^(.*?)(\\/\\/.*|#.*)$/);\n if (commentMatch) {\n const before = commentMatch[1];\n const comment = commentMatch[2];\n if (before) {\n nodes.push(...highlightTokens(before, keyIdx));\n keyIdx += 100;\n }\n nodes.push(\n <span key={`comment-${keyIdx}`} className=\"text-zinc-500 italic\">{comment}</span>\n );\n return nodes;\n }\n\n return highlightTokens(line, keyIdx);\n}\n\n/**\n * Tokenizza una stringa e applica colori a keywords e stringhe.\n */\nfunction highlightTokens(text: string, baseKey: number): React.ReactNode[] {\n const nodes: React.ReactNode[] = [];\n // Regex che separa: stringhe quotate, parole, caratteri rimanenti\n const tokenRegex = /(\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|`(?:[^`\\\\]|\\\\.)*`|\\b\\w+\\b|[^\\w\"'`]+)/g;\n let match: RegExpExecArray | null;\n let idx = baseKey;\n\n while ((match = tokenRegex.exec(text)) !== null) {\n const token = match[0];\n idx++;\n\n // Stringa quotata (singola, doppia, backtick)\n if (/^[\"'`]/.test(token)) {\n nodes.push(<span key={`str-${idx}`} className=\"text-amber-400/90\">{token}</span>);\n continue;\n }\n\n // Numero intero o decimale\n if (/^\\d+(\\.\\d+)?$/.test(token)) {\n nodes.push(<span key={`num-${idx}`} className=\"text-cyan-400/80\">{token}</span>);\n continue;\n }\n\n // Keyword JS/TS\n if (JS_KEYWORDS.has(token)) {\n nodes.push(<span key={`kw-${idx}`} className=\"text-violet-400 font-semibold\">{token}</span>);\n continue;\n }\n\n // Keyword Python\n if (PY_KEYWORDS.has(token)) {\n nodes.push(<span key={`pykw-${idx}`} className=\"text-blue-400 font-semibold\">{token}</span>);\n continue;\n }\n\n // Testo normale\n nodes.push(<span key={`tok-${idx}`}>{token}</span>);\n }\n\n return nodes;\n}\n\n// ============================================================================\n// DiffLine \u2014 singola riga nei pannelli\n// ============================================================================\n\ninterface DiffLineProps {\n /** Testo della riga */\n line: string;\n /** Numero di riga da mostrare (null = riga placeholder vuota) */\n lineNumber: number | null;\n /** Tipo del blocco cui appartiene la riga */\n type: DiffChunk['type'];\n /** Se abilitare syntax highlighting */\n highlight: boolean;\n}\n\nfunction DiffLine({ line, lineNumber, type, highlight }: DiffLineProps) {\n // Classi colore per sfondo e bordo sinistro in base al tipo operazione\n const bgClass =\n type === 'add' ? 'bg-emerald-500/10 border-l-2 border-emerald-500/60' :\n type === 'remove' ? 'bg-rose-500/10 border-l-2 border-rose-500/60' :\n 'border-l-2 border-transparent';\n\n const numBgClass =\n type === 'add' ? 'text-emerald-500/70 bg-emerald-500/5' :\n type === 'remove' ? 'text-rose-500/70 bg-rose-500/5' :\n 'text-zinc-600 bg-surface-2';\n\n const prefixChar = type === 'add' ? '+' : type === 'remove' ? '-' : ' ';\n const prefixClass =\n type === 'add' ? 'text-emerald-500 font-bold select-none' :\n type === 'remove' ? 'text-rose-500 font-bold select-none' :\n 'text-zinc-700 select-none';\n\n return (\n <div className={`flex items-stretch min-h-[22px] font-mono text-[12px] leading-relaxed ${bgClass}`}>\n {/* Numero di riga */}\n <div className={`w-10 flex-shrink-0 text-right pr-2 pt-px select-none text-[11px] tabular-nums ${numBgClass}`}>\n {lineNumber !== null ? lineNumber : ''}\n </div>\n {/* Carattere prefisso +/- */}\n <div className={`w-4 flex-shrink-0 text-center pt-px ${prefixClass}`}>\n {prefixChar}\n </div>\n {/* Contenuto riga con highlighting opzionale */}\n <div className=\"flex-1 pl-1 pr-2 pt-px overflow-x-hidden whitespace-pre-wrap break-all\">\n {highlight ? highlightLine(line) : <span>{line}</span>}\n </div>\n </div>\n );\n}\n\n// ============================================================================\n// ItemSelector \u2014 modal per scegliere quale osservazione/sommario confrontare\n// ============================================================================\n\ninterface SelectorProps {\n /** Etichetta del pannello (\"Prima\" | \"Dopo\") */\n label: string;\n observations: Observation[];\n summaries: Summary[];\n selected: DiffSelection | null;\n onSelect: (sel: DiffSelection) => void;\n getDisplayName: (p: string) => string;\n}\n\nfunction ItemSelector({ label, observations, summaries, selected, onSelect, getDisplayName }: SelectorProps) {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState('');\n const [kind, setKind] = useState<DiffItemKind>('observation');\n\n const filteredObs = useMemo(() => {\n const q = search.toLowerCase();\n return !q ? observations : observations.filter(o =>\n o.title.toLowerCase().includes(q) ||\n o.project.toLowerCase().includes(q) ||\n (o.narrative || '').toLowerCase().includes(q)\n );\n }, [observations, search]);\n\n const filteredSum = useMemo(() => {\n const q = search.toLowerCase();\n return !q ? summaries : summaries.filter(s =>\n (s.request || '').toLowerCase().includes(q) ||\n s.project.toLowerCase().includes(q)\n );\n }, [summaries, search]);\n\n /** Estrae il testo confrontabile da un'osservazione */\n function obsToContent(o: Observation): string {\n return [o.narrative, o.text, o.title].filter(Boolean).join('\\n\\n');\n }\n\n /** Estrae il testo confrontabile da un sommario */\n function sumToContent(s: Summary): string {\n return [\n s.request && `Richiesta: ${s.request}`,\n s.investigated && `Analizzato: ${s.investigated}`,\n s.learned && `Imparato: ${s.learned}`,\n s.completed && `Completato: ${s.completed}`,\n s.next_steps && `Prossimi passi: ${s.next_steps}`,\n s.notes && `Note: ${s.notes}`,\n ].filter(Boolean).join('\\n\\n');\n }\n\n return (\n <div className=\"flex-1 min-w-0\">\n {/* Bottone apertura selettore */}\n <button\n onClick={() => setOpen(true)}\n className=\"w-full flex items-center gap-2 px-3 py-2 rounded-lg bg-surface-2 border border-border hover:border-border-hover hover:bg-surface-3 transition-all text-left\"\n >\n <span className=\"text-[11px] font-semibold text-zinc-500 uppercase tracking-wide flex-shrink-0\">{label}</span>\n {selected ? (\n <span className=\"flex-1 min-w-0 text-xs text-zinc-200 truncate\">{selected.title}</span>\n ) : (\n <span className=\"flex-1 text-xs text-zinc-500 italic\">Seleziona elemento...</span>\n )}\n <svg className=\"w-3.5 h-3.5 text-zinc-500 flex-shrink-0\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </button>\n\n {/* Modal di selezione */}\n {open && (\n <div\n className=\"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/60\"\n onClick={() => setOpen(false)}\n >\n <div\n className=\"bg-surface-1 border border-border rounded-xl shadow-2xl w-full max-w-lg max-h-[80vh] flex flex-col overflow-hidden\"\n onClick={e => e.stopPropagation()}\n >\n {/* Header modal */}\n <div className=\"flex items-center gap-3 px-4 py-3 border-b border-border\">\n <span className=\"text-sm font-semibold text-zinc-200\">Seleziona {label}</span>\n <div className=\"ml-auto flex items-center gap-1 rounded-lg bg-surface-2 border border-border p-0.5\">\n <button\n onClick={() => setKind('observation')}\n className={`px-2.5 py-1 rounded-md text-xs font-medium transition-all ${kind === 'observation' ? 'bg-surface-3 text-zinc-100' : 'text-zinc-500 hover:text-zinc-300'}`}\n >\n Osservazioni\n </button>\n <button\n onClick={() => setKind('summary')}\n className={`px-2.5 py-1 rounded-md text-xs font-medium transition-all ${kind === 'summary' ? 'bg-surface-3 text-zinc-100' : 'text-zinc-500 hover:text-zinc-300'}`}\n >\n Sommari\n </button>\n </div>\n <button onClick={() => setOpen(false)} className=\"text-zinc-500 hover:text-zinc-200 transition-colors ml-1\">\n <svg className=\"w-4 h-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n </div>\n\n {/* Campo ricerca */}\n <div className=\"px-4 py-2 border-b border-border\">\n <input\n type=\"text\"\n value={search}\n onChange={e => setSearch(e.target.value)}\n placeholder=\"Cerca per titolo o progetto...\"\n className=\"w-full px-3 py-1.5 rounded-lg bg-surface-0 border border-border text-sm text-zinc-200 placeholder:text-zinc-600 focus:outline-none focus:border-accent-violet transition-colors\"\n autoFocus\n />\n </div>\n\n {/* Lista elementi filtrati */}\n <div className=\"flex-1 overflow-y-auto p-2 space-y-1\">\n {kind === 'observation' ? (\n filteredObs.length === 0\n ? <p className=\"text-center text-sm text-zinc-500 py-8\">Nessuna osservazione trovata</p>\n : filteredObs.map(obs => (\n <button\n key={obs.id}\n onClick={() => {\n onSelect({\n kind: 'observation',\n id: obs.id,\n title: obs.title || `Osservazione #${obs.id}`,\n date: obs.created_at,\n project: obs.project,\n content: obsToContent(obs),\n });\n setOpen(false);\n }}\n className=\"w-full flex items-start gap-3 px-3 py-2 rounded-lg hover:bg-surface-2 transition-colors text-left\"\n >\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-xs font-medium text-zinc-300 truncate\">{obs.title || `Osservazione #${obs.id}`}</p>\n <div className=\"flex items-center gap-2 mt-0.5\">\n <span className=\"text-[11px] text-accent-violet\">{getDisplayName(obs.project)}</span>\n <span className=\"text-[11px] text-zinc-600\">{timeAgo(obs.created_at_epoch)}</span>\n <span className=\"text-[11px] text-zinc-700 font-mono\">#{obs.id}</span>\n </div>\n </div>\n </button>\n ))\n ) : (\n filteredSum.length === 0\n ? <p className=\"text-center text-sm text-zinc-500 py-8\">Nessun sommario trovato</p>\n : filteredSum.map(sum => (\n <button\n key={sum.id}\n onClick={() => {\n onSelect({\n kind: 'summary',\n id: sum.id,\n title: sum.request || `Sommario #${sum.id}`,\n date: sum.created_at,\n project: sum.project,\n content: sumToContent(sum),\n });\n setOpen(false);\n }}\n className=\"w-full flex items-start gap-3 px-3 py-2 rounded-lg hover:bg-surface-2 transition-colors text-left\"\n >\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-xs font-medium text-zinc-300 truncate\">{sum.request || `Sommario #${sum.id}`}</p>\n <div className=\"flex items-center gap-2 mt-0.5\">\n <span className=\"text-[11px] text-accent-violet\">{getDisplayName(sum.project)}</span>\n <span className=\"text-[11px] text-zinc-600\">{timeAgo(sum.created_at_epoch)}</span>\n </div>\n </div>\n </button>\n ))\n )}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// DiffViewer \u2014 componente principale esportato\n// ============================================================================\n\nexport interface DiffViewerProps {\n /** Lista osservazioni disponibili per la selezione */\n observations: Observation[];\n /** Lista sommari disponibili per la selezione */\n summaries: Summary[];\n /** Funzione display name progetto */\n getDisplayName: (p: string) => string;\n /** Selezione iniziale pannello sinistro (opzionale, pre-popola dal Feed) */\n initialLeft?: DiffSelection;\n /** Selezione iniziale pannello destro (opzionale) */\n initialRight?: DiffSelection;\n}\n\nexport function DiffViewer({ observations, summaries, getDisplayName, initialLeft, initialRight }: DiffViewerProps) {\n // Elementi selezionati per il confronto\n const [leftSel, setLeftSel] = useState<DiffSelection | null>(initialLeft ?? null);\n const [rightSel, setRightSel] = useState<DiffSelection | null>(initialRight ?? null);\n\n // Toggle syntax highlighting\n const [syntaxHighlight, setSyntaxHighlight] = useState(true);\n\n // Indice modifica corrente per la navigazione\n const [currentChangeIdx, setCurrentChangeIdx] = useState(0);\n\n // Ref pannelli per lo scroll sincronizzato\n const leftPaneRef = useRef<HTMLDivElement>(null);\n const rightPaneRef = useRef<HTMLDivElement>(null);\n const isSyncingRef = useRef(false); // flag anti-loop scorrimento\n\n // Ref per le righe marcate come inizio di una modifica (navigazione)\n const changeRowRefs = useRef<(HTMLDivElement | null)[]>([]);\n\n // \u2500\u2500 Calcola il diff \u2500\u2500\n const chunks = useMemo<DiffChunk[]>(() => {\n if (!leftSel || !rightSel) return [];\n return computeDiff(leftSel.content, rightSel.content);\n }, [leftSel, rightSel]);\n\n const stats = useMemo(() => countDiffStats(chunks), [chunks]);\n const changeIndices = useMemo(() => getChangeIndices(chunks), [chunks]);\n\n // \u2500\u2500 Scroll sincronizzato tra i due pannelli \u2500\u2500\n const syncScroll = useCallback((source: 'left' | 'right') => {\n if (isSyncingRef.current) return;\n isSyncingRef.current = true;\n const srcEl = source === 'left' ? leftPaneRef.current : rightPaneRef.current;\n const dstEl = source === 'left' ? rightPaneRef.current : leftPaneRef.current;\n if (srcEl && dstEl) {\n const ratio = srcEl.scrollTop / (srcEl.scrollHeight - srcEl.clientHeight || 1);\n dstEl.scrollTop = ratio * (dstEl.scrollHeight - dstEl.clientHeight);\n }\n requestAnimationFrame(() => { isSyncingRef.current = false; });\n }, []);\n\n // \u2500\u2500 Navigazione tra le modifiche \u2500\u2500\n const navigateToChange = useCallback((direction: 'prev' | 'next') => {\n if (changeIndices.length === 0) return;\n const newIdx = direction === 'next'\n ? (currentChangeIdx + 1) % changeIndices.length\n : (currentChangeIdx - 1 + changeIndices.length) % changeIndices.length;\n setCurrentChangeIdx(newIdx);\n const rowEl = changeRowRefs.current[newIdx];\n if (rowEl) rowEl.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }, [currentChangeIdx, changeIndices.length]);\n\n // \u2500\u2500 Struttura righe per i pannelli \u2500\u2500\n interface PanelLine {\n line: string;\n lineNumber: number | null;\n type: DiffChunk['type'];\n /** true = prima riga di un blocco non-equal (usata come ancora navigazione) */\n isChangeAnchor: boolean;\n changeAnchorIdx: number; // indice in changeIndices (-1 se non ancora)\n }\n\n const { leftLines, rightLines } = useMemo(() => {\n const left: PanelLine[] = [];\n const right: PanelLine[] = [];\n\n for (let ci = 0; ci < chunks.length; ci++) {\n const chunk = chunks[ci];\n const anchorIdx = changeIndices.indexOf(ci);\n\n if (chunk.type === 'equal') {\n for (let li = 0; li < chunk.lines.length; li++) {\n const ln = chunk.leftStart + li;\n left.push({ line: chunk.lines[li], lineNumber: ln, type: 'equal', isChangeAnchor: false, changeAnchorIdx: -1 });\n right.push({ line: chunk.lines[li], lineNumber: ln, type: 'equal', isChangeAnchor: false, changeAnchorIdx: -1 });\n }\n } else if (chunk.type === 'remove') {\n for (let li = 0; li < chunk.lines.length; li++) {\n const ln = chunk.leftStart + li;\n left.push({ line: chunk.lines[li], lineNumber: ln, type: 'remove', isChangeAnchor: li === 0, changeAnchorIdx: li === 0 ? anchorIdx : -1 });\n right.push({ line: '', lineNumber: null, type: 'equal', isChangeAnchor: false, changeAnchorIdx: -1 });\n }\n } else {\n // type === 'add'\n for (let li = 0; li < chunk.lines.length; li++) {\n const rn = chunk.rightStart + li;\n left.push({ line: '', lineNumber: null, type: 'equal', isChangeAnchor: false, changeAnchorIdx: -1 });\n right.push({ line: chunk.lines[li], lineNumber: rn, type: 'add', isChangeAnchor: li === 0, changeAnchorIdx: li === 0 ? anchorIdx : -1 });\n }\n }\n }\n\n return { leftLines: left, rightLines: right };\n }, [chunks, changeIndices]);\n\n // Badge per tipo elemento\n function kindBadge(kind: DiffItemKind) {\n return kind === 'observation'\n ? <span className=\"text-[10px] font-semibold uppercase tracking-wide px-1.5 py-0.5 rounded bg-emerald-500/15 text-emerald-400\">Osservazione</span>\n : <span className=\"text-[10px] font-semibold uppercase tracking-wide px-1.5 py-0.5 rounded bg-cyan-500/15 text-cyan-400\">Sommario</span>;\n }\n\n // ============================================================================\n // Render\n // ============================================================================\n return (\n <div className=\"flex flex-col h-full gap-4\">\n\n {/* \u2500\u2500 Riga selezione elementi \u2500\u2500 */}\n <div className=\"flex items-center gap-3\">\n <ItemSelector\n label=\"Prima\"\n observations={observations}\n summaries={summaries}\n selected={leftSel}\n onSelect={sel => { setLeftSel(sel); setCurrentChangeIdx(0); }}\n getDisplayName={getDisplayName}\n />\n <div className=\"flex-shrink-0 text-zinc-600\">\n <svg className=\"w-5 h-5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\">\n <path d=\"M5 12h14M12 5l7 7-7 7\" />\n </svg>\n </div>\n <ItemSelector\n label=\"Dopo\"\n observations={observations}\n summaries={summaries}\n selected={rightSel}\n onSelect={sel => { setRightSel(sel); setCurrentChangeIdx(0); }}\n getDisplayName={getDisplayName}\n />\n </div>\n\n {/* \u2500\u2500 Stato iniziale: nessuna selezione \u2500\u2500 */}\n {(!leftSel || !rightSel) && (\n <div className=\"flex-1 flex flex-col items-center justify-center py-20 text-center\">\n <div className=\"w-16 h-16 rounded-2xl bg-surface-2 border border-border flex items-center justify-center mb-5\">\n <svg className=\"w-7 h-7 text-zinc-600\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\">\n <rect x=\"3\" y=\"3\" width=\"8\" height=\"18\" rx=\"1\" /><rect x=\"13\" y=\"3\" width=\"8\" height=\"18\" rx=\"1\" />\n <path d=\"M9 12h6\" />\n </svg>\n </div>\n <p className=\"text-base font-semibold text-zinc-300 mb-2\">Seleziona due elementi</p>\n <p className=\"text-sm text-zinc-500 max-w-xs leading-relaxed\">\n Usa i selettori in alto per scegliere un'osservazione o un sommario da confrontare.\n </p>\n </div>\n )}\n\n {/* \u2500\u2500 Pannello diff vero e proprio \u2500\u2500 */}\n {leftSel && rightSel && (\n <div className=\"flex flex-col flex-1 min-h-0 bg-surface-1 border border-border rounded-xl overflow-hidden\">\n\n {/* Header: metadati + controlli */}\n <div className=\"flex items-center gap-3 px-4 py-3 border-b border-border bg-surface-2 flex-wrap\">\n {/* Info sinistra */}\n <div className=\"flex items-center gap-2 min-w-0\">\n {kindBadge(leftSel.kind)}\n <span className=\"text-xs text-zinc-300 truncate max-w-[160px]\" title={leftSel.title}>{leftSel.title}</span>\n <span className=\"text-[11px] text-zinc-500\">{timeAgo(new Date(leftSel.date).getTime())}</span>\n <span className=\"text-[11px] px-1.5 py-0.5 rounded bg-accent-violet/10 text-accent-violet\">{getDisplayName(leftSel.project)}</span>\n </div>\n\n <svg className=\"w-4 h-4 text-zinc-600 flex-shrink-0\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M5 12h14M12 5l7 7-7 7\" />\n </svg>\n\n {/* Info destra */}\n <div className=\"flex items-center gap-2 min-w-0\">\n {kindBadge(rightSel.kind)}\n <span className=\"text-xs text-zinc-300 truncate max-w-[160px]\" title={rightSel.title}>{rightSel.title}</span>\n <span className=\"text-[11px] text-zinc-500\">{timeAgo(new Date(rightSel.date).getTime())}</span>\n <span className=\"text-[11px] px-1.5 py-0.5 rounded bg-accent-violet/10 text-accent-violet\">{getDisplayName(rightSel.project)}</span>\n </div>\n\n <div className=\"flex-1\" />\n\n {/* Statistiche diff */}\n <div className=\"flex items-center gap-2 text-[12px] font-mono\">\n {stats.added > 0 && <span className=\"text-emerald-400\">+{stats.added}</span>}\n {stats.removed > 0 && <span className=\"text-rose-400\">-{stats.removed}</span>}\n {stats.unchanged > 0 && <span className=\"text-zinc-500\">{stats.unchanged} invariate</span>}\n </div>\n\n {/* Navigazione tra modifiche */}\n {changeIndices.length > 0 && (\n <div className=\"flex items-center gap-1.5\">\n <span className=\"text-[11px] text-zinc-500\">{currentChangeIdx + 1}/{changeIndices.length}</span>\n <button\n onClick={() => navigateToChange('prev')}\n className=\"w-7 h-7 rounded-md bg-surface-0 border border-border text-zinc-400 hover:text-zinc-200 hover:border-border-hover transition-all flex items-center justify-center\"\n title=\"Modifica precedente\"\n aria-label=\"Vai alla modifica precedente\"\n >\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\">\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n </button>\n <button\n onClick={() => navigateToChange('next')}\n className=\"w-7 h-7 rounded-md bg-surface-0 border border-border text-zinc-400 hover:text-zinc-200 hover:border-border-hover transition-all flex items-center justify-center\"\n title=\"Prossima modifica\"\n aria-label=\"Vai alla prossima modifica\"\n >\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\">\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </button>\n </div>\n )}\n\n {/* Toggle syntax highlighting */}\n <button\n onClick={() => setSyntaxHighlight(v => !v)}\n className={`flex items-center gap-1.5 px-2.5 py-1 rounded-md text-[11px] font-medium transition-all border ${\n syntaxHighlight\n ? 'bg-accent-violet/15 border-accent-violet/30 text-accent-violet'\n : 'bg-surface-0 border-border text-zinc-500 hover:text-zinc-300'\n }`}\n title=\"Attiva/disattiva syntax highlighting\"\n >\n <svg className=\"w-3.5 h-3.5\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"m16 18 6-6-6-6M8 6l-6 6 6 6\" />\n </svg>\n Highlight\n </button>\n </div>\n\n {/* Contenuto diff \u2014 nessuna differenza */}\n {leftLines.length === 0 ? (\n <div className=\"flex items-center justify-center py-16\">\n <div className=\"text-center\">\n <div className=\"w-12 h-12 rounded-xl bg-emerald-500/10 border border-emerald-500/20 flex items-center justify-center mx-auto mb-3\">\n <svg className=\"w-6 h-6 text-emerald-400\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n </div>\n <p className=\"text-sm font-semibold text-zinc-300\">Nessuna differenza</p>\n <p className=\"text-xs text-zinc-500 mt-1\">I due elementi hanno lo stesso contenuto.</p>\n </div>\n </div>\n ) : (\n /* Pannelli side-by-side */\n <div className=\"flex flex-1 min-h-0 overflow-hidden\">\n\n {/* Pannello SINISTRO (before) */}\n <div\n ref={leftPaneRef}\n className=\"flex-1 min-w-0 overflow-y-auto overflow-x-auto border-r border-border\"\n onScroll={() => syncScroll('left')}\n aria-label=\"Versione originale\"\n >\n <div className=\"sticky top-0 z-10 px-3 py-1.5 text-[11px] font-semibold text-zinc-400 bg-surface-2 border-b border-border flex items-center gap-1.5\">\n <span className=\"w-2 h-2 rounded-full bg-rose-500\" />\n Prima\n </div>\n {leftLines.map((row, rowIdx) => (\n <div\n key={rowIdx}\n ref={el => {\n if (row.isChangeAnchor && row.changeAnchorIdx !== -1) {\n changeRowRefs.current[row.changeAnchorIdx] = el;\n }\n }}\n >\n <DiffLine\n line={row.line}\n lineNumber={row.lineNumber}\n type={row.type}\n highlight={syntaxHighlight}\n />\n </div>\n ))}\n </div>\n\n {/* Pannello DESTRO (after) */}\n <div\n ref={rightPaneRef}\n className=\"flex-1 min-w-0 overflow-y-auto overflow-x-auto\"\n onScroll={() => syncScroll('right')}\n aria-label=\"Versione aggiornata\"\n >\n <div className=\"sticky top-0 z-10 px-3 py-1.5 text-[11px] font-semibold text-zinc-400 bg-surface-2 border-b border-border flex items-center gap-1.5\">\n <span className=\"w-2 h-2 rounded-full bg-emerald-500\" />\n Dopo\n </div>\n {rightLines.map((row, rowIdx) => (\n <div\n key={rowIdx}\n ref={el => {\n if (row.isChangeAnchor && row.changeAnchorIdx !== -1) {\n // Solo per righe add, l'ancora e' sul pannello destro\n if (!changeRowRefs.current[row.changeAnchorIdx]) {\n changeRowRefs.current[row.changeAnchorIdx] = el;\n }\n }\n }}\n >\n <DiffLine\n line={row.line}\n lineNumber={row.lineNumber}\n type={row.type}\n highlight={syntaxHighlight}\n />\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n", "/**\n * Kiro Memory \u2014 Algoritmo diff basato su LCS (Longest Common Subsequence)\n *\n * Implementazione pura senza dipendenze esterne.\n * Produce un array di DiffChunk compatibile con il componente DiffViewer.\n */\n\nimport type { DiffChunk } from '../types';\n\n// ============================================================================\n// Algoritmo LCS \u2014 programmazione dinamica O(n*m)\n// ============================================================================\n\n/**\n * Calcola la matrice LCS tra due array di stringhe.\n * Restituisce la lunghezza massima di sottosequenza comune per ogni coppia (i,j).\n */\nfunction buildLCSMatrix(a: string[], b: string[]): number[][] {\n const m = a.length;\n const n = b.length;\n // Alloca matrice (m+1) x (n+1) inizializzata a 0\n const dp: number[][] = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));\n\n for (let i = 1; i <= m; i++) {\n for (let j = 1; j <= n; j++) {\n if (a[i - 1] === b[j - 1]) {\n dp[i][j] = dp[i - 1][j - 1] + 1;\n } else {\n dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);\n }\n }\n }\n return dp;\n}\n\n/**\n * Percorre la matrice LCS all'indietro e produce la sequenza di operazioni diff.\n * Operazioni: 'equal' | 'remove' (da sinistra) | 'add' (da destra)\n */\nfunction tracebackLCS(\n dp: number[][],\n a: string[],\n b: string[],\n i: number,\n j: number,\n result: Array<{ op: 'equal' | 'remove' | 'add'; line: string }>\n): void {\n // Caso base: una delle sequenze \u00E8 esaurita\n if (i === 0 && j === 0) return;\n if (i === 0) {\n // Rimangono solo righe di b \u2192 tutte aggiunte\n tracebackLCS(dp, a, b, i, j - 1, result);\n result.push({ op: 'add', line: b[j - 1] });\n return;\n }\n if (j === 0) {\n // Rimangono solo righe di a \u2192 tutte rimosse\n tracebackLCS(dp, a, b, i - 1, j, result);\n result.push({ op: 'remove', line: a[i - 1] });\n return;\n }\n\n if (a[i - 1] === b[j - 1]) {\n // Corrispondenza esatta \u2192 uguale\n tracebackLCS(dp, a, b, i - 1, j - 1, result);\n result.push({ op: 'equal', line: a[i - 1] });\n } else if (dp[i - 1][j] >= dp[i][j - 1]) {\n // Privilegia la rimozione rispetto all'aggiunta\n tracebackLCS(dp, a, b, i - 1, j, result);\n result.push({ op: 'remove', line: a[i - 1] });\n } else {\n tracebackLCS(dp, a, b, i, j - 1, result);\n result.push({ op: 'add', line: b[j - 1] });\n }\n}\n\n// ============================================================================\n// Raggruppamento in DiffChunk\n// ============================================================================\n\n/**\n * Raggruppa operazioni consecutive dello stesso tipo in blocchi (DiffChunk).\n * Calcola i numeri di riga separatamente per il pannello sinistro (before)\n * e destro (after).\n */\nfunction groupIntoChunks(\n ops: Array<{ op: 'equal' | 'remove' | 'add'; line: string }>\n): DiffChunk[] {\n const chunks: DiffChunk[] = [];\n let leftLine = 1; // contatore righe pannello sinistro (before)\n let rightLine = 1; // contatore righe pannello destro (after)\n\n let i = 0;\n while (i < ops.length) {\n const currentOp = ops[i].op;\n const lines: string[] = [];\n const chunkLeftStart = currentOp !== 'add' ? leftLine : -1;\n const chunkRightStart = currentOp !== 'remove' ? rightLine : -1;\n\n // Raccoglie tutte le operazioni consecutive dello stesso tipo\n while (i < ops.length && ops[i].op === currentOp) {\n lines.push(ops[i].line);\n if (currentOp === 'equal') {\n leftLine++;\n rightLine++;\n } else if (currentOp === 'remove') {\n leftLine++;\n } else {\n rightLine++;\n }\n i++;\n }\n\n const type: DiffChunk['type'] =\n currentOp === 'equal' ? 'equal' :\n currentOp === 'remove' ? 'remove' : 'add';\n\n chunks.push({\n type,\n lines,\n leftStart: chunkLeftStart,\n rightStart: chunkRightStart,\n });\n }\n\n return chunks;\n}\n\n// ============================================================================\n// API pubblica\n// ============================================================================\n\n/**\n * Calcola il diff tra due stringhe multi-riga.\n *\n * @param before - Testo originale (pannello sinistro)\n * @param after - Testo modificato (pannello destro)\n * @returns Array di DiffChunk pronto per DiffViewer\n *\n * @example\n * const chunks = computeDiff('const x = 1;\\n', 'const x = 2;\\n');\n */\nexport function computeDiff(before: string, after: string): DiffChunk[] {\n const aLines = before.split('\\n');\n const bLines = after.split('\\n');\n\n // Rimuove l'ultima riga vuota prodotta dal split se la stringa termina con \\n\n if (aLines[aLines.length - 1] === '') aLines.pop();\n if (bLines[bLines.length - 1] === '') bLines.pop();\n\n // Gestisce casi degeneri\n if (aLines.length === 0 && bLines.length === 0) return [];\n if (aLines.length === 0) {\n return [{ type: 'add', lines: bLines, leftStart: -1, rightStart: 1 }];\n }\n if (bLines.length === 0) {\n return [{ type: 'remove', lines: aLines, leftStart: 1, rightStart: -1 }];\n }\n\n // Calcola LCS e traccia il percorso\n const dp = buildLCSMatrix(aLines, bLines);\n const ops: Array<{ op: 'equal' | 'remove' | 'add'; line: string }> = [];\n tracebackLCS(dp, aLines, bLines, aLines.length, bLines.length, ops);\n\n return groupIntoChunks(ops);\n}\n\n/**\n * Conta il numero di linee aggiunte e rimosse in un array di chunk.\n * Utile per visualizzare il riassunto delle modifiche (+X -Y).\n */\nexport function countDiffStats(chunks: DiffChunk[]): { added: number; removed: number; unchanged: number } {\n let added = 0;\n let removed = 0;\n let unchanged = 0;\n for (const chunk of chunks) {\n if (chunk.type === 'add') added += chunk.lines.length;\n else if (chunk.type === 'remove') removed += chunk.lines.length;\n else unchanged += chunk.lines.length;\n }\n return { added, removed, unchanged };\n}\n\n/**\n * Restituisce gli indici dei chunk con modifiche (non 'equal').\n * Usato dai bottoni \"Prossima modifica\" / \"Modifica precedente\".\n */\nexport function getChangeIndices(chunks: DiffChunk[]): number[] {\n return chunks\n .map((c, i) => (c.type !== 'equal' ? i : -1))\n .filter(i => i !== -1);\n}\n", "import { useState, useEffect, useRef, useCallback } from 'react';\nimport { Observation, Summary, UserPrompt } from '../types';\n\ninterface SSEState {\n observations: Observation[];\n summaries: Summary[];\n prompts: UserPrompt[];\n projects: string[];\n isConnected: boolean;\n lastEventTime: number;\n}\n\n/** Fallback polling interval (ms) */\nconst POLL_INTERVAL = 30_000;\n\n/**\n * SSE hook with auto-reconnect, polling fallback and last update timestamp.\n * Single EventSource for the entire app \u2014 other hooks MUST NOT open their own SSE connections.\n */\nexport function useSSE(): SSEState {\n const [state, setState] = useState<SSEState>({\n observations: [],\n summaries: [],\n prompts: [],\n projects: [],\n isConnected: false,\n lastEventTime: 0\n });\n\n const mountedRef = useRef(true);\n\n /** Update the timestamp of the last successful refresh */\n const touchLastEvent = useCallback(() => {\n if (mountedRef.current) {\n setState(prev => ({ ...prev, lastEventTime: Date.now() }));\n }\n }, []);\n\n useEffect(() => {\n mountedRef.current = true;\n let eventSource: EventSource | null = null;\n let retryTimeout: ReturnType<typeof setTimeout> | null = null;\n let pollInterval: ReturnType<typeof setInterval> | null = null;\n let retryCount = 0;\n const MAX_RETRY_DELAY = 30000;\n\n /* \u2500\u2500 Fetch helpers \u2500\u2500 */\n const fetchObservations = async () => {\n try {\n const res = await fetch('/api/observations?limit=50');\n if (res.ok && mountedRef.current) {\n const observations = await res.json();\n setState(prev => ({ ...prev, observations, lastEventTime: Date.now() }));\n }\n } catch (err) {\n console.error('Failed to fetch observations:', err);\n }\n };\n\n const fetchSummaries = async () => {\n try {\n const res = await fetch('/api/summaries?limit=20');\n if (res.ok && mountedRef.current) {\n const summaries = await res.json();\n setState(prev => ({ ...prev, summaries }));\n }\n } catch (err) {\n console.error('Failed to fetch summaries:', err);\n }\n };\n\n const fetchPrompts = async () => {\n try {\n const res = await fetch('/api/prompts?limit=50');\n if (res.ok && mountedRef.current) {\n const prompts = await res.json();\n setState(prev => ({ ...prev, prompts }));\n }\n } catch (err) {\n console.error('Failed to fetch prompts:', err);\n }\n };\n\n const fetchProjects = async () => {\n try {\n const res = await fetch('/api/projects');\n if (res.ok && mountedRef.current) {\n const projects = await res.json();\n setState(prev => ({ ...prev, projects }));\n }\n } catch (err) {\n console.error('Failed to fetch projects:', err);\n }\n };\n\n /** Full re-fetch of all data */\n const fetchAll = () => {\n fetchObservations();\n fetchSummaries();\n fetchPrompts();\n fetchProjects();\n };\n\n /* \u2500\u2500 Handler SSE \u2500\u2500 */\n const onObservation = () => { fetchObservations(); fetchProjects(); };\n const onSummary = () => { fetchSummaries(); };\n const onPrompt = () => { fetchPrompts(); };\n const onSession = () => { fetchProjects(); };\n\n /* \u2500\u2500 Polling fallback: safety net for missed updates \u2500\u2500 */\n const startPolling = () => {\n if (pollInterval) clearInterval(pollInterval);\n pollInterval = setInterval(() => {\n if (mountedRef.current) fetchAll();\n }, POLL_INTERVAL);\n };\n\n /* \u2500\u2500 SSE with exponential backoff \u2500\u2500 */\n let wasConnected = false;\n\n const connect = () => {\n if (!mountedRef.current) return;\n\n eventSource = new EventSource('/events');\n\n eventSource.onopen = () => {\n if (!mountedRef.current) return;\n // If reconnecting, re-fetch all data to recover missed events\n if (wasConnected) {\n fetchAll();\n }\n wasConnected = true;\n retryCount = 0;\n setState(prev => ({ ...prev, isConnected: true, lastEventTime: Date.now() }));\n };\n\n eventSource.onerror = () => {\n if (!mountedRef.current) return;\n setState(prev => ({ ...prev, isConnected: false }));\n\n // Remove listeners before closing to avoid leaks\n if (eventSource) {\n eventSource.removeEventListener('observation-created', onObservation);\n eventSource.removeEventListener('summary-created', onSummary);\n eventSource.removeEventListener('prompt-created', onPrompt);\n eventSource.removeEventListener('session-created', onSession);\n eventSource.close();\n }\n eventSource = null;\n\n const delay = Math.min(1000 * Math.pow(2, retryCount), MAX_RETRY_DELAY);\n retryCount++;\n retryTimeout = setTimeout(connect, delay);\n };\n\n eventSource.addEventListener('observation-created', onObservation);\n eventSource.addEventListener('summary-created', onSummary);\n eventSource.addEventListener('prompt-created', onPrompt);\n eventSource.addEventListener('session-created', onSession);\n };\n\n // Initial fetch of all data\n fetchAll();\n\n // Start SSE connection\n connect();\n\n // Start fallback polling (safety net)\n startPolling();\n\n return () => {\n mountedRef.current = false;\n if (eventSource) {\n eventSource.removeEventListener('observation-created', onObservation);\n eventSource.removeEventListener('summary-created', onSummary);\n eventSource.removeEventListener('prompt-created', onPrompt);\n eventSource.removeEventListener('session-created', onSession);\n eventSource.close();\n }\n if (retryTimeout) clearTimeout(retryTimeout);\n if (pollInterval) clearInterval(pollInterval);\n };\n }, []);\n\n return state;\n}\n", "import { useState, useEffect } from 'react';\nimport { ThemePreference } from '../types';\n\n/**\n * Hook per gestione tema con supporto dark class su <html>.\n * Default: dark mode (per evitare flash di light theme).\n */\nexport function useTheme() {\n const [preference, setPreference] = useState<ThemePreference>('dark');\n const [resolvedTheme, setResolvedTheme] = useState<'light' | 'dark'>('dark');\n\n // Carica preferenza salvata\n useEffect(() => {\n const saved = localStorage.getItem('kiro-memory-theme') as ThemePreference;\n if (saved) {\n setPreference(saved);\n }\n }, []);\n\n // Risolvi tema e applica classe `dark` su <html>\n useEffect(() => {\n let resolved: 'light' | 'dark';\n\n if (preference === 'system') {\n const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n resolved = prefersDark ? 'dark' : 'light';\n } else {\n resolved = preference;\n }\n\n setResolvedTheme(resolved);\n\n // Sincronizza classe dark su <html> per Tailwind\n if (resolved === 'dark') {\n document.documentElement.classList.add('dark');\n } else {\n document.documentElement.classList.remove('dark');\n }\n }, [preference]);\n\n // Listener per cambio tema di sistema\n useEffect(() => {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const handler = (e: MediaQueryListEvent) => {\n if (preference === 'system') {\n const resolved = e.matches ? 'dark' : 'light';\n setResolvedTheme(resolved);\n if (resolved === 'dark') {\n document.documentElement.classList.add('dark');\n } else {\n document.documentElement.classList.remove('dark');\n }\n }\n };\n\n mediaQuery.addEventListener('change', handler);\n return () => mediaQuery.removeEventListener('change', handler);\n }, [preference]);\n\n const setThemePreference = (theme: ThemePreference) => {\n setPreference(theme);\n localStorage.setItem('kiro-memory-theme', theme);\n };\n\n return { preference, resolvedTheme, setThemePreference };\n}\n", "import { useState, useEffect, useCallback } from 'react';\nimport { ProjectAlias } from '../types';\n\ninterface UseProjectAliasesReturn {\n aliases: Record<string, string>;\n getDisplayName: (project: string) => string;\n updateAlias: (project: string, displayName: string) => Promise<void>;\n isLoading: boolean;\n}\n\n/**\n * Hook per gestione alias dei progetti.\n * Mappa project_name \u2192 display_name con fallback al nome originale.\n */\nexport function useProjectAliases(): UseProjectAliasesReturn {\n const [aliases, setAliases] = useState<Record<string, string>>({});\n const [isLoading, setIsLoading] = useState(false);\n\n // Fetch alias dal backend\n useEffect(() => {\n const fetchAliases = async () => {\n try {\n const res = await fetch('/api/project-aliases');\n if (res.ok) {\n const data = await res.json();\n setAliases(data);\n }\n } catch (err) {\n console.error('Failed to fetch project aliases:', err);\n }\n };\n fetchAliases();\n }, []);\n\n // Restituisce display_name o fallback al project_name\n const getDisplayName = useCallback((project: string): string => {\n return aliases[project] || project;\n }, [aliases]);\n\n // Aggiorna un alias\n const updateAlias = useCallback(async (project: string, displayName: string) => {\n setIsLoading(true);\n try {\n const res = await fetch(`/api/project-aliases/${encodeURIComponent(project)}`, {\n method: 'PUT',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ displayName })\n });\n\n if (res.ok) {\n setAliases(prev => ({ ...prev, [project]: displayName }));\n }\n } catch (err) {\n console.error('Failed to update project alias:', err);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n return { aliases, getDisplayName, updateAlias, isLoading };\n}\n", "/**\n * Hook centralizzato per la gestione dei filtri avanzati della sidebar.\n * Usa useReducer per gestire lo stato, sincronizza con l'URL e con localStorage.\n */\n\nimport { useReducer, useEffect, useRef, useCallback, useState } from 'react';\nimport type {\n FilterState,\n FilterAction,\n DateRange,\n DatePreset,\n SavedFilter,\n} from '../types';\n\n// \u2500\u2500 Tipi filtri predefiniti \u2500\u2500\nexport const ALL_TYPES = [\n 'file-write',\n 'file-read',\n 'command',\n 'research',\n 'delegation',\n 'tool-use',\n] as const;\n\nconst SAVED_FILTERS_KEY = 'kiro-memory-saved-filters';\n\n// \u2500\u2500 Stato iniziale \u2500\u2500\nfunction buildInitialState(): FilterState {\n return {\n project: '',\n activeTypes: new Set(ALL_TYPES),\n dateRange: { from: '', to: '' },\n activeConcepts: new Set(),\n searchText: '',\n };\n}\n\n/** Formatta una Date in YYYY-MM-DD */\nfunction formatDate(date: Date): string {\n const y = date.getFullYear();\n const m = String(date.getMonth() + 1).padStart(2, '0');\n const d = String(date.getDate()).padStart(2, '0');\n return `${y}-${m}-${d}`;\n}\n\n/**\n * Crea un DateRange partendo da un preset rapido.\n */\nfunction dateRangeFromPreset(preset: DatePreset): DateRange {\n if (preset === 'all') return { from: '', to: '' };\n\n const now = new Date();\n const toStr = formatDate(now);\n\n if (preset === 'today') {\n return { from: toStr, to: toStr };\n }\n if (preset === 'week') {\n const from = new Date(now);\n from.setDate(now.getDate() - 7);\n return { from: formatDate(from), to: toStr };\n }\n // preset === 'month'\n const from = new Date(now);\n from.setDate(now.getDate() - 30);\n return { from: formatDate(from), to: toStr };\n}\n\n// \u2500\u2500 Reducer \u2500\u2500\nfunction filtersReducer(state: FilterState, action: FilterAction): FilterState {\n switch (action.type) {\n case 'SET_PROJECT':\n return { ...state, project: action.payload };\n\n case 'TOGGLE_TYPE': {\n const next = new Set(state.activeTypes);\n if (next.has(action.payload)) next.delete(action.payload);\n else next.add(action.payload);\n return { ...state, activeTypes: next };\n }\n\n case 'SET_DATE_RANGE':\n return { ...state, dateRange: action.payload };\n\n case 'SET_DATE_PRESET':\n return { ...state, dateRange: dateRangeFromPreset(action.payload) };\n\n case 'TOGGLE_CONCEPT': {\n const next = new Set(state.activeConcepts);\n if (next.has(action.payload)) next.delete(action.payload);\n else next.add(action.payload);\n return { ...state, activeConcepts: next };\n }\n\n case 'SET_SEARCH_TEXT':\n return { ...state, searchText: action.payload };\n\n case 'CLEAR_ALL':\n return buildInitialState();\n\n case 'LOAD_SAVED':\n return {\n ...state,\n project: action.payload.project,\n dateRange: action.payload.dateRange,\n activeTypes: new Set(action.payload.activeTypes),\n activeConcepts: new Set(action.payload.activeConcepts),\n };\n\n default:\n return state;\n }\n}\n\n// \u2500\u2500 Lettura parametri URL \u2500\u2500\nfunction buildStateFromURL(): FilterState {\n const base = buildInitialState();\n\n try {\n const params = new URLSearchParams(window.location.search);\n\n const project = params.get('project');\n if (project !== null) base.project = project;\n\n const q = params.get('q');\n if (q !== null) base.searchText = q;\n\n const from = params.get('from') ?? '';\n const to = params.get('to') ?? '';\n if (from || to) base.dateRange = { from, to };\n\n const typeParam = params.get('types');\n if (typeParam) {\n base.activeTypes = new Set(typeParam.split(',').filter(Boolean));\n }\n\n const conceptsParam = params.get('concepts');\n if (conceptsParam) {\n base.activeConcepts = new Set(conceptsParam.split(',').filter(Boolean));\n }\n } catch {\n // URL malformato: usa i default\n }\n\n return base;\n}\n\n// \u2500\u2500 Scrittura parametri URL \u2500\u2500\nfunction syncStateToURL(state: FilterState): void {\n try {\n const params = new URLSearchParams();\n\n if (state.project) params.set('project', state.project);\n if (state.searchText) params.set('q', state.searchText);\n if (state.dateRange.from) params.set('from', state.dateRange.from);\n if (state.dateRange.to) params.set('to', state.dateRange.to);\n\n // Scrivi i tipi solo se non sono tutti attivi (default)\n if (state.activeTypes.size !== ALL_TYPES.length) {\n params.set('types', Array.from(state.activeTypes).join(','));\n }\n\n // Scrivi i concetti attivi\n if (state.activeConcepts.size > 0) {\n params.set('concepts', Array.from(state.activeConcepts).join(','));\n }\n\n const search = params.toString();\n const newUrl = search\n ? `${window.location.pathname}?${search}`\n : window.location.pathname;\n\n window.history.replaceState(null, '', newUrl);\n } catch {\n // Silenzioso: la sincronizzazione URL \u00E8 best-effort\n }\n}\n\n// \u2500\u2500 Gestione filtri salvati \u2500\u2500\n\n/** Carica i filtri salvati da localStorage */\nexport function loadSavedFilters(): SavedFilter[] {\n try {\n const raw = localStorage.getItem(SAVED_FILTERS_KEY);\n if (!raw) return [];\n return JSON.parse(raw) as SavedFilter[];\n } catch {\n return [];\n }\n}\n\n/** Salva un array di filtri in localStorage */\nfunction persistSavedFilters(filters: SavedFilter[]): void {\n try {\n localStorage.setItem(SAVED_FILTERS_KEY, JSON.stringify(filters));\n } catch {\n // localStorage potrebbe non essere disponibile\n }\n}\n\n/** Genera un nome leggibile per il filtro corrente */\nfunction generateFilterName(state: FilterState): string {\n const parts: string[] = [];\n if (state.project) parts.push(state.project);\n if (state.dateRange.from || state.dateRange.to) {\n const from = state.dateRange.from || '\u2026';\n const to = state.dateRange.to || '\u2026';\n parts.push(`${from} \u2192 ${to}`);\n }\n if (state.activeConcepts.size > 0) {\n parts.push(Array.from(state.activeConcepts).slice(0, 2).join(', '));\n }\n return parts.length > 0 ? parts.join(' \u00B7 ') : 'Filtro generico';\n}\n\n// \u2500\u2500 Interfaccia pubblica \u2500\u2500\n\nexport interface UseFiltersReturn {\n state: FilterState;\n dispatch: React.Dispatch<FilterAction>;\n /** Testo di ricerca con debounce applicato (300ms) */\n debouncedSearchText: string;\n /** true se almeno un filtro \u00E8 attivo rispetto ai default */\n hasActiveFilters: boolean;\n /** Filtri salvati in localStorage */\n savedFilters: SavedFilter[];\n /** Salva il filtro corrente in localStorage */\n saveCurrentFilter: () => void;\n /** Elimina un filtro salvato per ID */\n deleteSavedFilter: (id: string) => void;\n}\n\nexport function useFilters(): UseFiltersReturn {\n // Stato inizializzato con i valori URL se presenti\n const [state, dispatch] = useReducer(filtersReducer, undefined, buildStateFromURL);\n\n // Debounce del testo di ricerca (300ms)\n const [debouncedSearchText, setDebouncedSearchText] = useState(state.searchText);\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(() => {\n setDebouncedSearchText(state.searchText);\n }, 300);\n return () => {\n if (debounceRef.current) clearTimeout(debounceRef.current);\n };\n }, [state.searchText]);\n\n // Sincronizzazione URL ad ogni cambio di stato\n useEffect(() => {\n syncStateToURL(state);\n }, [state]);\n\n // Calcola se ci sono filtri attivi rispetto allo stato di default\n const hasActiveFilters =\n state.project !== '' ||\n state.activeTypes.size !== ALL_TYPES.length ||\n state.dateRange.from !== '' ||\n state.dateRange.to !== '' ||\n state.activeConcepts.size > 0 ||\n state.searchText !== '';\n\n // Filtri salvati \u2014 inizializzati da localStorage\n const [savedFilters, setSavedFilters] = useState<SavedFilter[]>(() => loadSavedFilters());\n\n const saveCurrentFilter = useCallback(() => {\n const newFilter: SavedFilter = {\n id: Date.now().toString(36) + Math.random().toString(36).slice(2, 7),\n name: generateFilterName(state),\n project: state.project,\n dateRange: state.dateRange,\n activeTypes: Array.from(state.activeTypes),\n activeConcepts: Array.from(state.activeConcepts),\n savedAt: Date.now(),\n };\n // Massimo 10 filtri salvati\n const updated = [newFilter, ...savedFilters].slice(0, 10);\n persistSavedFilters(updated);\n setSavedFilters(updated);\n }, [state, savedFilters]);\n\n const deleteSavedFilter = useCallback((id: string) => {\n const updated = savedFilters.filter(f => f.id !== id);\n persistSavedFilters(updated);\n setSavedFilters(updated);\n }, [savedFilters]);\n\n return {\n state,\n dispatch,\n debouncedSearchText,\n hasActiveFilters,\n savedFilters,\n saveCurrentFilter,\n deleteSavedFilter,\n };\n}\n", "export function mergeAndDeduplicateByProject<T extends { id: number; project: string }>(\n liveData: T[],\n paginatedData: T[]\n): T[] {\n const seen = new Set<number>();\n const merged: T[] = [];\n\n // Difesa: se i dati non sono array (es. errore API), ritorna lista vuota\n const live = Array.isArray(liveData) ? liveData : [];\n const paginated = Array.isArray(paginatedData) ? paginatedData : [];\n\n // Add live data first\n for (const item of live) {\n if (!seen.has(item.id)) {\n seen.add(item.id);\n merged.push(item);\n }\n }\n\n // Add paginated data\n for (const item of paginated) {\n if (!seen.has(item.id)) {\n seen.add(item.id);\n merged.push(item);\n }\n }\n\n // Sort by created_at_epoch descending\n return merged.sort((a, b) => {\n const aTime = (a as any).created_at_epoch || 0;\n const bTime = (b as any).created_at_epoch || 0;\n return bTime - aTime;\n });\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["require_react_production_min", "__commonJSMin", "exports", "l", "n", "p", "q", "r", "t", "u", "v", "w", "x", "y", "z", "A", "a", "B", "C", "D", "E", "b", "e", "F", "G", "H", "I", "J", "K", "L", "M", "d", "c", "k", "h", "g", "f", "m", "N", "O", "escape", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "require_react", "__commonJSMin", "exports", "module", "require_scheduler_production_min", "__commonJSMin", "exports", "f", "a", "b", "c", "d", "e", "g", "h", "k", "w", "m", "C", "n", "x", "l", "p", "q", "r", "t", "u", "v", "y", "z", "A", "B", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "require_scheduler", "__commonJSMin", "exports", "module", "require_react_dom_production_min", "__commonJSMin", "exports", "aa", "ca", "p", "a", "b", "c", "da", "ea", "fa", "ha", "ia", "ja", "ka", "la", "ma", "oa", "pa", "d", "qa", "v", "e", "f", "g", "z", "ra", "sa", "ta", "ua", "va", "wa", "ya", "za", "Aa", "Ba", "Ca", "Da", "Ea", "Fa", "Ga", "Ha", "Ia", "Ja", "Ka", "A", "La", "Ma", "Na", "Oa", "l", "h", "k", "Pa", "Qa", "Ra", "Sa", "Ta", "Ua", "Va", "Wa", "Xa", "Ya", "Za", "ab", "bb", "cb", "db", "eb", "fb", "gb", "hb", "ib", "jb", "kb", "lb", "mb", "nb", "ob", "pb", "qb", "rb", "sb", "tb", "ub", "vb", "wb", "xb", "yb", "zb", "Ab", "Bb", "Cb", "Db", "Eb", "Fb", "Gb", "Hb", "Ib", "Jb", "Kb", "Lb", "Mb", "Nb", "Ob", "Pb", "Qb", "Rb", "Sb", "Tb", "Ub", "Vb", "Wb", "Xb", "Yb", "Zb", "$b", "ac", "bc", "cc", "dc", "B", "ec", "fc", "gc", "hc", "ic", "jc", "kc", "lc", "mc", "oc", "nc", "pc", "qc", "rc", "sc", "tc", "uc", "vc", "wc", "xc", "yc", "zc", "Ac", "Bc", "Cc", "C", "Dc", "Ec", "Fc", "Gc", "Hc", "Ic", "Jc", "Kc", "Lc", "Mc", "Nc", "Oc", "Pc", "Qc", "Rc", "Sc", "Tc", "Uc", "Vc", "Wc", "Xc", "Yc", "Zc", "$c", "ad", "bd", "cd", "dd", "ed", "fd", "gd", "hd", "id", "jd", "kd", "ld", "md", "nd", "od", "pd", "qd", "rd", "sd", "td", "ud", "vd", "wd", "xd", "yd", "Ad", "zd", "Bd", "Cd", "Dd", "Ed", "Fd", "Gd", "Hd", "Id", "Jd", "Kd", "Ld", "Md", "Nd", "Od", "Pd", "Qd", "Rd", "Sd", "Td", "Ud", "Vd", "Wd", "Xd", "Yd", "Zd", "$d", "ae", "be", "ce", "de", "ee", "fe", "ge", "he", "ie", "je", "ke", "le", "me", "ne", "oe", "pe", "qe", "re", "se", "te", "ue", "ve", "we", "ye", "ze", "xe", "Ae", "Be", "Ce", "De", "Ee", "Fe", "Ge", "He", "Ie", "Je", "Ke", "Le", "Me", "Ne", "Oe", "Pe", "Qe", "Re", "Se", "Te", "Ue", "Ve", "We", "Xe", "Ye", "Ze", "$e", "af", "bf", "cf", "df", "ef", "ff", "gf", "hf", "jf", "kf", "lf", "mf", "nf", "D", "of", "pf", "qf", "rf", "sf", "n", "t", "J", "x", "w", "u", "F", "tf", "uf", "vf", "wf", "na", "xa", "$a", "ba", "xf", "yf", "zf", "Af", "Bf", "Cf", "Df", "Ef", "Ff", "Gf", "Hf", "Jf", "If", "Kf", "Lf", "Mf", "Nf", "Of", "Pf", "Qf", "Rf", "Sf", "Tf", "Uf", "E", "G", "Vf", "H", "Wf", "Xf", "Yf", "Zf", "$f", "ag", "bg", "cg", "dg", "eg", "fg", "gg", "hg", "ig", "jg", "kg", "lg", "mg", "ng", "og", "pg", "qg", "rg", "sg", "tg", "ug", "vg", "wg", "xg", "yg", "I", "zg", "Ag", "Bg", "Cg", "Dg", "Eg", "Fg", "Gg", "Hg", "Ig", "Jg", "Kg", "Lg", "Mg", "Ng", "Og", "Pg", "Qg", "Rg", "Sg", "Tg", "q", "r", "y", "m", "Ug", "Vg", "Wg", "Xg", "Yg", "Zg", "$g", "ah", "bh", "ch", "dh", "eh", "fh", "gh", "hh", "ih", "jh", "kh", "lh", "mh", "nh", "K", "oh", "ph", "qh", "rh", "sh", "th", "uh", "vh", "wh", "xh", "yh", "zh", "Ah", "Bh", "L", "Ch", "Dh", "Eh", "Fh", "Gh", "Hh", "M", "N", "O", "Ih", "Jh", "Kh", "Lh", "P", "Mh", "Nh", "Oh", "Ph", "Qh", "Rh", "Sh", "Th", "Uh", "Vh", "Wh", "Xh", "Yh", "Zh", "$h", "ai", "bi", "ci", "Q", "di", "ei", "fi", "gi", "hi", "ii", "ji", "ki", "li", "mi", "ni", "oi", "pi", "qi", "ri", "si", "ti", "ui", "vi", "wi", "xi", "yi", "zi", "Ai", "R", "Bi", "Ci", "Di", "Ei", "Fi", "Gi", "Hi", "Ii", "Ji", "Ki", "Li", "Mi", "Ni", "Oi", "Pi", "Qi", "Ri", "Si", "Ti", "Ui", "Vi", "Wi", "Xi", "Yi", "Zi", "$i", "aj", "bj", "cj", "dj", "ej", "fj", "gj", "hj", "ij", "jj", "kj", "lj", "mj", "nj", "oj", "pj", "qj", "rj", "sj", "tj", "uj", "vj", "wj", "xj", "yj", "zj", "Aj", "Bj", "Cj", "Dj", "S", "Ej", "Fj", "T", "Gj", "Hj", "Ij", "Jj", "U", "Kj", "V", "Lj", "W", "Mj", "Nj", "Oj", "Pj", "Qj", "Rj", "Sj", "Tj", "Uj", "Vj", "Wj", "X", "Xj", "Yj", "Zj", "ak", "bk", "ck", "dk", "ek", "fk", "gk", "hk", "ik", "jk", "kk", "lk", "mk", "nk", "ok", "Y", "Z", "pk", "qk", "rk", "sk", "tk", "uk", "vk", "wk", "xk", "yk", "zk", "Ak", "Bk", "Ck", "Dk", "Ek", "Fk", "Gk", "Hk", "Ik", "Jk", "Kk", "Lk", "Mk", "Nk", "Ok", "Pk", "Qk", "Rk", "Sk", "Tk", "Uk", "Vk", "Wk", "Xk", "Yk", "Zk", "$k", "al", "bl", "cl", "dl", "el", "fl", "gl", "hl", "il", "jl", "kl", "ll", "ml", "nl", "ol", "pl", "ql", "rl", "sl", "tl", "ul", "vl", "require_react_dom", "__commonJSMin", "exports", "module", "checkDCE", "err", "require_client", "__commonJSMin", "exports", "m", "i", "import_react", "import_client", "import_react", "import_react", "import_react", "getTypeBadgeClasses", "type", "timeAgo", "epoch", "epochMs", "diff", "formatTokenCount", "tokens", "formatDuration", "minutes", "h", "m", "SOURCE_BADGE", "SearchBar", "onNavigate", "query", "setQuery", "results", "setResults", "isOpen", "setIsOpen", "isSearching", "setIsSearching", "selectedIndex", "setSelectedIndex", "inputRef", "debounceRef", "doSearch", "q", "res", "data", "err", "handleChange", "e", "value", "close", "total", "openSelected", "item", "handler", "prev", "React", "idx", "badge", "getTypeBadgeClasses", "srcBadge", "timeAgo", "formatAgo", "ms", "sec", "min", "Header", "isConnected", "lastEventTime", "resolvedTheme", "themePreference", "onThemeChange", "currentView", "onViewChange", "onMenuToggle", "onSearchNavigate", "cycleTheme", "order", "current", "now", "setNow", "t", "agoText", "isFresh", "React", "SearchBar", "import_react", "TYPE_CONFIG", "PROJECT_COLORS", "getProjectColorByName", "name", "hash", "i", "DATE_PRESETS", "formatSavedAt", "ts", "Sidebar", "projects", "filters", "dispatch", "hasActiveFilters", "savedFilters", "onSaveFilter", "onDeleteSavedFilter", "stats", "getDisplayName", "onRenameProject", "editingProject", "setEditingProject", "editValue", "setEditValue", "renameFeedback", "setRenameFeedback", "projectSearch", "setProjectSearch", "editInputRef", "concepts", "setConcepts", "conceptsLoading", "setConceptsLoading", "filteredProjects", "p", "url", "r", "data", "startEditing", "project", "e", "confirmEdit", "cancelEdit", "handleKeyDown", "getActivePreset", "from", "to", "now", "toStr", "formatDateYMD", "weekFrom", "monthFrom", "d", "y", "m", "day", "activePreset", "React", "pc", "isEditing", "isActive", "initials", "type", "config", "preset", "entry", "sf", "item", "formatTokenCount", "import_react", "TYPE_STYLES", "getTypeStyle", "type", "CONCEPT_COLORS", "basename", "filePath", "stripProjectRoot", "path", "generateNarrative", "obs", "title", "fileName", "cmd", "getDetailLine", "parts", "files", "renderMarkdown", "text", "segment", "i", "React", "part", "j", "Feed", "observations", "summaries", "prompts", "onLoadMore", "isLoading", "hasMore", "getDisplayName", "onCompareObs", "items", "a", "b", "item", "index", "stagger", "ObservationCard", "SummaryCard", "PromptCard", "onCompare", "style", "narrative", "detail", "timeAgo", "concept", "colorClass", "summary", "sections", "s", "label", "value", "color", "prompt", "import_react", "import_react", "POLL_INTERVAL", "useAnalytics", "project", "data", "setData", "mountedRef", "fetchAnalytics", "params", "overviewRes", "timelineRes", "typesRes", "sessionsRes", "overview", "timeline", "typeDistribution", "sessionStats", "err", "prev", "interval", "import_react", "import_react", "POLL_INTERVAL", "useTimeline", "project", "months", "days", "setDays", "isLoading", "setIsLoading", "error", "setError", "mountedRef", "fetchData", "params", "res", "data", "err", "interval", "VIOLET", "DAY_LABELS", "CELL_SIZE", "CELL_GAP", "computeQuantileThresholds", "entries", "activeCounts", "e", "a", "b", "quantile", "q", "idx", "getLevel", "count", "thresholds", "buildGrid", "byDate", "today", "start", "startDow", "columns", "monthLabels", "current", "lastMonth", "col", "colIndex", "dow", "dateStr", "entry", "level", "month", "computeStats", "total", "s", "mostActiveDay", "best", "activeDays", "avgPerActiveDay", "todayStr", "streak", "d", "ds", "ActivityHeatmap", "currentFilter", "onDayClick", "days", "isLoading", "error", "useTimeline", "stats", "tooltip", "setTooltip", "containerRef", "handleContainerLeave", "React", "ColorScaleLegend", "HeatmapGrid", "HeatmapTooltip", "StatsRow", "gridWidth", "gridHeight", "LEFT_OFFSET", "TOP_OFFSET", "totalWidth", "totalHeight", "label", "i", "ci", "cell", "ri", "HeatmapCell", "getCellStyle", "cellStyle", "isClickable", "handleMouseEnter", "containerRect", "cellRect", "x", "y", "handleMouseLeave", "handleClick", "TIP_W", "formattedDate", "containerH", "tipTop", "containerW", "tipLeft", "mostActiveDateLabel", "StatItem", "value", "color", "small", "TYPE_COLORS", "getTypeColor", "type", "Analytics", "currentFilter", "getDisplayName", "onDayClick", "overview", "timeline", "typeDistribution", "sessionStats", "isLoading", "useAnalytics", "React", "ActivityHeatmap", "StatCard", "MiniStat", "TokenEconomicsPanel", "TimelineChart", "TypeDistributionChart", "SessionStatsPanel", "label", "value", "sub", "color", "entries", "hoveredIndex", "setHoveredIndex", "maxCount", "e", "chartHeight", "labelInterval", "entry", "i", "heightPct", "isHovered", "showLabel", "total", "sum", "pct", "widthPct", "colors", "stats", "completionRate", "formatDuration", "economics", "discoveryTokens", "readTokens", "savings", "reductionPct", "formatTokenCount", "import_react", "STATUS_STYLES", "Sessions", "currentFilter", "getDisplayName", "sessions", "setSessions", "isLoading", "setIsLoading", "expandedId", "setExpandedId", "params", "r", "data", "React", "total", "completed", "s", "active", "avgDuration", "completedSessions", "sum", "formatDuration", "session", "style", "isExpanded", "duration", "timeAgo", "import_react", "TYPE_COLORS", "COLORS", "isoToEpoch", "dateStr", "formatAxisLabel", "epochMs", "zoom", "d", "formatTooltipDate", "computeZoomLevel", "pxPerMs", "pxPerDay", "ZOOM_PRESETS", "ZOOM_FACTOR", "Timeline", "currentFilter", "onNavigate", "days", "isLoading", "error", "useTimeline", "markers", "React", "TimelineCanvas", "canvasRef", "overviewRef", "containerRef", "canvasSize", "setCanvasSize", "viewportRef", "isDraggingRef", "dragStartXRef", "dragOffsetRef", "isSelectingRef", "selectStartXRef", "selectedRange", "setSelectedRange", "tooltip", "setTooltip", "zoomLevel", "setZoomLevel", "rafRef", "needsRedrawRef", "debounceRef", "timeRange", "minMs", "maxMs", "maxCount", "m", "epochToX", "vp", "xToEpoch", "x", "MARGIN_LEFT", "MARGIN_RIGHT", "MARGIN_TOP", "AXIS_HEIGHT", "OVERVIEW_H", "CHART_PADDING", "drawCanvas", "canvas", "ctx", "w", "h", "chartH", "barW", "labelIntervalMs", "visibleStartMs", "firstTickMs", "tickMs", "availableH", "marker", "heightPct", "barH", "barY", "isHighlighted", "baseColor", "rx", "sx", "ex", "drawOverview", "totalMs", "overviewPxPerMs", "visibleMs", "vx", "vw", "renderLoop", "scheduleRedraw", "targetPxPerMs", "container", "observer", "entries", "entry", "width", "prev", "hitTestMarker", "mouseX", "tolerance", "best", "bestDist", "cx", "dist", "handleMouseMove", "e", "rect", "mouseY", "delta", "fromEpoch", "toEpoch", "hit", "handleMouseDown", "handleMouseUp", "handleMouseLeave", "handleClick", "handleWheel", "mouseEpoch", "factor", "newPxPerMs", "newZoom", "zoomIn", "centerEpoch", "zoomOut", "zoomToLevel", "level", "clearSelection", "handleOverviewClick", "clickedMs", "TooltipOverlay", "sum", "TypeLegend", "y", "canvasW", "canvasH", "offsetX", "offsetY", "type", "label", "import_react", "buildLCSMatrix", "a", "b", "m", "n", "dp", "j", "tracebackLCS", "i", "result", "groupIntoChunks", "ops", "chunks", "leftLine", "rightLine", "currentOp", "lines", "chunkLeftStart", "chunkRightStart", "type", "computeDiff", "before", "after", "aLines", "bLines", "countDiffStats", "added", "removed", "unchanged", "chunk", "getChangeIndices", "c", "JS_KEYWORDS", "PY_KEYWORDS", "highlightLine", "line", "React", "nodes", "keyIdx", "commentMatch", "before", "comment", "highlightTokens", "text", "baseKey", "tokenRegex", "match", "idx", "token", "DiffLine", "lineNumber", "type", "highlight", "bgClass", "numBgClass", "prefixChar", "prefixClass", "ItemSelector", "label", "observations", "summaries", "selected", "onSelect", "getDisplayName", "open", "setOpen", "search", "setSearch", "kind", "setKind", "filteredObs", "q", "o", "filteredSum", "s", "obsToContent", "sumToContent", "e", "obs", "timeAgo", "sum", "DiffViewer", "initialLeft", "initialRight", "leftSel", "setLeftSel", "rightSel", "setRightSel", "syntaxHighlight", "setSyntaxHighlight", "currentChangeIdx", "setCurrentChangeIdx", "leftPaneRef", "rightPaneRef", "isSyncingRef", "changeRowRefs", "chunks", "computeDiff", "stats", "countDiffStats", "changeIndices", "getChangeIndices", "syncScroll", "source", "srcEl", "dstEl", "ratio", "navigateToChange", "direction", "newIdx", "rowEl", "leftLines", "rightLines", "left", "right", "ci", "chunk", "anchorIdx", "li", "ln", "rn", "kindBadge", "sel", "v", "row", "rowIdx", "el", "import_react", "POLL_INTERVAL", "useSSE", "state", "setState", "mountedRef", "touchLastEvent", "prev", "eventSource", "retryTimeout", "pollInterval", "retryCount", "MAX_RETRY_DELAY", "fetchObservations", "res", "observations", "err", "fetchSummaries", "summaries", "fetchPrompts", "prompts", "fetchProjects", "projects", "fetchAll", "onObservation", "onSummary", "onPrompt", "onSession", "startPolling", "wasConnected", "connect", "delay", "import_react", "useTheme", "preference", "setPreference", "resolvedTheme", "setResolvedTheme", "saved", "resolved", "mediaQuery", "handler", "e", "theme", "import_react", "useProjectAliases", "aliases", "setAliases", "isLoading", "setIsLoading", "res", "data", "err", "getDisplayName", "project", "updateAlias", "displayName", "prev", "import_react", "ALL_TYPES", "SAVED_FILTERS_KEY", "buildInitialState", "formatDate", "date", "y", "m", "d", "dateRangeFromPreset", "preset", "now", "toStr", "from", "filtersReducer", "state", "action", "next", "buildStateFromURL", "base", "params", "project", "q", "to", "typeParam", "conceptsParam", "syncStateToURL", "search", "newUrl", "loadSavedFilters", "raw", "persistSavedFilters", "filters", "generateFilterName", "parts", "useFilters", "dispatch", "debouncedSearchText", "setDebouncedSearchText", "debounceRef", "hasActiveFilters", "savedFilters", "setSavedFilters", "saveCurrentFilter", "updated", "deleteSavedFilter", "id", "f", "mergeAndDeduplicateByProject", "liveData", "paginatedData", "seen", "merged", "live", "paginated", "item", "a", "b", "aTime", "App", "currentView", "setCurrentView", "paginatedObservations", "setPaginatedObservations", "paginatedSummaries", "setPaginatedSummaries", "paginatedPrompts", "setPaginatedPrompts", "isLoadingMore", "setIsLoadingMore", "hasMore", "setHasMore", "cursors", "setCursors", "isMobileMenuOpen", "setIsMobileMenuOpen", "highlightObsId", "setHighlightObsId", "diffInitialLeft", "setDiffInitialLeft", "observations", "summaries", "prompts", "projects", "isConnected", "lastEventTime", "useSSE", "themePreference", "resolvedTheme", "setThemePreference", "useTheme", "getDisplayName", "updateAlias", "useProjectAliases", "filters", "dispatchFilter", "debouncedSearchText", "hasActiveFilters", "savedFilters", "saveCurrentFilter", "deleteSavedFilter", "useFilters", "currentFilter", "activeTypes", "allObservations", "mergeAndDeduplicateByProject", "allSummaries", "allPrompts", "filteredObservations", "result", "o", "fromTs", "toTs", "obsConcepts", "c", "needle", "stats", "setStats", "params", "r", "data", "fetchForProject", "project", "dateFrom", "dateTo", "obsRes", "sumRes", "promptRes", "json", "prev", "error", "handleLoadMore", "projectParam", "fromParam", "toParam", "dateParams", "fetches", "nextHasMore", "nextCursors", "newObs", "newSum", "newPrompts", "targetId", "attempts", "tryScroll", "el", "handleSearchNavigate", "obsId", "handleCompareObs", "obs", "content", "React", "Sidebar", "p", "name", "Header", "Feed", "Sessions", "Timeline", "DiffViewer", "Analytics", "date", "root", "ReactDOM", "React", "App"]
7
+ }