cctally 1.110.0 → 1.112.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/README.md +5 -6
- package/bin/_cctally_cache.py +14 -7
- package/bin/_cctally_core.py +12 -1
- package/bin/_cctally_dashboard.py +60 -154
- package/bin/_cctally_dashboard_envelope.py +7 -6
- package/bin/_cctally_dashboard_sources.py +90 -55
- package/bin/_cctally_doctor.py +73 -27
- package/bin/_cctally_forecast.py +2 -1
- package/bin/_cctally_journal.py +147 -6
- package/bin/_cctally_milestones.py +29 -3
- package/bin/_cctally_quota.py +10 -1
- package/bin/_cctally_record.py +136 -4
- package/bin/_cctally_rederive.py +311 -8
- package/bin/_cctally_source_analytics.py +20 -8
- package/bin/_cctally_tui.py +546 -45
- package/bin/_cctally_update.py +420 -14
- package/bin/_lib_cache_report.py +7 -10
- package/bin/_lib_codex_conversation_query.py +40 -4
- package/bin/_lib_codex_metadata.py +57 -11
- package/bin/_lib_cost_provenance.py +303 -0
- package/bin/_lib_dashboard_sources.py +263 -28
- package/bin/_lib_doctor.py +2 -2
- package/bin/_lib_ingest_frontier.py +137 -38
- package/bin/_lib_pricing.py +24 -263
- package/bin/_lib_rederive.py +704 -36
- package/bin/_lib_snapshot_cache.py +332 -9
- package/bin/cctally +18 -5
- package/dashboard/static/assets/{ConversationsView-BB9vUiL6.js → ConversationsView-CEZ-BUyi.js} +1 -1
- package/dashboard/static/assets/{DoctorModal-DFY2iPDf.js → DoctorModal-CE1oH_Zy.js} +1 -1
- package/dashboard/static/assets/ModalRoot-D5Y8IFUG.js +1 -0
- package/dashboard/static/assets/{ProjectsDrillPanel-DAv39uSo.js → ProjectsDrillPanel-B3DZoCeD.js} +1 -1
- package/dashboard/static/assets/{SourceDetailModal-DSAWo2Fp.js → SourceDetailModal-CHp9EgLP.js} +1 -1
- package/dashboard/static/assets/{UpdateModal-R_9dOVnh.js → UpdateModal-5iKST6jo.js} +1 -1
- package/dashboard/static/assets/{index-DdU62sov.js → index-Cm0VTxJC.js} +2 -2
- package/dashboard/static/assets/index-Dt4tqf43.css +1 -0
- package/dashboard/static/assets/{outlineNavigation-BOCLcRa6.js → outlineNavigation-DkXGL8J6.js} +1 -1
- package/dashboard/static/dashboard.html +2 -2
- package/package.json +2 -1
- package/dashboard/static/assets/ModalRoot-DvRKHbQE.js +0 -1
- package/dashboard/static/assets/index-COhxe3vU.css +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ConversationsView-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ConversationsView-CEZ-BUyi.js","assets/useKeymap-CW7Up0Ay.js","assets/outlineNavigation-DkXGL8J6.js","assets/ModalRoot-D5Y8IFUG.js","assets/ProjectsDrillPanel-B3DZoCeD.js","assets/SourceDetailModal-CHp9EgLP.js","assets/UpdateModal-5iKST6jo.js","assets/DoctorModal-CE1oH_Zy.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{$ as e,A as t,At as n,B as r,C as i,Ct as a,D as o,Dt as s,E as c,Et as l,F as u,Ft as d,G as f,H as p,I as m,It as h,J as g,K as _,L as v,M as y,Mt as b,N as x,Nt as S,O as C,Ot as w,Pt as T,Q as ee,R as E,Rt as D,S as O,St as k,T as te,Tt as A,U as j,V as M,W as ne,X as re,Y as ie,Z as N,_ as ae,_t as P,a as oe,b as F,bt as se,c as I,d as ce,dt as L,et as le,f as R,ft as ue,gt as z,h as de,i as fe,it as B,j as pe,k as me,l as he,m as ge,mt as V,n as _e,o as ve,p as ye,q as be,r as xe,s as Se,st as Ce,t as we,tt as Te,u as Ee,v as De,vt as Oe,w as ke,wt as Ae,x as je,xt as Me,y as Ne,z as H}from"./useKeymap-CW7Up0Ay.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Pe=h((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=typeof setTimeout==`function`?setTimeout:null,_=typeof clearTimeout==`function`?clearTimeout:null,v=typeof setImmediate<`u`?setImmediate:null;typeof navigator<`u`&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function b(e){if(h=!1,y(e),!m)if(n(c)!==null)m=!0,A(x);else{var t=n(l);t!==null&&j(b,t.startTime-e)}}function x(t,i){m=!1,h&&(h=!1,_(w),w=-1),p=!0;var a=f;try{for(y(i),d=n(c);d!==null&&(!(d.expirationTime>i)||t&&!E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=i);i=e.unstable_now(),typeof s==`function`?d.callback=s:d===n(c)&&r(c),y(i)}else r(c);d=n(c)}if(d!==null)var u=!0;else{var g=n(l);g!==null&&j(b,g.startTime-i),u=!1}return u}finally{d=null,f=a,p=!1}}var S=!1,C=null,w=-1,T=5,ee=-1;function E(){return!(e.unstable_now()-ee<T)}function D(){if(C!==null){var t=e.unstable_now();ee=t;var n=!0;try{n=C(!0,t)}finally{n?O():(S=!1,C=null)}}else S=!1}var O;if(typeof v==`function`)O=function(){v(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,te=k.port2;k.port1.onmessage=D,O=function(){te.postMessage(null)}}else O=function(){g(D,0)};function A(e){C=e,S||(S=!0,O())}function j(t,n){w=g(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_continueExecution=function(){m||p||(m=!0,A(x))},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):T=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(_(w),w=-1):h=!0,j(b,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,A(x))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),Fe=h(((e,t)=>{t.exports=Pe()})),Ie=h((e=>{var t=d(),n=Fe();function r(e){for(var t=`https://reactjs.org/docs/error-decoder.html?invariant=`+e,n=1;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n]);return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}var i=new Set,a={};function o(e,t){s(e,t),s(e+`Capture`,t)}function s(e,t){for(a[e]=t,e=0;e<t.length;e++)i.add(t[e])}var c=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),l=Object.prototype.hasOwnProperty,u=/^[: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]*$/,f={},p={};function m(e){return l.call(p,e)?!0:l.call(f,e)?!1:u.test(e)?p[e]=!0:(f[e]=!0,!1)}function h(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case`function`:case`symbol`:return!0;case`boolean`:return r?!1:n===null?(e=e.toLowerCase().slice(0,5),e!==`data-`&&e!==`aria-`):!n.acceptsBooleans;default:return!1}}function g(e,t,n,r){if(t==null||h(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function _(e,t,n,r,i,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var v={};`children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style`.split(` `).forEach(function(e){v[e]=new _(e,0,!1,e,null,!1,!1)}),[[`acceptCharset`,`accept-charset`],[`className`,`class`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`]].forEach(function(e){var t=e[0];v[t]=new _(t,1,!1,e[1],null,!1,!1)}),[`contentEditable`,`draggable`,`spellCheck`,`value`].forEach(function(e){v[e]=new _(e,2,!1,e.toLowerCase(),null,!1,!1)}),[`autoReverse`,`externalResourcesRequired`,`focusable`,`preserveAlpha`].forEach(function(e){v[e]=new _(e,2,!1,e,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(e){v[e]=new _(e,3,!1,e.toLowerCase(),null,!1,!1)}),[`checked`,`multiple`,`muted`,`selected`].forEach(function(e){v[e]=new _(e,3,!0,e,null,!1,!1)}),[`capture`,`download`].forEach(function(e){v[e]=new _(e,4,!1,e,null,!1,!1)}),[`cols`,`rows`,`size`,`span`].forEach(function(e){v[e]=new _(e,6,!1,e,null,!1,!1)}),[`rowSpan`,`start`].forEach(function(e){v[e]=new _(e,5,!1,e.toLowerCase(),null,!1,!1)});var y=/[\-:]([a-z])/g;function b(e){return e[1].toUpperCase()}`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(e){var t=e.replace(y,b);v[t]=new _(t,1,!1,e,null,!1,!1)}),`xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type`.split(` `).forEach(function(e){var t=e.replace(y,b);v[t]=new _(t,1,!1,e,`http://www.w3.org/1999/xlink`,!1,!1)}),[`xml:base`,`xml:lang`,`xml:space`].forEach(function(e){var t=e.replace(y,b);v[t]=new _(t,1,!1,e,`http://www.w3.org/XML/1998/namespace`,!1,!1)}),[`tabIndex`,`crossOrigin`].forEach(function(e){v[e]=new _(e,1,!1,e.toLowerCase(),null,!1,!1)}),v.xlinkHref=new _(`xlinkHref`,1,!1,`xlink:href`,`http://www.w3.org/1999/xlink`,!0,!1),[`src`,`href`,`action`,`formAction`].forEach(function(e){v[e]=new _(e,1,!1,e.toLowerCase(),null,!0,!0)});function x(e,t,n,r){var i=v.hasOwnProperty(t)?v[t]:null;(i===null?r||!(2<t.length)||t[0]!==`o`&&t[0]!==`O`||t[1]!==`n`&&t[1]!==`N`:i.type!==0)&&(g(t,n,i,r)&&(n=null),r||i===null?m(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,``+n)):i.mustUseProperty?e[i.propertyName]=n===null?i.type===3?!1:``:n:(t=i.attributeName,r=i.attributeNamespace,n===null?e.removeAttribute(t):(i=i.type,n=i===3||i===4&&!0===n?``:``+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var S=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,C=Symbol.for(`react.element`),w=Symbol.for(`react.portal`),T=Symbol.for(`react.fragment`),ee=Symbol.for(`react.strict_mode`),E=Symbol.for(`react.profiler`),D=Symbol.for(`react.provider`),O=Symbol.for(`react.context`),k=Symbol.for(`react.forward_ref`),te=Symbol.for(`react.suspense`),A=Symbol.for(`react.suspense_list`),j=Symbol.for(`react.memo`),M=Symbol.for(`react.lazy`),ne=Symbol.for(`react.offscreen`),re=Symbol.iterator;function ie(e){return typeof e!=`object`||!e?null:(e=re&&e[re]||e[`@@iterator`],typeof e==`function`?e:null)}var N=Object.assign,ae;function P(e){if(ae===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ae=t&&t[1]||``}return`
|
|
3
3
|
`+ae+e}var oe=!1;function F(e,t){if(!e||oe)return``;oe=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}else{try{throw Error()}catch(e){r=e}e()}}catch(t){if(t&&r&&typeof t.stack==`string`){for(var i=t.stack.split(`
|
|
4
4
|
`),a=r.stack.split(`
|
|
@@ -10,4 +10,4 @@ Error generating stack: `+e.message+`
|
|
|
10
10
|
To pick up a draggable item, press the space bar.
|
|
11
11
|
While dragging, use the arrow keys to move the item.
|
|
12
12
|
Press space again to drop the item in its new position, or press escape to cancel.
|
|
13
|
-
`},uu={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function du(e){let{announcements:t=uu,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=lu}=e,{announce:a,announcement:o}=au(),s=Gl(`DndLiveRegion`),[c,l]=(0,U.useState)(!1);if((0,U.useEffect)(()=>{l(!0)},[]),su((0,U.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=U.createElement(U.Fragment,null,U.createElement(ru,{id:r,value:i.draggable}),U.createElement(iu,{id:s,announcement:o}));return n?(0,Dl.createPortal)(u,n):u}var fu;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(fu||={});function pu(){}function mu(e,t){return(0,U.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function hu(){var e=[...arguments];return(0,U.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var gu=Object.freeze({x:0,y:0});function _u(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function vu(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function yu(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function bu(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function xu(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function Su(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}var Cu=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=Su(t,t.left,t.top),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=_u(Su(r),i);a.push({id:t,data:{droppableContainer:e,value:n}})}}return a.sort(vu)},wu=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=bu(t),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=bu(r),o=i.reduce((e,t,r)=>e+_u(n[r],t),0),s=Number((o/4).toFixed(4));a.push({id:t,data:{droppableContainer:e,value:s}})}}return a.sort(vu)};function Tu(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var Eu=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=Tu(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(yu)};function Du(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function Ou(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:gu}function ku(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var Au=ku(1);function ju(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function Mu(e,t,n){let r=ju(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var Nu={ignoreTransform:!1};function Pu(e,t){t===void 0&&(t=Nu);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=Ml(e).getComputedStyle(e);t&&(n=Mu(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function Fu(e){return Pu(e,{ignoreTransform:!0})}function Iu(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Lu(e,t){return t===void 0&&(t=Ml(e).getComputedStyle(e)),t.position===`fixed`}function Ru(e,t){t===void 0&&(t=Ml(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`?n.test(r):!1})}function zu(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(Nl(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!Pl(i)||Fl(i)||n.includes(i))return n;let a=Ml(e).getComputedStyle(i);return i!==e&&Ru(i,a)&&n.push(i),Lu(i,a)?n:r(i.parentNode)}return e?r(e):n}function Bu(e){let[t]=zu(e,1);return t??null}function Vu(e){return!kl||!e?null:Al(e)?e:jl(e)?Nl(e)||e===Il(e).scrollingElement?window:Pl(e)?e:null:null}function Hu(e){return Al(e)?e.scrollX:e.scrollLeft}function Uu(e){return Al(e)?e.scrollY:e.scrollTop}function Wu(e){return{x:Hu(e),y:Uu(e)}}var Gu;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(Gu||={});function Ku(e){return!kl||!e?!1:e===document.scrollingElement}function qu(e){let t={x:0,y:0},n=Ku(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var Ju={x:.2,y:.2};function Yu(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=Ju);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=qu(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=Gu.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=Gu.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=Gu.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=Gu.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function Xu(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function Zu(e){return e.reduce((e,t)=>ql(e,Wu(t)),gu)}function Qu(e){return e.reduce((e,t)=>e+Hu(t),0)}function $u(e){return e.reduce((e,t)=>e+Uu(t),0)}function ed(e,t){if(t===void 0&&(t=Pu),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);Bu(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var td=[[`x`,[`left`,`right`],Qu],[`y`,[`top`,`bottom`],$u]],nd=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=zu(t),r=Zu(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of td)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},rd=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function id(e){let{EventTarget:t}=Ml(e);return e instanceof t?e:Il(e)}function ad(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t?r>t.y:!1}var od;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(od||={});function sd(e){e.preventDefault()}function cd(e){e.stopPropagation()}var $;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})($||={});var ld={start:[$.Space,$.Enter],cancel:[$.Esc],end:[$.Space,$.Enter,$.Tab]},ud=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case $.Right:return{...n,x:n.x+25};case $.Left:return{...n,x:n.x-25};case $.Down:return{...n,y:n.y+25};case $.Up:return{...n,y:n.y-25}}},dd=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new rd(Il(t)),this.windowListeners=new rd(Ml(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(od.Resize,this.handleCancel),this.windowListeners.add(od.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(od.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&ed(n),t(gu)}handleKeyDown(e){if(Xl(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=ld,coordinateGetter:a=ud,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:gu;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=Jl(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=qu(n),p=Xu(n),m={x:Math.min(i===$.Right?p.right-p.width/2:p.right,Math.max(i===$.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===$.Down?p.bottom-p.height/2:p.bottom,Math.max(i===$.Down?p.top:p.top+p.height/2,u.y))},h=i===$.Right&&!s||i===$.Left&&!c,g=i===$.Down&&!l||i===$.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===$.Right&&e<=d.x||i===$.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}a?r.x=n.scrollLeft-e:r.x=i===$.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}else if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===$.Down&&e<=d.y||i===$.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}a?r.y=n.scrollTop-e:r.y=i===$.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,ql(Jl(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};dd.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=ld,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function fd(e){return!!(e&&`distance`in e)}function pd(e){return!!(e&&`delay`in e)}var md=class{constructor(e,t,n){n===void 0&&(n=id(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=Il(i),this.documentListeners=new rd(this.document),this.listeners=new rd(n),this.windowListeners=new rd(Ml(i)),this.initialCoordinates=Ql(r)??gu,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(od.Resize,this.handleCancel),this.windowListeners.add(od.DragStart,sd),this.windowListeners.add(od.VisibilityChange,this.handleCancel),this.windowListeners.add(od.ContextMenu,sd),this.documentListeners.add(od.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(pd(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(fd(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(od.Click,cd,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(od.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=Ql(e)??gu,s=Jl(n,o);if(!t&&a){if(fd(a)){if(a.tolerance!=null&&ad(s,a.tolerance))return this.handleCancel();if(ad(s,a.distance))return this.handleStart()}if(pd(a)&&ad(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===$.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},hd={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},gd=class extends md{constructor(e){let{event:t}=e,n=Il(t.target);super(e,hd,n)}};gd.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var _d={move:{name:`mousemove`},end:{name:`mouseup`}},vd;(function(e){e[e.RightClick=2]=`RightClick`})(vd||={});var yd=class extends md{constructor(e){super(e,_d,Il(e.event.target))}};yd.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===vd.RightClick?!1:(r?.({event:n}),!0)}}];var bd={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},xd=class extends md{constructor(e){super(e,bd)}static setup(){return window.addEventListener(bd.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(bd.move.name,e)};function e(){}}};xd.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var Sd;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(Sd||={});var Cd;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(Cd||={});function wd(e){let{acceleration:t,activator:n=Sd.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=Cd.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=Ed({delta:d,disabled:!a}),[m,h]=zl(),g=(0,U.useRef)({x:0,y:0}),_=(0,U.useRef)({x:0,y:0}),v=(0,U.useMemo)(()=>{switch(n){case Sd.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Sd.DraggableRect:return i}},[n,i,c]),y=(0,U.useRef)(null),b=(0,U.useCallback)(()=>{let e=y.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),x=(0,U.useMemo)(()=>s===Cd.TreeOrder?[...l].reverse():l,[s,l]);(0,U.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of x){if(r?.(e)===!1)continue;let n=u[l.indexOf(e)];if(!n)continue;let{direction:i,speed:a}=Yu(e,n,v,t,f);for(let e of[`x`,`y`])p[e][i[e]]||(a[e]=0,i[e]=0);if(a.x>0||a.y>0){h(),y.current=e,m(b,o),g.current=a,_.current=i;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,b,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,x,u,JSON.stringify(f)])}var Td={x:{[Gu.Backward]:!1,[Gu.Forward]:!1},y:{[Gu.Backward]:!1,[Gu.Forward]:!1}};function Ed(e){let{delta:t,disabled:n}=e,r=Ul(t);return Vl(e=>{if(n||!r||!e)return Td;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[Gu.Backward]:e.x[Gu.Backward]||i.x===-1,[Gu.Forward]:e.x[Gu.Forward]||i.x===1},y:{[Gu.Backward]:e.y[Gu.Backward]||i.y===-1,[Gu.Forward]:e.y[Gu.Forward]||i.y===1}}},[n,t,r])}function Dd(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return Vl(e=>t==null?null:r??e??null,[r,t])}function Od(e,t){return(0,U.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var kd;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(kd||={});var Ad;(function(e){e.Optimized=`optimized`})(Ad||={});var jd=new Map;function Md(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,U.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,U.useRef)(e),d=g(),f=Bl(d),p=(0,U.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,U.useRef)(null),h=Vl(t=>{if(d&&!n)return jd;if(!t||t===jd||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new nd(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,U.useEffect)(()=>{u.current=e},[e]),(0,U.useEffect)(()=>{d||p()},[n,d]),(0,U.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,U.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case kd.Always:return!1;case kd.BeforeDragging:return n;default:return!n}}}function Nd(e,t){return Vl(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function Pd(e,t){return Nd(e,t)}function Fd(e){let{callback:t,disabled:n}=e,r=Rl(t),i=(0,U.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,U.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Id(e){let{callback:t,disabled:n}=e,r=Rl(t),i=(0,U.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,U.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Ld(e){return new nd(Pu(e),e)}function Rd(e,t,n){t===void 0&&(t=Ld);let[r,i]=(0,U.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=Fd({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=Id({callback:a});return Ll(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function zd(e){return Ou(e,Nd(e))}var Bd=[];function Vd(e){let t=(0,U.useRef)(e),n=Vl(n=>e?n&&n!==Bd&&e&&t.current&&e.parentNode===t.current.parentNode?n:zu(e):Bd,[e]);return(0,U.useEffect)(()=>{t.current=e},[e]),n}function Hd(e){let[t,n]=(0,U.useState)(null),r=(0,U.useRef)(e),i=(0,U.useCallback)(e=>{let t=Vu(e.target);t&&n(e=>e?(e.set(t,Wu(t)),new Map(e)):null)},[]);return(0,U.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=Vu(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,Wu(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{Vu(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,U.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>ql(e,t),gu):Zu(e):gu,[e,t])}function Ud(e,t){t===void 0&&(t=[]);let n=(0,U.useRef)(null);return(0,U.useEffect)(()=>{n.current=null},t),(0,U.useEffect)(()=>{let t=e!==gu;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?Jl(e,n.current):gu}function Wd(e){(0,U.useEffect)(()=>{if(!kl)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function Gd(e,t){return(0,U.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function Kd(e){return(0,U.useMemo)(()=>e?Iu(e):null,[e])}var qd=[];function Jd(e,t){t===void 0&&(t=Pu);let[n]=e,r=Kd(n?Ml(n):null),[i,a]=(0,U.useState)(qd);function o(){a(()=>e.length?e.map(e=>Ku(e)?r:new nd(t(e),e)):qd)}let s=Id({callback:o});return Ll(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function Yd(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return Pl(t)?t:e}function Xd(e){let{measure:t}=e,[n,r]=(0,U.useState)(null),i=Id({callback:(0,U.useCallback)(e=>{for(let{target:n}of e)if(Pl(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=Hl((0,U.useCallback)(e=>{let n=Yd(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,U.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var Zd=[{sensor:gd,options:{}},{sensor:dd,options:{}}],Qd={current:{}},$d={draggable:{measure:Fu},droppable:{measure:Fu,strategy:kd.WhileDragging,frequency:Ad.Optimized},dragOverlay:{measure:Pu}},ef=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},tf={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new ef,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:pu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:$d,measureDroppableContainers:pu,windowRect:null,measuringScheduled:!1},nf={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:pu,draggableNodes:new Map,over:null,measureDroppableContainers:pu},rf=(0,U.createContext)(nf),af=(0,U.createContext)(tf);function of(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new ef}}}function sf(e,t){switch(t.type){case fu.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case fu.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case fu.DragEnd:case fu.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case fu.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new ef(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case fu.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new ef(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case fu.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new ef(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function cf(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,U.useContext)(rf),a=Ul(r),o=Ul(n?.id);return(0,U.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!Xl(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=tu(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function lf(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function uf(e){return(0,U.useMemo)(()=>({draggable:{...$d.draggable,...e?.draggable},droppable:{...$d.droppable,...e?.droppable},dragOverlay:{...$d.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function df(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,U.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;Ll(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=Ou(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=Bu(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var ff=(0,U.createContext)({...gu,scaleX:1,scaleY:1}),pf;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(pf||={});var mf=(0,U.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=Zd,collisionDetection:o=Eu,measuring:s,modifiers:c,...l}=e,[u,d]=(0,U.useReducer)(sf,void 0,of),[f,p]=cu(),[m,h]=(0,U.useState)(pf.Uninitialized),g=m===pf.Initialized,{draggable:{active:_,nodes:v,translate:y},droppable:{containers:b}}=u,x=_==null?null:v.get(_),S=(0,U.useRef)({initial:null,translated:null}),C=(0,U.useMemo)(()=>_==null?null:{id:_,data:x?.data??Qd,rect:S},[_,x]),w=(0,U.useRef)(null),[T,ee]=(0,U.useState)(null),[E,D]=(0,U.useState)(null),O=Bl(l,Object.values(l)),k=Gl(`DndDescribedBy`,t),te=(0,U.useMemo)(()=>b.getEnabled(),[b]),A=uf(s),{droppableRects:j,measureDroppableContainers:M,measuringScheduled:ne}=Md(te,{dragging:g,dependencies:[y.x,y.y],config:A.droppable}),re=Dd(v,_),ie=(0,U.useMemo)(()=>E?Ql(E):null,[E]),N=De(),ae=Pd(re,A.draggable.measure);df({activeNode:_==null?null:v.get(_),config:N.layoutShiftCompensation,initialRect:ae,measure:A.draggable.measure});let P=Rd(re,A.draggable.measure,ae),oe=Rd(re?re.parentElement:null),F=(0,U.useRef)({activatorEvent:null,active:null,activeNode:re,collisionRect:null,collisions:null,droppableRects:j,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:b,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),se=b.getNodeFor(F.current.over?.id),I=Xd({measure:A.dragOverlay.measure}),ce=I.nodeRef.current??re,L=g?I.rect??P:null,le=!!(I.nodeRef.current&&I.rect),R=zd(le?null:P),ue=Kd(ce?Ml(ce):null),z=Vd(g?se??re:null),de=Jd(z),fe=lf(c,{transform:{x:y.x-R.x,y:y.y-R.y,scaleX:1,scaleY:1},activatorEvent:E,active:C,activeNodeRect:P,containerNodeRect:oe,draggingNodeRect:L,over:F.current.over,overlayNodeRect:I.rect,scrollableAncestors:z,scrollableAncestorRects:de,windowRect:ue}),B=ie?ql(ie,y):null,pe=Hd(z),me=Ud(pe),he=Ud(pe,[P]),ge=ql(fe,me),V=L?Au(L,fe):null,_e=C&&V?o({active:C,collisionRect:V,droppableRects:j,droppableContainers:te,pointerCoordinates:B}):null,ve=xu(_e,`id`),[ye,be]=(0,U.useState)(null),xe=Du(le?fe:ql(fe,he),ye?.rect??null,P),Se=(0,U.useRef)(null),Ce=(0,U.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(w.current==null)return;let i=v.get(w.current);if(!i)return;let a=e.nativeEvent;Se.current=new n({active:w.current,activeNode:i,event:a,options:r,context:F,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=O.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=O.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=w.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=O.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:S}};(0,Dl.unstable_batchedUpdates)(()=>{r?.(i),h(pf.Initializing),d({type:fu.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),ee(Se.current),D(a)})},onMove(e){d({type:fu.DragMove,coordinates:e})},onEnd:o(fu.DragEnd),onCancel:o(fu.DragCancel)});function o(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=F.current,o=null;if(t&&i){let{cancelDrop:s}=O.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===fu.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=fu.DragCancel)}w.current=null,(0,Dl.unstable_batchedUpdates)(()=>{d({type:e}),h(pf.Uninitialized),be(null),ee(null),D(null),Se.current=null;let t=e===fu.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=O.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),we=Od(a,(0,U.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(w.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},w.current=r,Ce(n,t))},[v,Ce]));Wd(a),Ll(()=>{P&&m===pf.Initializing&&h(pf.Initialized)},[P,m]),(0,U.useEffect)(()=>{let{onDragMove:e}=O.current,{active:t,activatorEvent:n,collisions:r,over:i}=F.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:ge.x,y:ge.y},over:i};(0,Dl.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[ge.x,ge.y]),(0,U.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=F.current;if(!e||w.current==null||!t||!i)return;let{onDragOver:a}=O.current,o=r.get(ve),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,Dl.unstable_batchedUpdates)(()=>{be(s),a?.(c),f({type:`onDragOver`,event:c})})},[ve]),Ll(()=>{F.current={activatorEvent:E,active:C,activeNode:re,collisionRect:V,collisions:_e,droppableRects:j,draggableNodes:v,draggingNode:ce,draggingNodeRect:L,droppableContainers:b,over:ye,scrollableAncestors:z,scrollAdjustedTranslate:ge},S.current={initial:L,translated:V}},[C,re,_e,V,v,ce,L,j,b,ye,z,ge]),wd({...N,delta:y,draggingRect:V,pointerCoordinates:B,scrollableAncestors:z,scrollableAncestorRects:de});let Te=(0,U.useMemo)(()=>({active:C,activeNode:re,activeNodeRect:P,activatorEvent:E,collisions:_e,containerNodeRect:oe,dragOverlay:I,draggableNodes:v,droppableContainers:b,droppableRects:j,over:ye,measureDroppableContainers:M,scrollableAncestors:z,scrollableAncestorRects:de,measuringConfiguration:A,measuringScheduled:ne,windowRect:ue}),[C,re,P,E,_e,oe,I,v,b,j,ye,M,z,de,A,ne,ue]),Ee=(0,U.useMemo)(()=>({activatorEvent:E,activators:we,active:C,activeNodeRect:P,ariaDescribedById:{draggable:k},dispatch:d,draggableNodes:v,over:ye,measureDroppableContainers:M}),[E,we,C,P,d,k,v,ye,M]);return U.createElement(ou.Provider,{value:p},U.createElement(rf.Provider,{value:Ee},U.createElement(af.Provider,{value:Te},U.createElement(ff.Provider,{value:xe},i)),U.createElement(cf,{disabled:n?.restoreFocus===!1})),U.createElement(du,{...n,hiddenTextDescribedById:k}));function De(){let e=T?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),hf=(0,U.createContext)(null),gf=`button`,_f=`Draggable`;function vf(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=Gl(_f),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,U.useContext)(rf),{role:p=gf,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,U.useContext)(g?ff:hf),[v,y]=Hl(),[b,x]=Hl(),S=Gd(o,t),C=Bl(n);return Ll(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:b,data:C}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,U.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===gf?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:S,node:v,over:f,setNodeRef:y,setActivatorNodeRef:x,transform:_}}function yf(){return(0,U.useContext)(af)}var bf=`Droppable`,xf={timeout:25};function Sf(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=Gl(bf),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,U.useContext)(rf),u=(0,U.useRef)({disabled:n}),d=(0,U.useRef)(!1),f=(0,U.useRef)(null),p=(0,U.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...xf,...i},_=Bl(h??r),v=Id({callback:(0,U.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[y,b]=Hl((0,U.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),x=Bl(t);return(0,U.useEffect)(()=>{!v||!y.current||(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,U.useEffect)(()=>(s({type:fu.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:x}}),()=>s({type:fu.UnregisterDroppable,key:a,id:r})),[r]),(0,U.useEffect)(()=>{n!==u.current.disabled&&(s({type:fu.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:y,over:c,setNodeRef:b}}function Cf(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function wf(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function Tf(e){return e!==null&&e>=0}function Ef(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Df(e){return typeof e==`boolean`?{draggable:e,droppable:e}:e}var Of=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=Cf(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},kf=`Sortable`,Af=U.createContext({activeIndex:-1,containerId:kf,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:Of,disabled:{draggable:!1,droppable:!1}});function jf(e){let{children:t,id:n,items:r,strategy:i=Of,disabled:a=!1}=e,{active:o,dragOverlay:s,droppableRects:c,over:l,measureDroppableContainers:u}=yf(),d=Gl(kf,n),f=s.rect!==null,p=(0,U.useMemo)(()=>r.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),m=o!=null,h=o?p.indexOf(o.id):-1,g=l?p.indexOf(l.id):-1,_=(0,U.useRef)(p),v=!Ef(p,_.current),y=g!==-1&&h===-1||v,b=Df(a);Ll(()=>{v&&m&&u(p)},[v,p,m,u]),(0,U.useEffect)(()=>{_.current=p},[p]);let x=(0,U.useMemo)(()=>({activeIndex:h,containerId:d,disabled:b,disableTransforms:y,items:p,overIndex:g,useDragOverlay:f,sortedRects:wf(p,c),strategy:i}),[h,d,b.draggable,b.droppable,y,p,g,c,f,i]);return U.createElement(Af.Provider,{value:x},t)}var Mf=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return Cf(n,r,i).indexOf(t)},Nf=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},Pf={duration:200,easing:`ease`},Ff=`transform`,If=$l.Transition.toString({property:Ff,duration:0,easing:`linear`}),Lf={roleDescription:`sortable`};function Rf(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,U.useState)(null),s=(0,U.useRef)(n);return Ll(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=Pu(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,U.useEffect)(()=>{a&&o(null)},[a]),a}function zf(e){let{animateLayoutChanges:t=Nf,attributes:n,disabled:r,data:i,getNewIndex:a=Mf,id:o,strategy:s,resizeObserverConfig:c,transition:l=Pf}=e,{items:u,containerId:d,activeIndex:f,disabled:p,disableTransforms:m,sortedRects:h,overIndex:g,useDragOverlay:_,strategy:v}=(0,U.useContext)(Af),y=Bf(r,p),b=u.indexOf(o),x=(0,U.useMemo)(()=>({sortable:{containerId:d,index:b,items:u},...i}),[d,i,b,u]),S=(0,U.useMemo)(()=>u.slice(u.indexOf(o)),[u,o]),{rect:C,node:w,isOver:T,setNodeRef:ee}=Sf({id:o,data:x,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:E,activatorEvent:D,activeNodeRect:O,attributes:k,setNodeRef:te,listeners:A,isDragging:j,over:M,setActivatorNodeRef:ne,transform:re}=vf({id:o,data:x,attributes:{...Lf,...n},disabled:y.draggable}),ie=Ol(ee,te),N=!!E,ae=N&&!m&&Tf(f)&&Tf(g),P=!_&&j,oe=ae?(P&&ae?re:null)??(s??v)({rects:h,activeNodeRect:O,activeIndex:f,overIndex:g,index:b}):null,F=Tf(f)&&Tf(g)?a({id:o,items:u,activeIndex:f,overIndex:g}):b,se=E?.id,I=(0,U.useRef)({activeId:se,items:u,newIndex:F,containerId:d}),ce=u!==I.current.items,L=t({active:E,containerId:d,isDragging:j,isSorting:N,id:o,index:b,items:u,newIndex:I.current.newIndex,previousItems:I.current.items,previousContainerId:I.current.containerId,transition:l,wasDragging:I.current.activeId!=null}),le=Rf({disabled:!L,index:b,node:w,rect:C});return(0,U.useEffect)(()=>{N&&I.current.newIndex!==F&&(I.current.newIndex=F),d!==I.current.containerId&&(I.current.containerId=d),u!==I.current.items&&(I.current.items=u)},[N,F,d,u]),(0,U.useEffect)(()=>{if(se===I.current.activeId)return;if(se!=null&&I.current.activeId==null){I.current.activeId=se;return}let e=setTimeout(()=>{I.current.activeId=se},50);return()=>clearTimeout(e)},[se]),{active:E,activeIndex:f,attributes:k,data:x,rect:C,index:b,newIndex:F,items:u,isOver:T,isSorting:N,isDragging:j,listeners:A,node:w,overIndex:g,over:M,setNodeRef:ie,setActivatorNodeRef:ne,setDroppableNodeRef:ee,setDraggableNodeRef:te,transform:le??oe,transition:R()};function R(){if(le||ce&&I.current.newIndex===b)return If;if(!(P&&!Xl(D)||!l)&&(N||L))return $l.Transition.toString({...l,property:Ff})}}function Bf(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}function Vf(e){if(!e)return!1;let t=e.data.current;return!!(t&&`sortable`in t&&typeof t.sortable==`object`&&`containerId`in t.sortable&&`items`in t.sortable&&`index`in t.sortable)}var Hf=[$.Down,$.Right,$.Up,$.Left],Uf=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:a,over:o,scrollableAncestors:s}}=t;if(Hf.includes(e.code)){if(e.preventDefault(),!n||!r)return;let t=[];a.getEnabled().forEach(n=>{if(!n||n!=null&&n.disabled)return;let a=i.get(n.id);if(a)switch(e.code){case $.Down:r.top<a.top&&t.push(n);break;case $.Up:r.top>a.top&&t.push(n);break;case $.Left:r.left>a.left&&t.push(n);break;case $.Right:r.left<a.left&&t.push(n);break}});let c=wu({active:n,collisionRect:r,droppableRects:i,droppableContainers:t,pointerCoordinates:null}),l=xu(c,`id`);if(l===o?.id&&c.length>1&&(l=c[1].id),l!=null){let e=a.get(n.id),t=a.get(l),o=t?i.get(t.id):null,c=t?.node.current;if(c&&o&&e&&t){let n=zu(c).some((e,t)=>s[t]!==e),i=Wf(e,t),a=Gf(e,t),l=n||!i?{x:0,y:0}:{x:a?r.width-o.width:0,y:a?r.height-o.height:0},u={x:o.left,y:o.top};return l.x&&l.y?u:Jl(u,l)}}}};function Wf(e,t){return!Vf(e)||!Vf(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function Gf(e,t){return!Vf(e)||!Vf(t)||!Wf(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}var Kf=!1;function qf(){return Kf}function Jf(){Kf=!0,setTimeout(()=>{Kf=!1},0)}var Yf={sessions:12,trend:6,projects:6};function Xf(t,n){if(n===`intermediate`){let e=Yf[t];if(e!==void 0)return e}return e[t].span}function Zf({id:e,index:t,mode:n}){let r=cc[e],i=(0,U.useSyncExternalStore)(F,()=>R().openModal!=null),a=Cs(),{listeners:o,setNodeRef:s,transform:c,transition:l,isDragging:u}=zf({id:e,disabled:i});if(!r)return null;let{Component:d,label:f}=r;return(0,W.jsx)(`div`,{ref:s,style:{transform:$l.Translate.toString(c),transition:a?void 0:l},className:`panel-host${u?` is-dragging`:``}`,"data-panel-host":e,"data-panel-index":t,"data-span":Xf(e,n),"aria-label":`Reorder ${f}`,onKeyDown:e=>{if(!e.shiftKey)return;let n=e.target;if(typeof n.matches==`function`&&n.matches(`input, textarea, select, [contenteditable="true"]`))return;let r=0;e.key===`ArrowDown`||e.key===`ArrowRight`?r=1:(e.key===`ArrowUp`||e.key===`ArrowLeft`)&&(r=-1),r!==0&&(typeof e.preventDefault==`function`&&e.preventDefault(),I({type:`SWAP_PANELS`,index:t,direction:r}))},onClickCapture:e=>{qf()&&e.stopPropagation()},...o,children:(0,W.jsx)(d,{})})}var Qf=250,$f=5;function ep(){Jf()}function tp(e,t){if(Jf(),!t||e===t)return;let n=R(),r=c(n.prefs.panelOrder,C(n.snapshot,n.activeSource)),i=r.indexOf(e),a=r.indexOf(t);i<0||a<0||i===a||I({type:`REORDER_PANELS`,from:i,to:a})}function np(){Jf()}function rp({items:e,className:t,children:n}){return(0,W.jsx)(mf,{sensors:hu(mu(gd,{activationConstraint:{delay:Qf,tolerance:$f}})),onDragStart:()=>ep(),onDragEnd:e=>{let t=e.active.id;tp(t,e.over?e.over.id:null)},onDragCancel:()=>np(),children:(0,W.jsx)(jf,{items:(0,U.useMemo)(()=>e.slice(),[e]),strategy:Of,children:(0,W.jsx)(`div`,{className:t,children:n})})})}var ip=class extends Error{status;field;code;constructor(e,t,n,r){super(n),this.status=e,this.field=t,this.code=r}};async function ap(e){if(!e.ok){let t={};try{t=await e.json()}catch{}throw new ip(e.status,t.field,t.error??`HTTP ${e.status}`,t.code)}return e.json()}async function op(e,t){return ap(await fetch(`/api/share/templates?panel=${encodeURIComponent(e)}`,{signal:t?.signal}))}async function sp(e,t){let{account:n,...r}=e;return ap(await fetch(`/api/share/render`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n==null?r:{...r,account:n}),signal:t?.signal}))}var cp=[{id:`recap`,label:`Recap`,placeholderDescription:`Text + tiny chart`},{id:`visual`,label:`Visual`,placeholderDescription:`Coming soon`},{id:`detail`,label:`Detail`,placeholderDescription:`Coming soon`}];function lp(e){return e.endsWith(`-recap`)?`recap`:e.endsWith(`-visual`)?`visual`:e.endsWith(`-detail`)?`detail`:null}function up({panel:e,templates:t,error:n,selectedTemplateId:r,onSelect:i}){if(n)return(0,W.jsx)(`div`,{className:`share-gallery-error`,role:`alert`,children:n});let a={};for(let e of t??[]){let t=lp(e.id);t&&(a[t]=e)}return(0,W.jsx)(`div`,{className:`share-gallery`,role:`radiogroup`,"aria-label":`Report template`,children:cp.map(e=>{let n=a[e.id];if(t==null)return(0,W.jsxs)(`div`,{className:`share-tile share-tile-skeleton`,"aria-hidden":`true`,children:[(0,W.jsx)(`div`,{className:`share-tile-skeleton-bar`}),(0,W.jsx)(`div`,{className:`share-tile-skeleton-bar short`})]},e.id);if(!n)return(0,W.jsxs)(`button`,{type:`button`,className:`share-tile share-tile-disabled`,disabled:!0,"aria-disabled":`true`,role:`radio`,"aria-checked":`false`,title:`${e.label} — ${e.placeholderDescription}`,children:[(0,W.jsx)(`div`,{className:`share-tile-label`,children:e.label}),(0,W.jsx)(`div`,{className:`share-tile-desc`,children:e.placeholderDescription})]},e.id);let o=n.id===r;return(0,W.jsxs)(`button`,{type:`button`,className:`share-tile`+(o?` share-tile-selected`:``),role:`radio`,"aria-checked":o,"data-template-id":n.id,onClick:()=>i(n.id),children:[(0,W.jsx)(`div`,{className:`share-tile-label`,children:n.label}),(0,W.jsx)(`div`,{className:`share-tile-desc`,children:n.description})]},e.id)})})}function dp({options:e,onChange:t}){let n=n=>t({...e,...n}),r=n=>t({...e,period:{...e.period,...n}}),i=e=>{if(e===``){n({top_n:null});return}let t=Number.parseInt(e,10);Number.isNaN(t)||n({top_n:Math.max(1,t)})};return(0,W.jsxs)(`div`,{className:`share-knobs`,children:[(0,W.jsxs)(`div`,{className:`share-knob`,children:[(0,W.jsx)(`label`,{htmlFor:`share-knob-period`,children:`Period`}),(0,W.jsxs)(`select`,{id:`share-knob-period`,value:e.period.kind,onChange:e=>r({kind:e.target.value}),children:[(0,W.jsx)(`option`,{value:`current`,children:`This week`}),(0,W.jsx)(`option`,{value:`previous`,children:`Previous week`}),(0,W.jsx)(`option`,{value:`custom`,children:`Custom`})]}),e.period.kind===`custom`?(0,W.jsxs)(`div`,{className:`share-knob-period-custom`,children:[(0,W.jsxs)(`label`,{className:`share-knob-sublabel`,children:[(0,W.jsx)(`span`,{children:`Start`}),(0,W.jsx)(`input`,{type:`date`,value:e.period.start?.slice(0,10)??``,onChange:e=>r({start:e.target.value}),"aria-label":`Custom period start date`})]}),(0,W.jsxs)(`label`,{className:`share-knob-sublabel`,children:[(0,W.jsx)(`span`,{children:`End`}),(0,W.jsx)(`input`,{type:`date`,value:e.period.end?.slice(0,10)??``,onChange:e=>r({end:e.target.value}),"aria-label":`Custom period end date`})]})]}):null]}),(0,W.jsxs)(`div`,{className:`share-knob`,children:[(0,W.jsx)(`span`,{className:`share-knob-label`,children:`Theme`}),(0,W.jsxs)(`div`,{className:`share-knob-radiogroup`,role:`radiogroup`,"aria-label":`Theme`,children:[(0,W.jsxs)(`label`,{className:`share-knob-radio`,children:[(0,W.jsx)(`input`,{type:`radio`,name:`share-theme`,value:`light`,checked:e.theme===`light`,onChange:()=>n({theme:`light`})}),(0,W.jsx)(`span`,{children:`Light`})]}),(0,W.jsxs)(`label`,{className:`share-knob-radio`,children:[(0,W.jsx)(`input`,{type:`radio`,name:`share-theme`,value:`dark`,checked:e.theme===`dark`,onChange:()=>n({theme:`dark`})}),(0,W.jsx)(`span`,{children:`Dark`})]})]})]}),(0,W.jsxs)(`div`,{className:`share-knob`,children:[(0,W.jsx)(`label`,{htmlFor:`share-knob-topn`,children:`Top-N`}),(0,W.jsx)(`input`,{id:`share-knob-topn`,type:`number`,min:1,step:1,inputMode:`numeric`,value:e.top_n??``,onChange:e=>i(e.target.value),"aria-label":`Top-N`})]}),(0,W.jsxs)(`div`,{className:`share-knob`,children:[(0,W.jsx)(`span`,{className:`share-knob-label`,children:`Projects`}),(0,W.jsx)(`button`,{type:`button`,className:`share-knob-allowlist-stub`,disabled:!0,"aria-disabled":`true`,title:`Exports include all projects`,children:`All projects`})]}),(0,W.jsx)(`div`,{className:`share-knob`,children:(0,W.jsxs)(`label`,{className:`share-knob-checkbox`,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:e.show_chart,onChange:e=>n({show_chart:e.target.checked}),"aria-label":`Include chart in export`}),(0,W.jsx)(`span`,{children:`Show chart`})]})}),(0,W.jsx)(`div`,{className:`share-knob`,children:(0,W.jsxs)(`label`,{className:`share-knob-checkbox`,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:e.show_table,onChange:e=>n({show_table:e.target.checked}),"aria-label":`Include table in export`}),(0,W.jsx)(`span`,{children:`Show table`})]})}),(0,W.jsx)(`div`,{className:`share-knob`,children:(0,W.jsxs)(`label`,{className:`share-knob-checkbox`,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:!e.reveal_projects,onChange:e=>n({reveal_projects:!e.target.checked}),"aria-label":`Anonymize project names on export`}),(0,W.jsx)(`span`,{children:`Anon on export`})]})})]})}function fp(e){(0,U.useEffect)(()=>{if(!e)return;let t=null,n=e=>{let t=e;t.key===`Escape`&&_e(t)},r=()=>{t&&=(t.removeEventListener(`keydown`,n),null)},i=()=>{r();let i=null;try{i=e.contentDocument}catch{i=null}i&&(i.addEventListener(`keydown`,n),t=i)};e.addEventListener(`load`,i);try{e.contentDocument&&e.contentDocument.readyState!==`loading`&&i()}catch{}return()=>{e.removeEventListener(`load`,i),r()}},[e])}var pp=200,mp={status:`idle`,body:``,contentType:``,errorMessage:null,errorField:null};function hp({panel:e,source:t=`claude`,account:n=null,templateId:r,options:i,onProjectNamesResolved:a,onPreviewFailed:o,artifactLabel:s=null}){let[c,l]=(0,U.useState)(mp),[u,d]=(0,U.useState)(null);fp(u);let f=(0,U.useRef)(null),p=(0,U.useRef)(0),m=(0,U.useRef)(a);m.current=a;let h=(0,U.useRef)(o);if(h.current=o,(0,U.useEffect)(()=>{m.current?.(null)},[e,t,n,r]),(0,U.useEffect)(()=>{if(!r){l(mp),h.current?.(!1);return}l(e=>({...e,status:`loading`})),h.current?.(!1);let a=++p.current,o=setTimeout(()=>{f.current?.abort();let o=new AbortController;f.current=o,sp({panel:e,template_id:r,options:{...i,reveal_projects:!0},source:t,account:n},{signal:o.signal}).then(e=>{a===p.current&&(l({status:`ready`,body:e.body,contentType:e.content_type,errorMessage:null,errorField:null}),h.current?.(!1),m.current?.(typeof e.has_project_names==`boolean`?e.has_project_names:null))}).catch(e=>{if(a===p.current&&!(e&&typeof e==`object`&&e.name===`AbortError`)){if(e instanceof ip){l({status:`error`,body:``,contentType:``,errorMessage:e.message??`HTTP ${e.status}`,errorField:e.field??null}),h.current?.(!0);return}l({status:`error`,body:``,contentType:``,errorMessage:e.message??`Unknown error`,errorField:null}),h.current?.(!0)}})},pp);return()=>{clearTimeout(o)}},[e,t,n,r,i]),(0,U.useEffect)(()=>()=>{f.current?.abort()},[]),!r)return(0,W.jsx)(`div`,{className:`share-preview share-preview-empty`,children:`Select a template to preview.`});if(c.status===`error`)return(0,W.jsxs)(`div`,{className:`share-preview share-preview-error`,role:`alert`,children:[(0,W.jsx)(`div`,{className:`share-preview-error-title`,children:`Preview failed`}),(0,W.jsxs)(`div`,{className:`share-preview-error-message`,children:[c.errorMessage,c.errorField?(0,W.jsxs)(`span`,{className:`share-preview-error-field`,children:[` `,`(field: `,c.errorField,`)`]}):null]})]});if(c.status===`loading`||c.status===`idle`)return(0,W.jsx)(`div`,{className:`share-preview share-preview-loading`,"aria-busy":`true`,children:`Rendering preview…`});let g=(0,W.jsx)(`div`,{className:`share-preview-source`,"aria-label":`Report source: ${Zr[t]}`,children:(0,W.jsx)(`span`,{className:`source-chip source-chip--${t}`,children:Zr[t]})});return i.format===`md`?(0,W.jsxs)(`div`,{className:`share-preview-wrap`,children:[g,(0,W.jsx)(`pre`,{className:`share-preview share-preview-md`,"aria-label":`Markdown preview`,children:c.body})]}):(0,W.jsxs)(`div`,{className:`share-preview-wrap`,children:[g,(0,W.jsx)(`iframe`,{className:`share-preview share-preview-iframe`,title:s?`Report preview — ${s}`:`Report preview`,tabIndex:-1,sandbox:`allow-same-origin`,srcDoc:c.body,ref:d})]})}var gp={"current-week":`Current week`,trend:`Trend`,weekly:`Weekly`,daily:`Daily`,monthly:`Monthly`,blocks:`5-hour blocks`,forecast:`Forecast`,sessions:`Sessions`,projects:`Projects`};function _p(e){return gp[e]}function vp(e){switch(e){case`md`:return`md`;case`html`:return`html`;case`svg`:return`svg`}}async function yp(e){if(!e.ok){let t={};try{t=await e.json()}catch{}throw new ip(e.status,t.field,t.error??`HTTP ${e.status}`,t.code)}return e.json()}async function bp(e){return yp(await fetch(`/api/share/presets`,{signal:e?.signal}))}async function xp(e,t){return yp(await fetch(`/api/share/presets`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),signal:t?.signal}))}async function Sp(e,t){return yp(await fetch(`/api/share/presets/rename`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),signal:t?.signal}))}async function Cp(e,t,n){let r=await fetch(`/api/share/presets/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{method:`DELETE`,signal:n?.signal});if(!r.ok){let e={};try{e=await r.json()}catch{}throw new ip(r.status,void 0,e.error??`HTTP ${r.status}`)}}function wp(e){return e.kind??`panel`}function Tp(e){return wp(e)===`composed`}async function Ep(e){return yp(await fetch(`/api/share/history`,{signal:e?.signal}))}async function Dp(e,t){let{account:n,...r}=e;return yp(await fetch(`/api/share/history`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n==null?r:{...r,account:n}),signal:t?.signal}))}async function Op(e,t){return yp(await fetch(`/api/share/history`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({kind:`composed`,...e}),signal:t?.signal}))}function kp(e){return!(e==null||typeof e.focus!=`function`||!document.contains(e)||e.disabled===!0||typeof e.closest==`function`&&e.closest(`[inert]`)!=null)}var Ap=250;function jp(e){if(typeof requestAnimationFrame==`function`){let t=requestAnimationFrame(()=>e());return()=>cancelAnimationFrame(t)}let t=setTimeout(e,16);return()=>clearTimeout(t)}function Mp(){let[e,t]=(0,U.useState)(null),n=(0,U.useRef)(null),r=(0,U.useRef)(null),[i,a]=(0,U.useState)(0),o=(0,U.useRef)(null),s=(0,U.useCallback)(()=>{o.current?.(),o.current=null,r.current=null},[]),c=(0,U.useCallback)(e=>{s(),r.current=e,a(e=>e+1)},[s]);(0,U.useEffect)(()=>{if(i===0)return;let e=r.current;if(r.current=null,e==null)return;let t=Date.now()+Ap,n=()=>{if(o.current=null,kp(e)){e.focus();return}!document.contains(e)||Date.now()>=t||(o.current=jp(n))};n()},[i]),(0,U.useEffect)(()=>()=>{o.current?.()},[]);let l=(0,U.useCallback)(e=>{s(),n.current=document.activeElement,t(e)},[s]),u=(0,U.useCallback)(()=>{let e=n.current;n.current=null,t(null),c(e)},[c]),d=(0,U.useCallback)(e=>{n.current=null,t(null),c(e?e():null)},[c]),f=(0,U.useCallback)(t=>e===t,[e]);return we((0,U.useMemo)(()=>[{key:`Escape`,scope:`overlay`,layer:220,when:()=>e!=null,action:u}],[e,u])),{armed:e,arm:l,cancel:u,close:d,isArmed:f}}function Np({id:e,host:t,prompt:n,confirmLabel:r,cancelLabel:i=`Cancel`,onConfirm:a,className:o}){let s=`share-confirm-${e.replace(/[^a-zA-Z0-9_-]+/g,`-`)}`,c=(0,U.useRef)(null),l=t.isArmed(e);return(0,U.useEffect)(()=>{l&&c.current?.focus()},[l]),l?(0,W.jsxs)(`span`,{className:`share-confirm${o?` ${o}`:``}`,role:`group`,children:[(0,W.jsx)(`span`,{className:`share-confirm-prompt`,id:s,role:`status`,children:n}),(0,W.jsx)(`button`,{ref:c,type:`button`,className:`share-confirm-yes`,"aria-describedby":s,onClick:a,children:r}),(0,W.jsx)(`button`,{type:`button`,className:`share-confirm-no`,onClick:()=>t.cancel(),children:i})]}):null}var Pp=`share-save-overwrite`;function Fp({panel:e,source:t=`claude`,templateId:n,options:r,existingNames:i,focusAfterConfirm:a,onSaved:o,onCancel:s}){let[c,l]=(0,U.useState)(``),[u,d]=(0,U.useState)(!1),[f,p]=(0,U.useState)(null),[m,h]=(0,U.useState)([]),g=Mp(),_=i??m;(0,U.useEffect)(()=>{if(i!=null)return;let t=new AbortController;return bp({signal:t.signal}).then(t=>h(Object.keys(t.presets[e]??{}))).catch(()=>{}),()=>t.abort()},[e,i]);async function v(i=!1){let a=c.trim();if(!a){p(`Name is required`);return}if(a.length>64){p(`Name must be 64 characters or fewer`);return}if(a.includes(`/`)){p(`Name cannot contain '/'`);return}if(!i&&_.includes(a)){g.arm(Pp);return}d(!0),p(null);try{await xp({panel:e,name:a,template_id:n,options:r,source:t,...i?{overwrite:!0}:{}}),I({type:`SHOW_STATUS_TOAST`,text:`Saved preset "${a}"`}),o()}catch(e){if(e instanceof ip&&e.code===`preset_name_conflict`){g.arm(Pp);return}p((e instanceof ip?e.message??`HTTP ${e.status}`:e.message)??`Save failed`)}finally{d(!1)}}return(0,W.jsxs)(`div`,{className:`share-save-popover`,role:`dialog`,"aria-label":`Save preset`,children:[(0,W.jsxs)(`label`,{className:`share-save-label`,children:[`Preset name`,(0,W.jsx)(`input`,{type:`text`,className:`share-save-input`,autoFocus:!0,value:c,maxLength:64,disabled:u,onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),e.stopPropagation(),v()):e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),g.armed==null?s():g.cancel())}})]}),f?(0,W.jsx)(`div`,{className:`share-save-error`,role:`alert`,children:f}):null,(0,W.jsxs)(`div`,{className:`share-save-actions`,children:[(0,W.jsx)(`button`,{type:`button`,onClick:s,disabled:u,children:`Cancel`}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>void v(),disabled:u,children:u?`Saving…`:`Save`})]}),(0,W.jsx)(Np,{id:Pp,host:g,prompt:`"${c.trim()}" exists — saving replaces it`,confirmLabel:`Replace`,onConfirm:()=>{g.close(a),v(!0)}})]})}async function Ip(e,t,n){let r=new Blob([e],{type:`image/svg+xml`}),i=URL.createObjectURL(r);try{let e=new Image;e.src=i,await e.decode();let r=document.createElement(`canvas`);r.width=e.naturalWidth*t,r.height=e.naturalHeight*t;let a=r.getContext(`2d`);if(!a)throw Error(`Could not acquire 2D canvas context`);a.fillStyle=n,a.fillRect(0,0,r.width,r.height),a.scale(t,t),a.drawImage(e,0,0);let o=await new Promise(e=>{r.toBlob(t=>e(t),`image/png`)});if(o)return o;let s=r.toDataURL(`image/png`);return(await fetch(s)).blob()}finally{URL.revokeObjectURL(i)}}function Lp(){let e=window.open(``,`_blank`);if(!e)return null;try{e.opener=null}catch{}return e}function Rp(){let e=Lp();return e?{navigate(t){if(e.closed)throw Error(Bp);let n=URL.createObjectURL(t);try{e.location.href=n}catch(e){throw URL.revokeObjectURL(n),e}},close(){try{e.close()}catch{}}}:null}var zp=`the browser blocked the new tab — allow pop-ups for this page and retry`,Bp=`the new tab was closed before the export finished`;function Vp(e){let t=document.createElement(`iframe`);t.setAttribute(`aria-hidden`,`true`),t.style.cssText=`position:fixed;right:0;bottom:0;width:0;height:0;border:0`,document.body.appendChild(t);let n=t.contentDocument;if(!n)throw t.remove(),Error(`iframe contentDocument unavailable`);n.open(),n.write(e),n.close();let r=t.contentWindow,i=!1;if(r&&typeof r.print==`function`)try{typeof r.focus==`function`&&r.focus(),r.print(),i=!0}catch{i=!1}if(!i){t.remove();let n=Lp();if(!n)throw Error(zp);n.document.open(),n.document.write(e),n.document.close();return}setTimeout(()=>t.remove(),1e3)}function Hp(e){Dp({panel:e.panel,template_id:e.template_id,options:e.options,format:e.options.format,destination:e.destination,source:e.source,account:e.account}).catch(()=>{})}function Up(e){return e===`light`?`#ffffff`:`#0f172a`}var Wp=`The preview failed — an export may fail too.`,Gp=`share-preview-failed-note`;function Kp(e,t){return`cctally-${e}-${new Date().toISOString().slice(0,10).replaceAll(`-`,``)}.${vp(t)}`}function qp(e){switch(e){case`md`:return`text/markdown;charset=utf-8`;case`html`:return`text/html;charset=utf-8`;case`svg`:return`image/svg+xml;charset=utf-8`}}function Jp(e,t){let n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=e,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),setTimeout(()=>URL.revokeObjectURL(n),0)}function Yp({panel:e,source:t=`claude`,account:n=null,templateId:r,options:i,onOptionsChange:a,previewFailed:o=!1}){let[s,c]=(0,U.useState)(null),[l,u]=(0,U.useState)(null),[d,f]=(0,U.useState)(!1),p=(0,U.useRef)(null);(0,U.useEffect)(()=>()=>{p.current!=null&&clearTimeout(p.current)},[]);let[m,h]=(0,U.useState)(!1),g=(0,U.useRef)(null),_=(0,U.useRef)(null);(0,U.useEffect)(()=>{if(!m)return;function e(e){let t=g.current;t&&(t.contains(e.target)||h(!1))}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[m]),we((0,U.useMemo)(()=>[{key:`Escape`,scope:`overlay`,layer:205,when:()=>m,action:()=>h(!1)}],[m])),(0,U.useEffect)(()=>{u(null)},[i.format,r]);let v=r==null||s!=null,y=e=>I({type:`SHOW_STATUS_TOAST`,text:e}),b=async()=>{if(!r)throw Error(`no template selected`);return{body:(await sp({panel:e,template_id:r,options:i,source:t,account:n})).body,format:i.format}},x=async()=>{if(!(v||!r)){c(`copy`),u(null);try{let{body:a}=await b();if(!navigator.clipboard||typeof navigator.clipboard.writeText!=`function`)throw Error(`Clipboard API unavailable in this browser`);await navigator.clipboard.writeText(a),y(`Copied`),Hp({panel:e,template_id:r,options:i,destination:`copy`,source:t,account:n})}catch(e){u(`Copy failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}finally{c(null)}}},S=async()=>{if(!(v||!r)){c(`download`),u(null);try{let{body:a,format:o}=await b(),s=new Blob([a],{type:qp(o)});Jp(Kp(e,o),s),y(`Downloaded`),Hp({panel:e,template_id:r,options:i,destination:`download`,source:t,account:n})}catch(e){u(`Download failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}finally{c(null)}}},C=async()=>{if(!(v||!r)){c(`basket`),u(null);try{let a=await sp({panel:e,template_id:r,options:i,source:t,account:n}),o=H({panel:e,template_id:r,options:i,added_at:new Date().toISOString(),data_digest_at_add:a.snapshot.data_digest,data_digest_version_at_add:a.snapshot.data_digest_version,kernel_version:a.snapshot.kernel_version,label_hint:_p(e),source:t,account:n});I({type:`BASKET_ADD`,item:o});let s=R().basket;if(s.rejectedReason===`capacity`)return;f(!0),p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>f(!1),800),I({type:`SHOW_STATUS_TOAST`,text:`Added ${o.label_hint} to basket (${s.items.length})`})}catch(e){u(`Add to basket failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}finally{c(null)}}},w=async()=>{if(v||!r)return;let a=Rp();if(!a){u(`Open failed: ${zp}`);return}c(`open`),u(null);try{let{body:o,format:s}=await b();a.navigate(new Blob([o],{type:qp(s)})),y(`Opened`),Hp({panel:e,template_id:r,options:i,destination:`open`,source:t,account:n})}catch(e){a.close(),u(`Open failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}finally{c(null)}},T=async()=>{if(!(!r||i.format!==`svg`||v)){c(`png`),u(null);try{let{body:a}=await b(),o=await Ip(a,2,Up(i.theme));Jp(Kp(e,`svg`).replace(/\.svg$/,`.png`),o),y(`PNG downloaded`),Hp({panel:e,template_id:r,options:i,destination:`png`,source:t,account:n})}catch(e){u(`PNG export failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}finally{c(null)}}},ee=async()=>{if(!(!r||i.format!==`html`||v)){c(`print`),u(null);try{let{body:a}=await b();Vp(a),y(`Print dialog opened`),Hp({panel:e,template_id:r,options:i,destination:`print`,source:t,account:n})}catch(e){u(`Print failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}finally{c(null)}}},E=i.format===`md`&&!v,D=(i.format===`html`||i.format===`svg`)&&!v,O=i.format===`svg`&&!v,k=i.format===`html`&&!v;return(0,W.jsxs)(`div`,{className:`share-actions`,children:[(0,W.jsxs)(`div`,{className:`share-format-row`,role:`radiogroup`,"aria-label":`Export format`,children:[(0,W.jsx)(`span`,{className:`share-format-label`,children:`Format:`}),[`md`,`html`,`svg`].map(e=>(0,W.jsxs)(`label`,{className:`share-format-radio`,children:[(0,W.jsx)(`input`,{type:`radio`,name:`share-format`,value:e,checked:i.format===e,onChange:()=>a({...i,format:e})}),(0,W.jsx)(`span`,{children:e})]},e))]}),o?(0,W.jsx)(`p`,{className:`share-preview-failed-note`,id:Gp,children:Wp}):null,(0,W.jsxs)(`div`,{className:`share-action-row`,children:[(0,W.jsx)(`button`,{type:`button`,"aria-describedby":o?Gp:void 0,className:`share-action share-action-copy`,onClick:x,disabled:!E,title:i.format===`md`?s===`copy`?`Copying…`:`Copy to clipboard`:`Copy is available for Markdown only`,children:s===`copy`?`Copying…`:`Copy`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":o?Gp:void 0,className:`share-action share-action-download`,onClick:S,disabled:v,title:s===`download`?`Downloading…`:`Download file`,children:s===`download`?`Downloading…`:`Download`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":o?Gp:void 0,className:`share-action share-action-open`,onClick:w,disabled:!D,title:i.format===`html`||i.format===`svg`?s===`open`?`Opening…`:`Open in new tab`:`Open is available for HTML/SVG`,children:s===`open`?`Opening…`:`Open`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":o?Gp:void 0,className:`share-action share-action-png`,onClick:T,disabled:!O,title:i.format===`svg`?s===`png`?`Rasterizing…`:`Download PNG (rasterized from SVG)`:`PNG export — available for SVG format only`,children:s===`png`?`Rasterizing…`:`PNG`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":o?Gp:void 0,className:`share-action share-action-print`,onClick:ee,disabled:!k,title:i.format===`html`?s===`print`?`Opening print dialog…`:`Open the browser print dialog (save as PDF)`:`Print → PDF — available for HTML format only`,children:s===`print`?`Printing…`:`Print → PDF`}),(0,W.jsx)(`button`,{type:`button`,className:`share-action share-action-basket${d?` share-action-basket-added`:``}`,onClick:C,disabled:v,title:v&&r==null?`Pick a template first`:s===`basket`?`Adding to basket…`:`Add this section to the report basket`,children:d?`✓ Added`:s===`basket`?`Adding…`:`+ Basket`})]}),(0,W.jsxs)(`div`,{className:`share-save-preset-row`,ref:g,children:[(0,W.jsx)(`button`,{ref:_,type:`button`,className:`share-save-preset`,disabled:r==null||s!=null,onClick:()=>h(e=>!e),"aria-haspopup":`dialog`,"aria-expanded":m,title:r==null?`Pick a template first`:`Save the current recipe as a named preset`,children:`Save preset…`}),m&&r?(0,W.jsx)(Fp,{panel:e,source:t,templateId:r,options:i,focusAfterConfirm:()=>_.current,onSaved:()=>{h(!1),_.current?.focus()},onCancel:()=>{h(!1),_.current?.focus()}}):null]}),l?(0,W.jsx)(`div`,{className:`share-action-error`,role:`alert`,children:l}):null]})}var Xp=`share-presets-trigger`;function Zp(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function Qp({panel:e,onPick:t,onManage:n}){let[r,i]=(0,U.useState)(!1),[a,o]=(0,U.useState)({}),[s,c]=(0,U.useState)([]),[l,u]=(0,U.useState)(null),d=(0,U.useRef)(null);(0,U.useEffect)(()=>{if(!r)return;let t=new AbortController;return u(null),Promise.all([bp({signal:t.signal}),Ep({signal:t.signal})]).then(([t,n])=>{o(t.presets[e]??{}),c(n.history.filter(t=>Tp(t)||t.panel===e).slice().reverse())}).catch(e=>{e?.name!==`AbortError`&&u((e instanceof ip?e.message??`HTTP ${e.status}`:e.message)??`Failed to load presets`)}),()=>t.abort()},[r,e]),(0,U.useEffect)(()=>{if(!r)return;function e(e){let t=d.current;t&&(t.contains(e.target)||i(!1))}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[r]),we((0,U.useMemo)(()=>[{key:`Escape`,scope:`overlay`,layer:205,when:()=>r,action:()=>i(!1)}],[r]));let f=Object.keys(a).sort();return(0,W.jsxs)(`div`,{className:`share-presets-dropdown`,ref:d,children:[(0,W.jsx)(`button`,{type:`button`,id:Xp,className:`share-presets-trigger`,"aria-haspopup":`menu`,"aria-expanded":r,onClick:()=>i(e=>!e),children:`presets ▾`}),r?(0,W.jsxs)(`div`,{className:`share-presets-menu`,role:`menu`,children:[l?(0,W.jsx)(`div`,{className:`share-presets-error`,role:`alert`,children:l}):null,f.length===0&&!l?(0,W.jsx)(`div`,{className:`share-presets-empty`,children:`No saved presets yet.`}):null,f.length>0?(0,W.jsx)(`ul`,{className:`share-presets-list`,children:f.map(e=>(0,W.jsxs)(`li`,{className:`share-presets-row`,children:[(0,W.jsx)(`button`,{type:`button`,role:`menuitem`,className:`share-presets-item`,onClick:()=>{t(a[e].template_id,a[e].options),i(!1)},children:e}),(0,W.jsx)(`span`,{className:`source-chip source-chip--${a[e].source??`claude`}`,children:Zr[a[e].source??`claude`]})]},e))}):null,s.length>0?(0,W.jsxs)(`div`,{className:`share-presets-history`,children:[(0,W.jsx)(`div`,{className:`share-presets-history-heading`,role:`presentation`,children:`Recent shares`}),(0,W.jsx)(`ul`,{className:`share-presets-history-list`,children:s.map(e=>Tp(e)?(0,W.jsx)(`li`,{className:`share-presets-history-row share-presets-history-row--composed`,children:(0,W.jsxs)(`span`,{className:`share-presets-history-composed`,title:`${e.composite.title} · ${e.format??`unknown`} · ${e.exported_at}`,children:[(0,W.jsx)(`span`,{className:`share-presets-history-template`,children:`Composed`}),(0,W.jsxs)(`span`,{className:`share-presets-history-meta`,children:[` · `,e.sections.length,e.sections.length===1?` section`:` sections`,` · `,e.format??`unknown`,` · `,Zp(e.exported_at)]})]})},e.recipe_id):(0,W.jsxs)(`li`,{className:`share-presets-history-row`,children:[(0,W.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`share-presets-history-item`,onClick:()=>{t(e.template_id,e.options),i(!1)},title:`${e.template_id} · ${Zr[e.source??`claude`]} · ${e.format??`unknown`} · ${e.exported_at}`,children:[(0,W.jsx)(`span`,{className:`share-presets-history-template`,children:e.template_id}),(0,W.jsxs)(`span`,{className:`share-presets-history-meta`,children:[` · `,e.format??`unknown`,` · `,Zp(e.exported_at)]})]}),(0,W.jsx)(`span`,{className:`source-chip source-chip--${e.source??`claude`}`,children:Zr[e.source??`claude`]})]},e.recipe_id))})]}):null,(0,W.jsx)(`div`,{className:`share-presets-footer`,children:(0,W.jsx)(`button`,{type:`button`,role:`menuitem`,className:`share-presets-manage`,onClick:()=>{n(),i(!1)},children:`Manage presets…`})})]}):null]})}var $p=`share-manage-presets-title`,em=`share-manage-presets-name-heading`;function tm(e,t,n){let r=Array.from(document.querySelectorAll(`.share-manage-table tbody tr`)),i=new Set([`${e}/${t}`]);n!=null&&i.add(`${e}/${n}`);let a=r.findIndex(n=>n.dataset.presetKey===`${e}/${t}`);if(a>=0)for(let e of r.slice(a+1)){if(e.dataset.presetKey!=null&&i.has(e.dataset.presetKey))continue;let t=e.querySelector(`.share-manage-actions button`);if(t)return t}return document.getElementById(em)}function nm({open:e,onClose:t,shareIsTopmost:n=!0}){let[r,i]=(0,U.useState)([]),[a,o]=(0,U.useState)(!1),[s,c]=(0,U.useState)(null),l=Mp(),u=Vn(),d={tz:u.resolvedTz,offsetLabel:u.offsetLabel};we((0,U.useMemo)(()=>e?[{key:`Escape`,scope:`overlay`,layer:208,action:t}]:[],[e,t]));let f=(0,U.useRef)(null);Ur(f,{active:e,trapEnabled:n&&e,triggerId:Xp,initialFocus:`heading`}),(0,U.useEffect)(()=>{if(!e)return;let t=!1;return c(null),(async()=>{try{let e=await bp();if(t)return;let n=[];for(let[t,r]of Object.entries(e.presets))for(let[e,i]of Object.entries(r))n.push({panel:t,name:e,record:i});n.sort((e,t)=>e.panel===t.panel?e.name.localeCompare(t.name):e.panel.localeCompare(t.panel)),i(n)}catch(e){if(t)return;c((e instanceof ip?e.message??`HTTP ${e.status}`:e.message)??`Failed to load presets`)}})(),()=>{t=!0}},[e]);async function p(e){o(!0),c(null);let t=tm(e.panel,e.name);try{await Cp(e.panel,e.name)}catch(e){c((e instanceof ip?e.message??`HTTP ${e.status}`:e.message)??`Delete failed`),o(!1);return}i(t=>t.filter(t=>!(t.panel===e.panel&&t.name===e.name))),o(!1),l.close(()=>t),I({type:`SHOW_STATUS_TOAST`,text:`Deleted preset "${e.name}"`})}async function m(e,t,n=!1){o(!0),c(null);let r;try{r=await Sp({panel:e.panel,from_name:e.name,to_name:t,...n?{overwrite:!0}:{}})}catch(e){return o(!1),e instanceof ip&&e.code===`preset_name_conflict`?`conflict`:(c((e instanceof ip?e.message??`HTTP ${e.status}`:e.message)??`Rename failed`),`error`)}return i(i=>(n?i.filter(n=>!(n.panel===e.panel&&n.name===t)):i).map(n=>n.panel===e.panel&&n.name===e.name?{...n,name:t,record:{template_id:r.template_id,options:r.options,saved_at:r.saved_at,...r.source?{source:r.source}:{}}}:n)),o(!1),I({type:`SHOW_STATUS_TOAST`,text:`Renamed to "${t}"`}),`ok`}return e?(0,W.jsx)(`div`,{className:`share-manage-overlay`,children:(0,W.jsxs)(`div`,{className:`share-manage-modal`,ref:f,role:`dialog`,"aria-modal":`true`,"aria-labelledby":$p,onClick:e=>e.stopPropagation(),children:[(0,W.jsx)(uc,{title:`Manage presets`,titleId:$p,className:`share-manage-header`,onClose:t,closeClassName:`share-manage-close`}),(0,W.jsxs)(`div`,{className:`share-manage-content`,children:[s?(0,W.jsx)(`div`,{className:`share-manage-error`,role:`alert`,children:s}):null,r.length===0&&!s?(0,W.jsx)(`p`,{className:`share-manage-empty`,children:`No saved presets yet.`}):null,r.length>0?(0,W.jsxs)(`table`,{className:`share-manage-table`,children:[(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{children:`Panel`}),(0,W.jsx)(`th`,{id:em,tabIndex:-1,children:`Name`}),(0,W.jsx)(`th`,{children:`Saved at`}),(0,W.jsx)(`th`,{})]})}),(0,W.jsx)(`tbody`,{children:r.map(e=>(0,W.jsx)(rm,{row:e,busy:a,confirm:l,savedAtLabel:B.datetimeShort(e.record.saved_at,d),onDelete:()=>void p(e),onRename:(t,n)=>m(e,t,n)},`${e.panel}/${e.name}`))})]}):null]})]})}):null}function rm({row:e,busy:t,confirm:n,savedAtLabel:r,onDelete:i,onRename:a}){let[o,s]=(0,U.useState)(!1),[c,l]=(0,U.useState)(e.name),[u,d]=(0,U.useState)(null),f=`${e.panel}/${e.name}`,p=`delete:${f}`,m=`rename:${f}`,h=n.isArmed(p),g=n.isArmed(m),_=()=>{let t=c.trim();if(!t||t===e.name){l(e.name),s(!1);return}s(!1),a(t).then(e=>{e===`conflict`&&(d(t),n.arm(m))})};return(0,W.jsxs)(`tr`,{"data-preset-key":f,children:[(0,W.jsx)(`td`,{children:_p(e.panel)}),(0,W.jsx)(`td`,{children:o?(0,W.jsx)(`input`,{className:`share-manage-name-input`,autoFocus:!0,value:c,disabled:t,maxLength:64,onChange:e=>l(e.target.value),onKeyDown:t=>{t.key===`Enter`?(t.preventDefault(),_()):t.key===`Escape`&&(t.preventDefault(),t.stopPropagation(),l(e.name),s(!1))}}):(0,W.jsx)(`span`,{children:e.name})}),(0,W.jsx)(`td`,{children:(0,W.jsx)(`time`,{dateTime:e.record.saved_at,children:r})}),(0,W.jsxs)(`td`,{className:`share-manage-actions`,children:[!h&&!g?o?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`button`,{type:`button`,disabled:t,onClick:_,children:`Save`}),(0,W.jsx)(`button`,{type:`button`,disabled:t,onClick:()=>{l(e.name),s(!1)},children:`Cancel`})]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`button`,{type:`button`,disabled:t,onClick:()=>s(!0),children:`Rename`}),(0,W.jsx)(`button`,{type:`button`,disabled:t,onClick:()=>n.arm(p),children:`Delete`})]}):null,(0,W.jsx)(Np,{id:p,host:n,prompt:`Delete "${e.name}"?`,confirmLabel:`Delete`,onConfirm:i}),(0,W.jsx)(Np,{id:m,host:n,prompt:`A preset named "${u??``}" already exists`,confirmLabel:`Replace it`,onConfirm:()=>{let t=u;if(t==null)return;let r=tm(e.panel,e.name,t);a(t,!0).then(e=>{e===`ok`&&(d(null),n.close(()=>r))})}})]})]})}function im(){return{format:`md`,theme:`light`,reveal_projects:!1,no_branding:!1,top_n:5,period:{kind:`current`},project_allowlist:null,show_chart:!0,show_table:!0}}function am(e,t){if(!t)return e;let n={...e,...t};return t.period&&(n.period={...e.period,...t.period}),n}function om({revealProjects:e,hasProjectNames:t}){let n=t===!1,r=n?`neutral`:e?`warn`:`info`,i=n?`This export contains no project names.`:e?`Export will show real project names.`:`Preview shows real names. Export is anonymized.`;return(0,W.jsx)(`p`,{className:`share-privacy-status share-privacy-status--${r}`,role:`status`,"aria-live":`polite`,children:i})}function sm({panel:e,source:t=`claude`,account:n=null,onClose:r,initialParams:i}){let a=(0,U.useRef)(null),[o,s]=(0,U.useState)(null),[c,l]=(0,U.useState)(!1),u=_p(e),[d,f]=(0,U.useState)(null),[p,m]=(0,U.useState)(null),[h,g]=(0,U.useState)(null),[_,v]=(0,U.useState)(()=>{let e=im();return i?.windowWeeks==null?e:{...e,windowWeeks:i.windowWeeks}}),y=(0,U.useRef)(!1),[b,x]=(0,U.useState)(!1),S=`share-modal-title`;qr(!0);let C=(0,U.useSyncExternalStore)(F,()=>je(R())===`share`);Ur(a,{active:!0,trapEnabled:C&&!b,initialFocus:`heading`}),we((0,U.useMemo)(()=>[{key:`Escape`,scope:`overlay`,layer:200,when:()=>!b&&R().composerModal===null,action:r}],[r,b])),(0,U.useEffect)(()=>{let t=!1;return f(null),m(null),op(e).then(e=>{if(t)return;f(e.templates);let n=e.templates[0];n&&(g(n.id),y.current||v(e=>am(e,n.default_options)))}).catch(e=>{t||m(e instanceof ip?`Couldn't load templates: ${e.message??`HTTP ${e.status}`}`:`Couldn't load templates: ${e.message}`)}),()=>{t=!0}},[e]),(0,U.useEffect)(()=>{if(!d||!h||y.current)return;let e=d.find(e=>e.id===h);e&&v(t=>am(t,e.default_options))},[h,d]);let w=(0,U.useMemo)(()=>{if(!d||!h)return null;let e=d.find(e=>e.id===h);return e?`${u} — ${e.label}`:null},[d,h,u]),T=e=>{y.current=!0,v(e)};return(0,W.jsxs)(`div`,{ref:a,className:`share-modal`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":S,onClick:e=>e.stopPropagation(),children:[(0,W.jsx)(uc,{title:`Share ${u} report`,titleId:S,className:`share-modal-header`}),(0,W.jsx)(`div`,{className:`share-modal-source`,"aria-label":`Source: ${Zr[t]}`,children:(0,W.jsx)(`span`,{className:`source-chip source-chip--${t}`,children:Zr[t]})}),(0,W.jsxs)(`div`,{className:`share-modal-body`,children:[(0,W.jsxs)(`section`,{className:`share-section share-gallery-section`,"aria-label":`Template gallery`,children:[(0,W.jsx)(`div`,{className:`share-gallery-header`,children:(0,W.jsx)(Qp,{panel:e,onPick:(e,t)=>{g(e),y.current=!0,v(e=>({...e,...t}))},onManage:()=>x(!0)})}),(0,W.jsx)(up,{panel:e,templates:d,error:p,selectedTemplateId:h,onSelect:e=>g(e)})]}),(0,W.jsx)(`div`,{className:`share-knobs-col`,"aria-label":`Render options`,children:(0,W.jsx)(dp,{options:_,onChange:T})}),(0,W.jsxs)(`div`,{className:`share-preview-col`,"aria-label":`Live preview`,children:[c?null:(0,W.jsx)(om,{revealProjects:!!_.reveal_projects,hasProjectNames:o}),(0,W.jsx)(hp,{panel:e,source:t,account:n,templateId:h,options:_,artifactLabel:w,onProjectNamesResolved:s,onPreviewFailed:l})]})]}),(0,W.jsx)(`footer`,{className:`share-modal-footer`,children:(0,W.jsx)(Yp,{panel:e,source:t,account:n,previewFailed:c,templateId:h,options:_,onOptionsChange:T})}),(0,W.jsx)(lc,{className:`share-modal-close`,label:`Close share modal`,onClose:r}),(0,W.jsx)(nm,{open:b,shareIsTopmost:C,onClose:()=>x(!1)})]})}function cm(e,t){return{title:t.title,theme:t.theme,format:t.format,no_branding:t.no_branding,reveal_projects:t.reveal_projects,sections:e.map(e=>({snapshot:{panel:e.panel,template_id:e.template_id,options:e.options,data_digest_at_add:e.data_digest_at_add,...e.data_digest_version_at_add==null?{}:{data_digest_version_at_add:e.data_digest_version_at_add},kernel_version:e.kernel_version,source:e.source,...e.account==null?{}:{account:e.account}}}))}}async function lm(e,t){let n=await fetch(`/api/share/compose`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),signal:t?.signal});if(!n.ok){let e={};try{e=await n.json()}catch{}throw new ip(n.status,e.field,e.error??`HTTP ${n.status}`,e.code)}return n.json()}function um({items:e,results:t,kernelVersion:n,onRefresh:r,onRemove:i}){let a=hu(mu(gd,{activationConstraint:{distance:4}}),mu(dd,{coordinateGetter:Uf})),[o,s]=(0,U.useState)(null);we((0,U.useMemo)(()=>[{key:`Escape`,scope:`overlay`,layer:215,when:()=>o!==null,action:()=>{let e=o;s(null),e&&document.getElementById(`composer-kebab-${e}`)?.focus()}}],[o]));function c(t){if(!t.over||t.active.id===t.over.id)return;let n=e.findIndex(e=>e.id===t.active.id),r=e.findIndex(e=>e.id===t.over.id);n<0||r<0||I({type:`BASKET_REORDER`,fromIdx:n,toIdx:r})}return(0,W.jsx)(mf,{sensors:a,collisionDetection:Cu,onDragEnd:c,children:(0,W.jsx)(jf,{items:e.map(e=>e.id),strategy:Of,children:(0,W.jsx)(`ul`,{className:`composer-section-list`,children:e.map((e,a)=>(0,W.jsx)(dm,{item:e,result:t[a],kernelVersion:n,onRefresh:r,onRemove:i,isKebabOpen:o===e.id,onKebabToggle:()=>s(t=>t===e.id?null:e.id),onKebabClose:()=>s(null)},e.id))})})})}function dm({item:e,result:t,kernelVersion:n,onRefresh:r,onRemove:i,isKebabOpen:a,onKebabToggle:o,onKebabClose:s}){let{attributes:c,listeners:l,setNodeRef:u,transform:d,transition:f,isDragging:p}=zf({id:e.id}),m=Cs(),h={transform:$l.Transform.toString(d),transition:m?void 0:f,opacity:p?.4:1},g=t?.drift_detected,_=e.kernel_version!==n,v=!!(g||_);return(0,W.jsxs)(`li`,{ref:u,style:h,className:`composer-section-row`,children:[(0,W.jsx)(`button`,{className:`composer-drag-handle`,"aria-label":`Reorder ${e.label_hint}`,type:`button`,...c,...l,children:`≡`}),(0,W.jsx)(`span`,{className:`composer-section-label`,children:e.label_hint}),(0,W.jsx)(`span`,{className:`source-chip source-chip--${e.source}`,children:Zr[e.source]}),v?(0,W.jsx)(`span`,{className:`composer-outdated-badge`,title:g&&_?`Data and kernel both shifted since add-time. Refresh to update.`:g?`Data has changed since this section was added. Refresh to update.`:`Kernel updated since this section was added. Refresh to re-render at the new version.`,children:`Outdated`}):null,(0,W.jsxs)(`div`,{className:`composer-section-actions`,children:[(0,W.jsx)(`button`,{type:`button`,id:`composer-kebab-${e.id}`,"aria-expanded":a,"aria-controls":a?`composer-kebab-menu-${e.id}`:void 0,onClick:o,"aria-label":`Actions for ${e.label_hint}`,children:`⋯`}),a?(0,W.jsxs)(`ul`,{id:`composer-kebab-menu-${e.id}`,className:`composer-section-menu`,children:[(0,W.jsx)(`li`,{children:(0,W.jsx)(`button`,{type:`button`,onClick:()=>{r(e.id),s()},children:`Refresh from current data`})}),(0,W.jsx)(`li`,{children:(0,W.jsx)(`button`,{type:`button`,onClick:()=>{i(e.id),s()},"aria-label":`Remove ${e.label_hint}`,children:`Remove`})})]}):null]})]})}function fm(e,t){return t&&e>0}function pm(e){return`cctally-report-${new Date().toISOString().slice(0,10).replaceAll(`-`,``)}.${e===`md`?`md`:e}`}function mm(e){switch(e){case`md`:return`text/markdown;charset=utf-8`;case`html`:return`text/html;charset=utf-8`;case`svg`:return`image/svg+xml;charset=utf-8`}}var hm=`composer-clear-all`,gm=`composer-preview-failed-note`;function _m(e){return`${e} ${e===1?`section`:`sections`}`}function vm(e){return e===`light`?`#ffffff`:`#0f172a`}function ym(e,t){let n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=e,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),setTimeout(()=>URL.revokeObjectURL(n),0)}var bm=200;function xm(){return R().composerModal}function Sm(){return R().basket}var Cm=`composer-modal-title`;function wm(){let e=(0,U.useSyncExternalStore)(F,xm),t=(0,U.useSyncExternalStore)(F,Sm),n=zn(),i=Mp(),a=(0,U.useRef)(null);qr(e?.open??!1),Ur(a,{active:e?.open??!1,initialFocus:`heading`});let[o,s]=(0,U.useState)(``),[c,l]=(0,U.useState)(`light`),[u,d]=(0,U.useState)(`html`),[f,p]=(0,U.useState)(!0),[m,h]=(0,U.useState)(!1),[g,_]=(0,U.useState)(null),[v,y]=(0,U.useState)(null),[b,x]=(0,U.useState)(!1),[S,C]=(0,U.useState)(null);fp(S);let w=(0,U.useRef)(null),[T,ee]=(0,U.useState)(null),[E,D]=(0,U.useState)(null);(0,U.useEffect)(()=>{D(null)},[u,c,f,m]),we((0,U.useMemo)(()=>[{key:`Escape`,scope:`overlay`,layer:210,when:()=>R().composerModal!==null,action:()=>I(r())}],[])),(0,U.useEffect)(()=>{e?.open&&o===``&&s(`cctally report — ${new Date().toISOString().slice(0,10)}`)},[e?.open,o]),(0,U.useEffect)(()=>{if(!e?.open||t.items.length===0||o===``)return;let n=setTimeout(()=>{w.current?.abort();let e=new AbortController;w.current=e,x(!0),y(null),lm(cm(t.items,{title:o,theme:c,format:u,no_branding:m,reveal_projects:!f}),{signal:e.signal}).then(t=>{e.signal.aborted||_(t)}).catch(t=>{t?.name!==`AbortError`&&(e.signal.aborted||y(t instanceof ip?t.message??`HTTP ${t.status}`:t.message))}).finally(()=>{e.signal.aborted||x(!1)})},bm);return()=>clearTimeout(n)},[e?.open,t.items,o,c,u,f,m]);async function O(e){let n=t.items.findIndex(t=>t.id===e);if(n<0)return;let r=t.items[n];try{let t=await sp({panel:r.panel,template_id:r.template_id,options:{...r.options,reveal_projects:!f},source:r.source,account:r.account}),i=H({panel:r.panel,template_id:r.template_id,options:r.options,added_at:new Date().toISOString(),data_digest_at_add:t.snapshot.data_digest,kernel_version:t.snapshot.kernel_version,label_hint:r.label_hint,source:r.source,account:r.account,id:r.id});I({type:`BASKET_REMOVE`,id:e}),I({type:`BASKET_ADD`,item:i});let a=R().basket.items.length-1;a!==n&&I({type:`BASKET_REORDER`,fromIdx:a,toIdx:n})}catch(e){y(`Refresh failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}}let k=async e=>{let n=await lm(cm(t.items,{title:o,theme:c,format:e,no_branding:m,reveal_projects:!f}));return{body:n.body,content_type:n.content_type}},te=e=>I({type:`SHOW_STATUS_TOAST`,text:e}),A=(e,n)=>{Op({sections:t.items.map(e=>({panel:e.panel,template_id:e.template_id,options:e.options,source:e.source,...e.account==null?{}:{account:e.account}})),composite:{title:o,theme:c,reveal_projects:!f,no_branding:m},format:n,destination:e}).catch(()=>{})},j=async(e,t,n)=>{if(T==null){ee(e),D(null);try{await t()}catch(e){D(`${n} failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}finally{ee(null)}}},M=()=>j(`copy`,async()=>{let{body:e}=await k(`md`);if(!navigator.clipboard||typeof navigator.clipboard.writeText!=`function`)throw Error(`Clipboard API unavailable in this browser`);await navigator.clipboard.writeText(e),te(`Copied`),A(`copy`,`md`)},`Copy`),ne=()=>j(`download`,async()=>{let{body:e}=await k(u),t=new Blob([e],{type:mm(u)});ym(pm(u),t),te(`Downloaded`),A(`download`,u)},`Download`),re=()=>{if(T!=null)return;let e=Rp();if(!e){D(`Open failed: ${zp}`);return}j(`open`,async()=>{try{let{body:t}=await k(u);e.navigate(new Blob([t],{type:mm(u)}))}catch(t){throw e.close(),t}te(`Opened`),A(`open`,u)},`Open`)},ie=()=>j(`png`,async()=>{let{body:e}=await k(`svg`),t=await Ip(e,2,vm(c));ym(pm(`svg`).replace(/\.svg$/,`.png`),t),te(`PNG downloaded`),A(`png`,`svg`)},`PNG export`),N=()=>j(`print`,async()=>{let{body:e}=await k(`html`);Vp(e),te(`Print dialog opened`),A(`print`,`html`)},`Print`),ae=T==null&&u===`md`&&t.items.length>0,P=T==null&&t.items.length>0,oe=T==null&&(u===`html`||u===`svg`)&&t.items.length>0,se=T==null&&u===`svg`&&t.items.length>0,ce=T==null&&u===`html`&&t.items.length>0,L=!f,le=fm(t.items.length,L),ue=L?t.items.length:0;if(!e?.open)return null;let z=(0,W.jsx)(uc,{title:`Compose report`,titleId:Cm,className:`composer-modal-header`,onClose:()=>I(r()),closeClassName:`composer-modal-close`});return t.items.length===0?(0,W.jsxs)(`div`,{className:`composer-modal composer-modal-empty${n?` composer-modal-mobile`:``}`,ref:a,tabIndex:-1,role:`dialog`,"aria-modal":`true`,"aria-labelledby":Cm,children:[z,(0,W.jsx)(`p`,{className:`composer-empty-message`,children:`Basket is empty. Open any panel's share menu and pick + Basket to add a section.`})]}):(0,W.jsxs)(`div`,{className:`composer-modal${n?` composer-modal-mobile`:``}`,ref:a,tabIndex:-1,role:`dialog`,"aria-modal":`true`,"aria-labelledby":Cm,children:[z,(0,W.jsxs)(`div`,{className:`composer-knobs`,children:[(0,W.jsxs)(`label`,{children:[`Title`,(0,W.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value)})]}),(0,W.jsxs)(`label`,{children:[`Theme`,(0,W.jsxs)(`select`,{value:c,onChange:e=>l(e.target.value),children:[(0,W.jsx)(`option`,{value:`light`,children:`light`}),(0,W.jsx)(`option`,{value:`dark`,children:`dark`})]})]}),(0,W.jsxs)(`label`,{children:[`Format`,(0,W.jsxs)(`select`,{value:u,onChange:e=>d(e.target.value),children:[(0,W.jsx)(`option`,{value:`html`,children:`html`}),(0,W.jsx)(`option`,{value:`md`,children:`md`}),(0,W.jsx)(`option`,{value:`svg`,children:`svg`})]})]}),(0,W.jsxs)(`label`,{children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:f,onChange:e=>p(e.target.checked)}),`Anon on export`]}),(0,W.jsxs)(`label`,{children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:m,onChange:e=>h(e.target.checked)}),`No branding`]})]}),le?(0,W.jsxs)(`div`,{className:`composer-anon-banner`,role:`status`,"aria-live":`polite`,children:[(0,W.jsxs)(`span`,{children:[ue,` section`,ue===1?``:`s`,` contain real project names. They will appear in the export.`]}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>p(!0),children:`Anonymize all`})]}):null,(0,W.jsxs)(`div`,{className:`composer-body`,children:[(0,W.jsx)(um,{items:t.items,results:g?.snapshot.section_results??[],kernelVersion:g?.snapshot.kernel_version??1,onRefresh:e=>{O(e)},onRemove:e=>I({type:`BASKET_REMOVE`,id:e})}),(0,W.jsxs)(`figure`,{className:`composer-preview-frame`,children:[(0,W.jsxs)(`figcaption`,{className:`composer-preview-label`,children:[`Preview · `,c]}),(0,W.jsx)(`iframe`,{className:`composer-preview`,title:`Combined preview`,tabIndex:-1,sandbox:`allow-same-origin`,srcDoc:g?.body??`<p>Composing…</p>`,ref:C})]})]}),b?(0,W.jsx)(`div`,{className:`composer-busy`,children:`Composing…`}):null,v?(0,W.jsx)(`div`,{className:`composer-error`,role:`alert`,children:v}):null,E?(0,W.jsx)(`div`,{className:`composer-error`,role:`alert`,children:E}):null,(0,W.jsxs)(`footer`,{className:`composer-actions`,children:[v?(0,W.jsx)(`p`,{className:`share-preview-failed-note`,id:gm,children:Wp}):null,(0,W.jsxs)(`div`,{className:`composer-export-row`,children:[(0,W.jsx)(`button`,{type:`button`,"aria-describedby":v?gm:void 0,className:`share-action share-action-copy`,onClick:M,disabled:!ae,title:u===`md`?T===`copy`?`Copying…`:`Copy composed report to clipboard`:`Copy is available for Markdown only`,children:T===`copy`?`Copying…`:`Copy`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":v?gm:void 0,className:`share-action share-action-download`,onClick:ne,disabled:!P,title:T===`download`?`Downloading…`:`Download composed report`,children:T===`download`?`Downloading…`:`Download`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":v?gm:void 0,className:`share-action share-action-open`,onClick:re,disabled:!oe,title:u===`html`||u===`svg`?T===`open`?`Opening…`:`Open composed report in new tab`:`Open is available for HTML/SVG`,children:T===`open`?`Opening…`:`Open`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":v?gm:void 0,className:`share-action share-action-png`,onClick:ie,disabled:!se,title:u===`svg`?T===`png`?`Rasterizing…`:`Download composed report as PNG`:`PNG export — available for SVG format only`,children:T===`png`?`Rasterizing…`:`PNG`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":v?gm:void 0,className:`share-action share-action-print`,onClick:N,disabled:!ce,title:u===`html`?T===`print`?`Opening print dialog…`:`Open the browser print dialog (save as PDF)`:`Print → PDF — available for HTML format only`,children:T===`print`?`Printing…`:`Print → PDF`})]}),(0,W.jsx)(`button`,{type:`button`,className:`composer-clear-all`,onClick:()=>i.arm(hm),children:`Clear all`}),(0,W.jsx)(Np,{id:hm,host:i,prompt:`Clear ${_m(t.items.length)}?`,confirmLabel:`Clear ${_m(t.items.length)}`,onConfirm:()=>{I({type:`BASKET_CLEAR`}),i.close(()=>document.querySelector(`.composer-modal-close`))}})]})]})}function Tm(){let e=(0,U.useSyncExternalStore)(F,()=>R().shareModal),t=(0,U.useRef)(null),n=(0,U.useRef)(!1);(0,U.useEffect)(()=>{if(e)n.current||(n.current=!0,t.current=(e.triggerId?document.getElementById(e.triggerId):null)??document.activeElement);else if(n.current){n.current=!1;let e=t.current;if(t.current=null,e&&typeof e.focus==`function`&&document.contains(e))e.focus();else{let e=document.activeElement;e&&typeof e.blur==`function`&&e.blur(),document.body.focus()}}},[e]);let r=()=>I(M());return(0,W.jsxs)(W.Fragment,{children:[e?(0,W.jsx)(`div`,{id:`share-modal-root`,className:`share-overlay`,onClick:e=>{e.stopPropagation(),e.target===e.currentTarget&&r()},children:(0,W.jsx)(sm,{panel:e.panel,source:e.source,account:e.source===`claude`?null:e.account,initialParams:e.params,onClose:r})}):null,(0,W.jsx)(wm,{})]})}function Em(e,t){return e==null?t?`error`:`loading`:`ready`}function Dm({kind:e,message:t}){let n=e===`stale`?`Disconnected — data may be stale. Reconnecting…`:t??`Couldn’t load dashboard data. Reconnecting…`;return(0,W.jsxs)(`div`,{className:`stale-banner stale-banner-${e}`,role:`status`,"aria-live":`polite`,children:[(0,W.jsx)(`svg`,{className:`icon`,"aria-hidden":`true`,children:(0,W.jsx)(`use`,{href:`/static/icons.svg#warn-triangle`})}),(0,W.jsx)(`span`,{children:n}),e===`error`&&t==null&&(0,W.jsxs)(`span`,{className:`stale-banner-hint`,children:[`Check that `,(0,W.jsx)(`code`,{children:`cctally dashboard`}),` is running.`]})]})}var Om=[`tall`,`medium`,`short`];function km({span:e}){return(0,W.jsx)(`div`,{className:`panel-host`,"data-span":e,children:(0,W.jsxs)(`div`,{className:`panel is-skeleton`,children:[(0,W.jsx)(`div`,{className:`skel skel-header`}),(0,W.jsx)(`div`,{className:`skel skel-line`}),(0,W.jsx)(`div`,{className:`skel skel-line short`})]})})}function Am({mode:t}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`sr-only`,role:`status`,"aria-live":`polite`,children:`Loading dashboard…`}),(0,W.jsx)(`div`,{className:`skel-hero`,"aria-hidden":`true`}),(0,W.jsx)(`div`,{className:`dash-grid`,"aria-hidden":`true`,"data-board-mode":t,children:Om.map(n=>{let r=le.filter(t=>e[t].row===n);return(0,W.jsx)(`div`,{className:`bento-row row-${n}`,children:r.map(e=>(0,W.jsx)(km,{span:Xf(e,t)},e))},n)})})]})}function jm(){return typeof window>`u`||!window.matchMedia||window.matchMedia(Ln).matches?`bento`:window.matchMedia(In).matches?`intermediate`:`stack`}function Mm(){let[e,t]=(0,U.useState)(jm);return(0,U.useEffect)(()=>{if(typeof window>`u`||!window.matchMedia)return;let e=window.matchMedia(Ln),n=window.matchMedia(In),r=()=>t(jm());return e.addEventListener(`change`,r),n.addEventListener(`change`,r),r(),()=>{e.removeEventListener(`change`,r),n.removeEventListener(`change`,r)}},[]),e}var Nm=class extends U.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(e,t){console.error(`deferred ${this.props.name} failed to load`,e,t)}render(){let{children:e,name:t}=this.props;return this.state.failed?(0,W.jsx)(`div`,{className:`modal-backdrop feature-load-failure`,role:`alert`,"aria-label":`${t} failed to load`,children:(0,W.jsxs)(`section`,{className:`modal-card feature-load-failure-card`,children:[(0,W.jsxs)(`h2`,{children:[t,` could not load`]}),(0,W.jsx)(`p`,{children:`The dashboard may have updated while this tab was open. Reload to use one coherent build.`}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>window.location.reload(),children:`Reload dashboard`})]})}):(0,W.jsx)(U.Suspense,{fallback:(0,W.jsxs)(`div`,{className:`feature-load-pending`,role:`status`,children:[`Loading `,t,`…`]}),children:e})}},Pm=`modulepreload`,Fm=function(e){return`/static/`+e},Im={},Lm=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=Fm(t,n),t in Im)return;Im[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:Pm,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Rm=(0,U.lazy)(()=>Lm(()=>import(`./ConversationsView-BB9vUiL6.js`).then(e=>({default:e.ConversationsView})),__vite__mapDeps([0,1,2]))),zm=(0,U.lazy)(()=>Lm(()=>import(`./ModalRoot-DvRKHbQE.js`).then(e=>({default:e.ModalRoot})),__vite__mapDeps([3,1,2,4]))),Bm=(0,U.lazy)(()=>Lm(()=>import(`./SourceDetailModal-DSAWo2Fp.js`).then(e=>({default:e.SourceDetailModal})),__vite__mapDeps([5,1,2,4]))),Vm=(0,U.lazy)(()=>Lm(()=>import(`./UpdateModal-R_9dOVnh.js`).then(e=>({default:e.UpdateModal})),__vite__mapDeps([6,1]))),Hm=(0,U.lazy)(()=>Lm(()=>import(`./DoctorModal-DFY2iPDf.js`).then(e=>({default:e.DoctorModal})),__vite__mapDeps([7,1])));function Um(){let t=(0,U.useSyncExternalStore)(F,()=>R().prefs.panelOrder),n=(0,U.useSyncExternalStore)(F,()=>R().activeSource),r=(0,U.useSyncExternalStore)(F,()=>R().view),i=(0,U.useSyncExternalStore)(F,()=>R().openModal),a=(0,U.useSyncExternalStore)(F,()=>R().openSourceDetail),o=(0,U.useSyncExternalStore)(F,()=>R().update.modalOpen),s=(0,U.useSyncExternalStore)(F,()=>R().doctorModalOpen),l=We(),{disconnected:u,bootstrapError:d,bootstrapMessage:f}=Wt(),p=Em(l,d),m=Mm(),{tall:h,medium:g,short:_,globalIndex:v}=(0,U.useMemo)(()=>{let r=c(t,C(l,n)),i=t=>r.filter(n=>e[n].row===t);return{tall:i(`tall`),medium:i(`medium`),short:i(`short`),globalIndex:new Map(r.map((e,t)=>[e,t]))}},[t,l,n]);return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`a`,{className:`skip-link`,href:`#main-content`,children:`Skip to main content`}),(0,W.jsx)(An,{}),(0,W.jsx)(`main`,{id:`main-content`,tabIndex:-1,children:r===`conversations`?(0,W.jsx)(Nm,{name:`Conversations`,children:(0,W.jsx)(Rm,{})}):p===`loading`?(0,W.jsx)(Am,{mode:m}):p===`error`?(0,W.jsx)(Dm,{kind:`error`,message:f}):(0,W.jsxs)(W.Fragment,{children:[u&&(0,W.jsx)(Dm,{kind:`stale`}),(0,W.jsx)(yr,{}),(0,W.jsx)(ws.Provider,{value:m,children:(0,W.jsxs)(`div`,{className:`dash-grid${u?` is-stale`:``}`,"data-board-mode":m,children:[(0,W.jsx)(rp,{items:h,className:`bento-row row-tall`,children:h.map(e=>(0,W.jsx)(Zf,{id:e,index:v.get(e)??0,mode:m},e))}),(0,W.jsx)(rp,{items:g,className:`bento-row row-medium`,children:g.map(e=>(0,W.jsx)(Zf,{id:e,index:v.get(e)??0,mode:m},e))}),(0,W.jsx)(rp,{items:_,className:`bento-row row-short`,children:_.map(e=>(0,W.jsx)(Zf,{id:e,index:v.get(e)??0,mode:m},e))})]})})]})}),(0,W.jsx)(Pr,{}),(0,W.jsx)(mc,{}),(0,W.jsx)(sl,{}),i?(0,W.jsx)(Nm,{name:`Dashboard detail`,children:(0,W.jsx)(zm,{})}):null,a?(0,W.jsx)(Nm,{name:`Source detail`,children:(0,W.jsx)(Bm,{})}):null,(0,W.jsx)(Tm,{}),o?(0,W.jsx)(Nm,{name:`Update`,children:(0,W.jsx)(Vm,{})}):null,s?(0,W.jsx)(Nm,{name:`Doctor`,children:(0,W.jsx)(Hm,{})}):null,(0,W.jsx)(El,{})]})}var Wm=`#/conversations`;function Gm(e){if(!e.startsWith(`v1.`))return null;try{let t=e.slice(3).replace(/-/g,`+`).replace(/_/g,`/`),n=t+`=`.repeat((4-t.length%4)%4),r=Uint8Array.from(atob(n),e=>e.charCodeAt(0)),i=JSON.parse(new TextDecoder().decode(r));return i.version!==1||i.resourceKind!==`conversation`?null:i.source===`claude`||i.source===`codex`?i.source:null}catch{return null}}function Km(e){let[t,n=``]=(e.startsWith(`#`)?e.slice(1):e).split(`?`,2),r=new URLSearchParams(n),i=t===`/conversation`||t.startsWith(`/conversation/`)?`/conversations`+t.slice(13):t;if(i===``||i===`/`)return null;if(i===`/conversations`||i===`/conversations/`)return{sessionId:null,turnUuid:null,compare:null};if(!i.startsWith(`/conversations/`))return null;let a=i.slice(15).split(`/`).filter(e=>e.length>0),o=e=>e===`claude`||e===`codex`?e:null;if(a[0]===`source`&&(a.length===3||a.length===4)){let e=o(a[1]);if(!e||!a[2])return null;let t=r.get(`account`)||void 0,n=t?{source:e,key:decodeURIComponent(a[2]),account_key:t}:{source:e,key:decodeURIComponent(a[2])};return{sessionId:e===`claude`?n.key:null,conversationRef:n,turnUuid:a[3]?decodeURIComponent(a[3]):null,compare:null,qualified:!0}}if(a[0]===`compare`&&a.length===5){let e=o(a[1]),t=o(a[3]);return!e||!t||!a[2]||!a[4]?null:{sessionId:null,conversationRef:null,turnUuid:null,compare:{a:r.get(`a_account`)?{source:e,key:decodeURIComponent(a[2]),account_key:r.get(`a_account`)}:{source:e,key:decodeURIComponent(a[2])},b:r.get(`b_account`)?{source:t,key:decodeURIComponent(a[4]),account_key:r.get(`b_account`)}:{source:t,key:decodeURIComponent(a[4])}},qualified:!0}}if(a[0]===`compare`&&a.length>=3&&a[1]&&a[2])return{sessionId:null,conversationRef:null,turnUuid:null,compare:{a:z(decodeURIComponent(a[1])),b:z(decodeURIComponent(a[2]))}};if(a.length===1||a.length===2){let e=decodeURIComponent(a[0]),t=Gm(e);if(t)return{sessionId:t===`claude`?e:null,conversationRef:{source:t,key:e},turnUuid:a[1]?decodeURIComponent(a[1]):null,compare:null,qualified:!0}}return a.length===1?{sessionId:decodeURIComponent(a[0]),turnUuid:null,compare:null}:a.length===2?{sessionId:decodeURIComponent(a[0]),turnUuid:decodeURIComponent(a[1]),compare:null}:null}function qm(e,t){if(V(e)){let n=`${Wm}/source/${e.source}/${encodeURIComponent(e.key)}`,r=t?`${n}/${encodeURIComponent(t)}`:n;return e.account_key?`${r}?account=${encodeURIComponent(e.account_key)}`:r}if(typeof e==`object`&&e){let t=e;if(t.compare){let e=P(t.compare.a),n=P(t.compare.b),r=`${Wm}/compare/${e.source}/${encodeURIComponent(e.key)}/${n.source}/${encodeURIComponent(n.key)}`,i=new URLSearchParams;return e.account_key&&i.set(`a_account`,e.account_key),n.account_key&&i.set(`b_account`,n.account_key),i.size?`${r}?${i.toString()}`:r}return t.conversationRef?qm(t.conversationRef,t.turnUuid):qm(t.sessionId,t.turnUuid)}let n=e;if(n===null)return Wm;let r=encodeURIComponent(n);return t?`${Wm}/${r}/${encodeURIComponent(t)}`:`${Wm}/${r}`}function Jm(e,t,n,r){return`${e}${t}${V(n),qm(n,r)}`}function Ym(e,t){return e===`dashboard`?``:qm(t||null)}var Xm=`cctallyRoute`;function Zm(e){return typeof e==`object`&&!!e&&Xm in e}function Qm(e,t){if(e===window.location.hash)return;let n=e===``?window.location.pathname+window.location.search:e,r={[Xm]:!0};t===`push`?window.history.pushState(r,``,n):window.history.replaceState(r,``,n)}function $m(e,t){Qm((V(e),qm(e,t)),`replace`)}function eh(e,t={}){let n=[{type:`SET_ACTIVE_SOURCE`,source:e.source},{type:`SET_ACCOUNT_FOCUS`,source:e.source,slot:`provider`,account:e.account_key??`all`}];return t.preserveRailState||(n.push({type:`CLEAR_CONVERSATION_FILTERS`}),n.push({type:`SET_CONVERSATION_SEARCH`,text:``})),n}var th=!1,nh=null,rh=!1;function ih(e,t,n,r={}){let i=th;th=!0;try{for(let n of eh(t,r))e(n);e(n)}finally{th=i}i||nh?.()}function ah(e){let t={preserveRailState:rh};rh=!1,th=!0;try{oh(e,t)}finally{th=!1}}function oh(e,t){let n=Km(window.location.hash);if(n===null){e.dispatch({type:`SET_VIEW`,view:`dashboard`});return}if(n.compare){let r=Oe(n.compare.a,n.compare.b)?n.qualified?{type:`OPEN_CONVERSATION`,conversationRef:n.compare.a}:{type:`OPEN_CONVERSATION`,sessionId:n.compare.a.key}:n.qualified?{type:`OPEN_COMPARE`,aRef:n.compare.a,bRef:n.compare.b}:{type:`OPEN_COMPARE`,a:n.compare.a.key,b:n.compare.b.key};ih(e.dispatch,n.compare.a,r,t);return}let r=n.conversationRef??(n.sessionId?z(n.sessionId):null);if(r===null){e.dispatch({type:`SET_VIEW`,view:`conversations`}),e.dispatch({type:`SELECT_CONVERSATION`,sessionId:null});return}let i=n.turnUuid?{...n.qualified?{conversation_ref:r}:{},session_id:r.key,uuid:n.turnUuid}:void 0;ih(e.dispatch,r,n.qualified?{type:`OPEN_CONVERSATION`,conversationRef:r,jump:i}:{type:`OPEN_CONVERSATION`,sessionId:r.key,jump:i},t)}function sh(e={getState:R,subscribeStore:F,dispatch:I}){let t=window.history.scrollRestoration;if(window.history.scrollRestoration=`manual`,!Zm(window.history.state)){let e=typeof window.history.state==`object`&&window.history.state!==null?window.history.state:{};window.history.replaceState({...e,[Xm]:!0},``)}ah(e);let n=()=>{let t=e.getState(),n=t.selectedConversationRef??(t.selectedConversationId?z(t.selectedConversationId):null);return{view:t.view,ref:n,refKey:n?ue(n):null,jumpUuid:t.conversationJump?.uuid??null,cmp:t.compare?JSON.stringify([ue(t.compare.a),ue(t.compare.b)]):null}},r=n(),i=()=>{ah(e),r=n()};window.addEventListener(`hashchange`,i);let a=e=>{rh=Zm(e.state)};window.addEventListener(`popstate`,a);let o=()=>{if(th)return;let t=e.getState(),i=n(),a=!!t.conversationJump&&Oe(L(t.conversationJump),i.ref);if(i.cmp&&i.cmp!==r.cmp){Qm(qm({sessionId:null,turnUuid:null,compare:t.compare}),`push`),r=i;return}if(i.cmp){r=i;return}if(r.cmp&&!i.cmp){let e=Ym(i.view,i.ref);i.view===`conversations`&&i.ref&&i.jumpUuid&&a&&(e=qm(i.ref,i.jumpUuid)),Qm(e,`push`),r=i;return}if(i.view!==r.view||i.refKey!==r.refKey){let e=Ym(i.view,i.ref);i.view===`conversations`&&i.ref&&i.jumpUuid&&a&&(e=qm(i.ref,i.jumpUuid)),Qm(e,`push`)}else i.ref&&i.refKey===r.refKey&&i.jumpUuid&&i.jumpUuid!==r.jumpUuid&&a&&Qm(qm(i.ref,i.jumpUuid),`replace`);r=i},s=e.subscribeStore(o),c=()=>{o()};return nh=c,()=>{window.removeEventListener(`hashchange`,i),window.removeEventListener(`popstate`,a),rh=!1,nh===c&&(nh=null),s(),window.history.scrollRestoration=t}}function ch(e){let t=R();if(t.snapshot==null)return;let n=ce(t);if(n==null)return;let r=c(t.prefs.panelOrder,C(n,t.activeSource)),i=e-1;if(i<0||i>=r.length)return;let a=r[i];if(t.activeSource!==`claude`&&a===`sessions`){let e=ke(C(n,t.activeSource))[0];e&&I({type:`OPEN_SOURCE_DETAIL`,source:e.source,resource:`session`,key:e.key});return}if(t.activeSource!==`claude`&&a===`blocks`){let e=aa(n,t.activeSource),r=e.find(e=>e.is_active)??e[0];r?.source===`claude`?I({type:`OPEN_MODAL`,kind:`block`,blockStartAt:r.start_at}):r&&I({type:`OPEN_SOURCE_DETAIL`,source:r.source,resource:`block`,key:r.key});return}let o=cc[a];o&&o.openAction()}var lh=`Focus a panel action, then press Shift+S to share it.`;function uh(){return typeof window>`u`||!window.matchMedia?!1:window.matchMedia(Pn).matches}function dh(){if(typeof document>`u`)return null;let e=document.activeElement;if(!e||!(e instanceof Element))return null;let t=e.closest(`[data-panel-kind]`);return t?t.getAttribute(`data-panel-kind`):null}function fh(){return{key:`S`,scope:`global`,when:()=>{let e=R();return!(uh()||e.shareModal!==null||e.composerModal!==null||e.openModal!==null||e.update.modalOpen||e.inputMode!==null||e.chromeOverlayOpen!==0)},action:()=>{let e=dh();if(e===null){I({type:`SHOW_STATUS_TOAST`,text:lh});return}Te.has(e)&&Xr(R().activeSource,e)&&I(j(e,`${e}-panel`))}}}function ph(){return typeof window>`u`||!window.matchMedia?!1:window.matchMedia(Pn).matches}function mh(){return{key:`B`,scope:`global`,when:()=>{let e=R();return!(ph()||e.shareModal!==null||e.composerModal!==null||e.openModal!==null||e.update.modalOpen||e.inputMode!==null||e.chromeOverlayOpen!==0)},action:()=>I(p())}}function hh(){return[mh()]}var gh=[`claude`,`codex`,`all`];function _h(){let e=R().activeSource,t=gh[(gh.indexOf(e)+1)%gh.length];I({type:`SET_ACTIVE_SOURCE`,source:t})}function vh(){let e=R(),t=e.activeSource,n=t===`all`?x(e.snapshot,`codex`)?`codex`:x(e.snapshot,`claude`)?`claude`:null:t;if(n==null)return;let r=v(e.snapshot?.sources?.[n]??null);if(r==null)return;let i=y(r,u(e.snapshot,t,n,e.accountFocus));I({type:`SET_ACCOUNT_FOCUS`,source:n,slot:pe(t),account:i})}function yh(){return typeof window<`u`&&!!window.matchMedia&&window.matchMedia(In).matches}function bh(){let e=R();return!e.openModal&&!e.update.modalOpen&&!e.doctorModalOpen&&e.inputMode===null&&e.chromeOverlayOpen===0}function xh(){let e=R();return!(e.openModal!==null||e.update.modalOpen||e.inputMode!==null||e.chromeOverlayOpen!==0)}function Sh(){return[{key:`1`,scope:`global`,when:bh,action:()=>ch(1)},{key:`2`,scope:`global`,when:bh,action:()=>ch(2)},{key:`3`,scope:`global`,when:bh,action:()=>ch(3)},{key:`4`,scope:`global`,when:bh,action:()=>ch(4)},{key:`5`,scope:`global`,when:bh,action:()=>ch(5)},{key:`6`,scope:`global`,when:bh,action:()=>ch(6)},{key:`7`,scope:`global`,when:bh,action:()=>ch(7)},{key:`8`,scope:`global`,when:bh,action:()=>ch(8)},{key:`9`,scope:`global`,when:bh,action:()=>ch(9)},{key:`0`,scope:`global`,when:bh,action:()=>ch(10)},{key:`r`,scope:`global`,when:bh,action:()=>Dn()},{key:`v`,scope:`global`,when:bh,action:_h},{key:`a`,scope:`global`,when:bh,action:vh},{key:`q`,scope:`global`,when:bh,action:Nr},{key:`n`,scope:`global`,when:bh,action:()=>jr(1)},{key:`N`,scope:`global`,when:bh,action:()=>jr(-1)},{key:`d`,scope:`global`,view:`any`,when:xh,action:()=>I({type:`OPEN_DOCTOR_MODAL`})},{key:`e`,scope:`global`,when:bh,action:()=>I({type:`OPEN_MODAL`,kind:`explain`})},fh(),...hh(),{key:`c`,scope:`sessions`,when:()=>!R().openModal&&R().chromeOverlayOpen===0&&!yh(),action:()=>{let e=R().prefs.sessionsCollapsed;I({type:`SAVE_PREFS`,patch:{sessionsCollapsed:!e}})}}]}var Ch=class extends Error{constructor(){super(`Dashboard authentication failed`),this.name=`DashboardAuthError`}};function wh(){history.replaceState(history.state,``,`${location.pathname}${location.search}`)}async function Th(){let e=location.hash;if(!e.startsWith(`#token=`))return;wh();let t=e.slice(7);if(!t||t.includes(`&`))throw new Ch;let n;try{n=decodeURIComponent(t)}catch{throw new Ch}if(!n)throw new Ch;let r;try{r=await fetch(`/api/auth`,{method:`POST`,headers:{Authorization:`Bearer ${n}`}})}catch{throw new Ch}if(r.status!==204)throw new Ch}function Eh(e){let t=document.createElement(`section`);t.className=`app-error`,t.setAttribute(`role`,`alert`);let n=document.createElement(`h1`);n.textContent=`Dashboard authentication failed`;let r=document.createElement(`p`);r.textContent=`Reopen the dashboard using a fresh URL from its terminal.`,t.append(n,r),e.replaceChildren(t)}var Dh=document.getElementById(`root`);if(!Dh)throw Error(`missing #root`);async function Oh(e){try{await Th()}catch{Eh(e);return}Pt(),et(),xe(),sh(),fe(Sh()),(0,Re.createRoot)(e).render((0,W.jsx)(U.StrictMode,{children:(0,W.jsx)(Um,{})}))}Oh(Dh);export{ea as $,Yo as A,Qt as At,go as B,cs as C,Fn as Ct,Xo as D,Tn as Dt,ts as E,jn as Et,Ao as F,We as Ft,ga as G,Qa as H,ko as I,Le as It,ca as J,la as K,To as L,Go as M,et as Mt,zo as N,tt as Nt,Qo as O,hn as Ot,Bo as P,it as Pt,Xi as Q,ho as R,xs as S,Rn as St,ns as T,Nn as Tt,Ga as U,lo as V,ja as W,Gi as X,Zi as Y,Ui as Z,Vs as _,Qn as _t,fl as a,Ci as at,Cs as b,Vn as bt,nc as c,ei as ct,ec as d,Ur as dt,zi as et,Zs as f,or as ft,Ls as g,$n as gt,Is as h,fr as ht,ih as i,xi as it,Wo as j,Yt as jt,Zo as k,dn as kt,$s as l,Qr as lt,qs as m,sr as mt,Jm as n,Fi as nt,uc as o,wi as ot,Ys as p,ar as pt,Yi as q,$m as r,Ji as rt,lc as s,oi as st,bh as t,ra as tt,Qs as u,qr as ut,Rs as v,Zn as vt,es as w,Mn as wt,bs as x,zn as xt,Ns as y,Un as yt,po as z};
|
|
13
|
+
`},uu={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function du(e){let{announcements:t=uu,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=lu}=e,{announce:a,announcement:o}=au(),s=Gl(`DndLiveRegion`),[c,l]=(0,U.useState)(!1);if((0,U.useEffect)(()=>{l(!0)},[]),su((0,U.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=U.createElement(U.Fragment,null,U.createElement(ru,{id:r,value:i.draggable}),U.createElement(iu,{id:s,announcement:o}));return n?(0,Dl.createPortal)(u,n):u}var fu;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(fu||={});function pu(){}function mu(e,t){return(0,U.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function hu(){var e=[...arguments];return(0,U.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var gu=Object.freeze({x:0,y:0});function _u(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function vu(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function yu(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function bu(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function xu(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function Su(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}var Cu=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=Su(t,t.left,t.top),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=_u(Su(r),i);a.push({id:t,data:{droppableContainer:e,value:n}})}}return a.sort(vu)},wu=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=bu(t),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=bu(r),o=i.reduce((e,t,r)=>e+_u(n[r],t),0),s=Number((o/4).toFixed(4));a.push({id:t,data:{droppableContainer:e,value:s}})}}return a.sort(vu)};function Tu(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var Eu=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=Tu(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(yu)};function Du(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function Ou(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:gu}function ku(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var Au=ku(1);function ju(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function Mu(e,t,n){let r=ju(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var Nu={ignoreTransform:!1};function Pu(e,t){t===void 0&&(t=Nu);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=Ml(e).getComputedStyle(e);t&&(n=Mu(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function Fu(e){return Pu(e,{ignoreTransform:!0})}function Iu(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Lu(e,t){return t===void 0&&(t=Ml(e).getComputedStyle(e)),t.position===`fixed`}function Ru(e,t){t===void 0&&(t=Ml(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`?n.test(r):!1})}function zu(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(Nl(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!Pl(i)||Fl(i)||n.includes(i))return n;let a=Ml(e).getComputedStyle(i);return i!==e&&Ru(i,a)&&n.push(i),Lu(i,a)?n:r(i.parentNode)}return e?r(e):n}function Bu(e){let[t]=zu(e,1);return t??null}function Vu(e){return!kl||!e?null:Al(e)?e:jl(e)?Nl(e)||e===Il(e).scrollingElement?window:Pl(e)?e:null:null}function Hu(e){return Al(e)?e.scrollX:e.scrollLeft}function Uu(e){return Al(e)?e.scrollY:e.scrollTop}function Wu(e){return{x:Hu(e),y:Uu(e)}}var Gu;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(Gu||={});function Ku(e){return!kl||!e?!1:e===document.scrollingElement}function qu(e){let t={x:0,y:0},n=Ku(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var Ju={x:.2,y:.2};function Yu(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=Ju);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=qu(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=Gu.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=Gu.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=Gu.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=Gu.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function Xu(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function Zu(e){return e.reduce((e,t)=>ql(e,Wu(t)),gu)}function Qu(e){return e.reduce((e,t)=>e+Hu(t),0)}function $u(e){return e.reduce((e,t)=>e+Uu(t),0)}function ed(e,t){if(t===void 0&&(t=Pu),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);Bu(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var td=[[`x`,[`left`,`right`],Qu],[`y`,[`top`,`bottom`],$u]],nd=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=zu(t),r=Zu(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of td)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},rd=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function id(e){let{EventTarget:t}=Ml(e);return e instanceof t?e:Il(e)}function ad(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t?r>t.y:!1}var od;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(od||={});function sd(e){e.preventDefault()}function cd(e){e.stopPropagation()}var $;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})($||={});var ld={start:[$.Space,$.Enter],cancel:[$.Esc],end:[$.Space,$.Enter,$.Tab]},ud=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case $.Right:return{...n,x:n.x+25};case $.Left:return{...n,x:n.x-25};case $.Down:return{...n,y:n.y+25};case $.Up:return{...n,y:n.y-25}}},dd=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new rd(Il(t)),this.windowListeners=new rd(Ml(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(od.Resize,this.handleCancel),this.windowListeners.add(od.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(od.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&ed(n),t(gu)}handleKeyDown(e){if(Xl(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=ld,coordinateGetter:a=ud,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:gu;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=Jl(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=qu(n),p=Xu(n),m={x:Math.min(i===$.Right?p.right-p.width/2:p.right,Math.max(i===$.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===$.Down?p.bottom-p.height/2:p.bottom,Math.max(i===$.Down?p.top:p.top+p.height/2,u.y))},h=i===$.Right&&!s||i===$.Left&&!c,g=i===$.Down&&!l||i===$.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===$.Right&&e<=d.x||i===$.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}a?r.x=n.scrollLeft-e:r.x=i===$.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}else if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===$.Down&&e<=d.y||i===$.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}a?r.y=n.scrollTop-e:r.y=i===$.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,ql(Jl(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};dd.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=ld,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function fd(e){return!!(e&&`distance`in e)}function pd(e){return!!(e&&`delay`in e)}var md=class{constructor(e,t,n){n===void 0&&(n=id(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=Il(i),this.documentListeners=new rd(this.document),this.listeners=new rd(n),this.windowListeners=new rd(Ml(i)),this.initialCoordinates=Ql(r)??gu,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(od.Resize,this.handleCancel),this.windowListeners.add(od.DragStart,sd),this.windowListeners.add(od.VisibilityChange,this.handleCancel),this.windowListeners.add(od.ContextMenu,sd),this.documentListeners.add(od.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(pd(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(fd(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(od.Click,cd,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(od.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=Ql(e)??gu,s=Jl(n,o);if(!t&&a){if(fd(a)){if(a.tolerance!=null&&ad(s,a.tolerance))return this.handleCancel();if(ad(s,a.distance))return this.handleStart()}if(pd(a)&&ad(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===$.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},hd={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},gd=class extends md{constructor(e){let{event:t}=e,n=Il(t.target);super(e,hd,n)}};gd.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var _d={move:{name:`mousemove`},end:{name:`mouseup`}},vd;(function(e){e[e.RightClick=2]=`RightClick`})(vd||={});var yd=class extends md{constructor(e){super(e,_d,Il(e.event.target))}};yd.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===vd.RightClick?!1:(r?.({event:n}),!0)}}];var bd={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},xd=class extends md{constructor(e){super(e,bd)}static setup(){return window.addEventListener(bd.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(bd.move.name,e)};function e(){}}};xd.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var Sd;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(Sd||={});var Cd;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(Cd||={});function wd(e){let{acceleration:t,activator:n=Sd.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=Cd.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=Ed({delta:d,disabled:!a}),[m,h]=zl(),g=(0,U.useRef)({x:0,y:0}),_=(0,U.useRef)({x:0,y:0}),v=(0,U.useMemo)(()=>{switch(n){case Sd.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Sd.DraggableRect:return i}},[n,i,c]),y=(0,U.useRef)(null),b=(0,U.useCallback)(()=>{let e=y.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),x=(0,U.useMemo)(()=>s===Cd.TreeOrder?[...l].reverse():l,[s,l]);(0,U.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of x){if(r?.(e)===!1)continue;let n=u[l.indexOf(e)];if(!n)continue;let{direction:i,speed:a}=Yu(e,n,v,t,f);for(let e of[`x`,`y`])p[e][i[e]]||(a[e]=0,i[e]=0);if(a.x>0||a.y>0){h(),y.current=e,m(b,o),g.current=a,_.current=i;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,b,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,x,u,JSON.stringify(f)])}var Td={x:{[Gu.Backward]:!1,[Gu.Forward]:!1},y:{[Gu.Backward]:!1,[Gu.Forward]:!1}};function Ed(e){let{delta:t,disabled:n}=e,r=Ul(t);return Vl(e=>{if(n||!r||!e)return Td;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[Gu.Backward]:e.x[Gu.Backward]||i.x===-1,[Gu.Forward]:e.x[Gu.Forward]||i.x===1},y:{[Gu.Backward]:e.y[Gu.Backward]||i.y===-1,[Gu.Forward]:e.y[Gu.Forward]||i.y===1}}},[n,t,r])}function Dd(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return Vl(e=>t==null?null:r??e??null,[r,t])}function Od(e,t){return(0,U.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var kd;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(kd||={});var Ad;(function(e){e.Optimized=`optimized`})(Ad||={});var jd=new Map;function Md(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,U.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,U.useRef)(e),d=g(),f=Bl(d),p=(0,U.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,U.useRef)(null),h=Vl(t=>{if(d&&!n)return jd;if(!t||t===jd||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new nd(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,U.useEffect)(()=>{u.current=e},[e]),(0,U.useEffect)(()=>{d||p()},[n,d]),(0,U.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,U.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case kd.Always:return!1;case kd.BeforeDragging:return n;default:return!n}}}function Nd(e,t){return Vl(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function Pd(e,t){return Nd(e,t)}function Fd(e){let{callback:t,disabled:n}=e,r=Rl(t),i=(0,U.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,U.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Id(e){let{callback:t,disabled:n}=e,r=Rl(t),i=(0,U.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,U.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Ld(e){return new nd(Pu(e),e)}function Rd(e,t,n){t===void 0&&(t=Ld);let[r,i]=(0,U.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=Fd({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=Id({callback:a});return Ll(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function zd(e){return Ou(e,Nd(e))}var Bd=[];function Vd(e){let t=(0,U.useRef)(e),n=Vl(n=>e?n&&n!==Bd&&e&&t.current&&e.parentNode===t.current.parentNode?n:zu(e):Bd,[e]);return(0,U.useEffect)(()=>{t.current=e},[e]),n}function Hd(e){let[t,n]=(0,U.useState)(null),r=(0,U.useRef)(e),i=(0,U.useCallback)(e=>{let t=Vu(e.target);t&&n(e=>e?(e.set(t,Wu(t)),new Map(e)):null)},[]);return(0,U.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=Vu(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,Wu(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{Vu(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,U.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>ql(e,t),gu):Zu(e):gu,[e,t])}function Ud(e,t){t===void 0&&(t=[]);let n=(0,U.useRef)(null);return(0,U.useEffect)(()=>{n.current=null},t),(0,U.useEffect)(()=>{let t=e!==gu;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?Jl(e,n.current):gu}function Wd(e){(0,U.useEffect)(()=>{if(!kl)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function Gd(e,t){return(0,U.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function Kd(e){return(0,U.useMemo)(()=>e?Iu(e):null,[e])}var qd=[];function Jd(e,t){t===void 0&&(t=Pu);let[n]=e,r=Kd(n?Ml(n):null),[i,a]=(0,U.useState)(qd);function o(){a(()=>e.length?e.map(e=>Ku(e)?r:new nd(t(e),e)):qd)}let s=Id({callback:o});return Ll(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function Yd(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return Pl(t)?t:e}function Xd(e){let{measure:t}=e,[n,r]=(0,U.useState)(null),i=Id({callback:(0,U.useCallback)(e=>{for(let{target:n}of e)if(Pl(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=Hl((0,U.useCallback)(e=>{let n=Yd(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,U.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var Zd=[{sensor:gd,options:{}},{sensor:dd,options:{}}],Qd={current:{}},$d={draggable:{measure:Fu},droppable:{measure:Fu,strategy:kd.WhileDragging,frequency:Ad.Optimized},dragOverlay:{measure:Pu}},ef=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},tf={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new ef,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:pu},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:$d,measureDroppableContainers:pu,windowRect:null,measuringScheduled:!1},nf={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:pu,draggableNodes:new Map,over:null,measureDroppableContainers:pu},rf=(0,U.createContext)(nf),af=(0,U.createContext)(tf);function of(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new ef}}}function sf(e,t){switch(t.type){case fu.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case fu.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case fu.DragEnd:case fu.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case fu.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new ef(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case fu.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new ef(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case fu.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new ef(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function cf(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,U.useContext)(rf),a=Ul(r),o=Ul(n?.id);return(0,U.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!Xl(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=tu(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function lf(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function uf(e){return(0,U.useMemo)(()=>({draggable:{...$d.draggable,...e?.draggable},droppable:{...$d.droppable,...e?.droppable},dragOverlay:{...$d.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function df(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,U.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;Ll(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=Ou(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=Bu(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var ff=(0,U.createContext)({...gu,scaleX:1,scaleY:1}),pf;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(pf||={});var mf=(0,U.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=Zd,collisionDetection:o=Eu,measuring:s,modifiers:c,...l}=e,[u,d]=(0,U.useReducer)(sf,void 0,of),[f,p]=cu(),[m,h]=(0,U.useState)(pf.Uninitialized),g=m===pf.Initialized,{draggable:{active:_,nodes:v,translate:y},droppable:{containers:b}}=u,x=_==null?null:v.get(_),S=(0,U.useRef)({initial:null,translated:null}),C=(0,U.useMemo)(()=>_==null?null:{id:_,data:x?.data??Qd,rect:S},[_,x]),w=(0,U.useRef)(null),[T,ee]=(0,U.useState)(null),[E,D]=(0,U.useState)(null),O=Bl(l,Object.values(l)),k=Gl(`DndDescribedBy`,t),te=(0,U.useMemo)(()=>b.getEnabled(),[b]),A=uf(s),{droppableRects:j,measureDroppableContainers:M,measuringScheduled:ne}=Md(te,{dragging:g,dependencies:[y.x,y.y],config:A.droppable}),re=Dd(v,_),ie=(0,U.useMemo)(()=>E?Ql(E):null,[E]),N=De(),ae=Pd(re,A.draggable.measure);df({activeNode:_==null?null:v.get(_),config:N.layoutShiftCompensation,initialRect:ae,measure:A.draggable.measure});let P=Rd(re,A.draggable.measure,ae),oe=Rd(re?re.parentElement:null),F=(0,U.useRef)({activatorEvent:null,active:null,activeNode:re,collisionRect:null,collisions:null,droppableRects:j,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:b,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),se=b.getNodeFor(F.current.over?.id),I=Xd({measure:A.dragOverlay.measure}),ce=I.nodeRef.current??re,L=g?I.rect??P:null,le=!!(I.nodeRef.current&&I.rect),R=zd(le?null:P),ue=Kd(ce?Ml(ce):null),z=Vd(g?se??re:null),de=Jd(z),fe=lf(c,{transform:{x:y.x-R.x,y:y.y-R.y,scaleX:1,scaleY:1},activatorEvent:E,active:C,activeNodeRect:P,containerNodeRect:oe,draggingNodeRect:L,over:F.current.over,overlayNodeRect:I.rect,scrollableAncestors:z,scrollableAncestorRects:de,windowRect:ue}),B=ie?ql(ie,y):null,pe=Hd(z),me=Ud(pe),he=Ud(pe,[P]),ge=ql(fe,me),V=L?Au(L,fe):null,_e=C&&V?o({active:C,collisionRect:V,droppableRects:j,droppableContainers:te,pointerCoordinates:B}):null,ve=xu(_e,`id`),[ye,be]=(0,U.useState)(null),xe=Du(le?fe:ql(fe,he),ye?.rect??null,P),Se=(0,U.useRef)(null),Ce=(0,U.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(w.current==null)return;let i=v.get(w.current);if(!i)return;let a=e.nativeEvent;Se.current=new n({active:w.current,activeNode:i,event:a,options:r,context:F,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=O.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=O.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=w.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=O.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:S}};(0,Dl.unstable_batchedUpdates)(()=>{r?.(i),h(pf.Initializing),d({type:fu.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),ee(Se.current),D(a)})},onMove(e){d({type:fu.DragMove,coordinates:e})},onEnd:o(fu.DragEnd),onCancel:o(fu.DragCancel)});function o(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=F.current,o=null;if(t&&i){let{cancelDrop:s}=O.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===fu.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=fu.DragCancel)}w.current=null,(0,Dl.unstable_batchedUpdates)(()=>{d({type:e}),h(pf.Uninitialized),be(null),ee(null),D(null),Se.current=null;let t=e===fu.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=O.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),we=Od(a,(0,U.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(w.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},w.current=r,Ce(n,t))},[v,Ce]));Wd(a),Ll(()=>{P&&m===pf.Initializing&&h(pf.Initialized)},[P,m]),(0,U.useEffect)(()=>{let{onDragMove:e}=O.current,{active:t,activatorEvent:n,collisions:r,over:i}=F.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:ge.x,y:ge.y},over:i};(0,Dl.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[ge.x,ge.y]),(0,U.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=F.current;if(!e||w.current==null||!t||!i)return;let{onDragOver:a}=O.current,o=r.get(ve),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,Dl.unstable_batchedUpdates)(()=>{be(s),a?.(c),f({type:`onDragOver`,event:c})})},[ve]),Ll(()=>{F.current={activatorEvent:E,active:C,activeNode:re,collisionRect:V,collisions:_e,droppableRects:j,draggableNodes:v,draggingNode:ce,draggingNodeRect:L,droppableContainers:b,over:ye,scrollableAncestors:z,scrollAdjustedTranslate:ge},S.current={initial:L,translated:V}},[C,re,_e,V,v,ce,L,j,b,ye,z,ge]),wd({...N,delta:y,draggingRect:V,pointerCoordinates:B,scrollableAncestors:z,scrollableAncestorRects:de});let Te=(0,U.useMemo)(()=>({active:C,activeNode:re,activeNodeRect:P,activatorEvent:E,collisions:_e,containerNodeRect:oe,dragOverlay:I,draggableNodes:v,droppableContainers:b,droppableRects:j,over:ye,measureDroppableContainers:M,scrollableAncestors:z,scrollableAncestorRects:de,measuringConfiguration:A,measuringScheduled:ne,windowRect:ue}),[C,re,P,E,_e,oe,I,v,b,j,ye,M,z,de,A,ne,ue]),Ee=(0,U.useMemo)(()=>({activatorEvent:E,activators:we,active:C,activeNodeRect:P,ariaDescribedById:{draggable:k},dispatch:d,draggableNodes:v,over:ye,measureDroppableContainers:M}),[E,we,C,P,d,k,v,ye,M]);return U.createElement(ou.Provider,{value:p},U.createElement(rf.Provider,{value:Ee},U.createElement(af.Provider,{value:Te},U.createElement(ff.Provider,{value:xe},i)),U.createElement(cf,{disabled:n?.restoreFocus===!1})),U.createElement(du,{...n,hiddenTextDescribedById:k}));function De(){let e=T?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),hf=(0,U.createContext)(null),gf=`button`,_f=`Draggable`;function vf(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=Gl(_f),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,U.useContext)(rf),{role:p=gf,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,U.useContext)(g?ff:hf),[v,y]=Hl(),[b,x]=Hl(),S=Gd(o,t),C=Bl(n);return Ll(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:b,data:C}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,U.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===gf?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:S,node:v,over:f,setNodeRef:y,setActivatorNodeRef:x,transform:_}}function yf(){return(0,U.useContext)(af)}var bf=`Droppable`,xf={timeout:25};function Sf(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=Gl(bf),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,U.useContext)(rf),u=(0,U.useRef)({disabled:n}),d=(0,U.useRef)(!1),f=(0,U.useRef)(null),p=(0,U.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...xf,...i},_=Bl(h??r),v=Id({callback:(0,U.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[y,b]=Hl((0,U.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),x=Bl(t);return(0,U.useEffect)(()=>{!v||!y.current||(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,U.useEffect)(()=>(s({type:fu.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:x}}),()=>s({type:fu.UnregisterDroppable,key:a,id:r})),[r]),(0,U.useEffect)(()=>{n!==u.current.disabled&&(s({type:fu.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:y,over:c,setNodeRef:b}}function Cf(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function wf(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function Tf(e){return e!==null&&e>=0}function Ef(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Df(e){return typeof e==`boolean`?{draggable:e,droppable:e}:e}var Of=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=Cf(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},kf=`Sortable`,Af=U.createContext({activeIndex:-1,containerId:kf,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:Of,disabled:{draggable:!1,droppable:!1}});function jf(e){let{children:t,id:n,items:r,strategy:i=Of,disabled:a=!1}=e,{active:o,dragOverlay:s,droppableRects:c,over:l,measureDroppableContainers:u}=yf(),d=Gl(kf,n),f=s.rect!==null,p=(0,U.useMemo)(()=>r.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),m=o!=null,h=o?p.indexOf(o.id):-1,g=l?p.indexOf(l.id):-1,_=(0,U.useRef)(p),v=!Ef(p,_.current),y=g!==-1&&h===-1||v,b=Df(a);Ll(()=>{v&&m&&u(p)},[v,p,m,u]),(0,U.useEffect)(()=>{_.current=p},[p]);let x=(0,U.useMemo)(()=>({activeIndex:h,containerId:d,disabled:b,disableTransforms:y,items:p,overIndex:g,useDragOverlay:f,sortedRects:wf(p,c),strategy:i}),[h,d,b.draggable,b.droppable,y,p,g,c,f,i]);return U.createElement(Af.Provider,{value:x},t)}var Mf=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return Cf(n,r,i).indexOf(t)},Nf=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},Pf={duration:200,easing:`ease`},Ff=`transform`,If=$l.Transition.toString({property:Ff,duration:0,easing:`linear`}),Lf={roleDescription:`sortable`};function Rf(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,U.useState)(null),s=(0,U.useRef)(n);return Ll(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=Pu(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,U.useEffect)(()=>{a&&o(null)},[a]),a}function zf(e){let{animateLayoutChanges:t=Nf,attributes:n,disabled:r,data:i,getNewIndex:a=Mf,id:o,strategy:s,resizeObserverConfig:c,transition:l=Pf}=e,{items:u,containerId:d,activeIndex:f,disabled:p,disableTransforms:m,sortedRects:h,overIndex:g,useDragOverlay:_,strategy:v}=(0,U.useContext)(Af),y=Bf(r,p),b=u.indexOf(o),x=(0,U.useMemo)(()=>({sortable:{containerId:d,index:b,items:u},...i}),[d,i,b,u]),S=(0,U.useMemo)(()=>u.slice(u.indexOf(o)),[u,o]),{rect:C,node:w,isOver:T,setNodeRef:ee}=Sf({id:o,data:x,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:E,activatorEvent:D,activeNodeRect:O,attributes:k,setNodeRef:te,listeners:A,isDragging:j,over:M,setActivatorNodeRef:ne,transform:re}=vf({id:o,data:x,attributes:{...Lf,...n},disabled:y.draggable}),ie=Ol(ee,te),N=!!E,ae=N&&!m&&Tf(f)&&Tf(g),P=!_&&j,oe=ae?(P&&ae?re:null)??(s??v)({rects:h,activeNodeRect:O,activeIndex:f,overIndex:g,index:b}):null,F=Tf(f)&&Tf(g)?a({id:o,items:u,activeIndex:f,overIndex:g}):b,se=E?.id,I=(0,U.useRef)({activeId:se,items:u,newIndex:F,containerId:d}),ce=u!==I.current.items,L=t({active:E,containerId:d,isDragging:j,isSorting:N,id:o,index:b,items:u,newIndex:I.current.newIndex,previousItems:I.current.items,previousContainerId:I.current.containerId,transition:l,wasDragging:I.current.activeId!=null}),le=Rf({disabled:!L,index:b,node:w,rect:C});return(0,U.useEffect)(()=>{N&&I.current.newIndex!==F&&(I.current.newIndex=F),d!==I.current.containerId&&(I.current.containerId=d),u!==I.current.items&&(I.current.items=u)},[N,F,d,u]),(0,U.useEffect)(()=>{if(se===I.current.activeId)return;if(se!=null&&I.current.activeId==null){I.current.activeId=se;return}let e=setTimeout(()=>{I.current.activeId=se},50);return()=>clearTimeout(e)},[se]),{active:E,activeIndex:f,attributes:k,data:x,rect:C,index:b,newIndex:F,items:u,isOver:T,isSorting:N,isDragging:j,listeners:A,node:w,overIndex:g,over:M,setNodeRef:ie,setActivatorNodeRef:ne,setDroppableNodeRef:ee,setDraggableNodeRef:te,transform:le??oe,transition:R()};function R(){if(le||ce&&I.current.newIndex===b)return If;if(!(P&&!Xl(D)||!l)&&(N||L))return $l.Transition.toString({...l,property:Ff})}}function Bf(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}function Vf(e){if(!e)return!1;let t=e.data.current;return!!(t&&`sortable`in t&&typeof t.sortable==`object`&&`containerId`in t.sortable&&`items`in t.sortable&&`index`in t.sortable)}var Hf=[$.Down,$.Right,$.Up,$.Left],Uf=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:a,over:o,scrollableAncestors:s}}=t;if(Hf.includes(e.code)){if(e.preventDefault(),!n||!r)return;let t=[];a.getEnabled().forEach(n=>{if(!n||n!=null&&n.disabled)return;let a=i.get(n.id);if(a)switch(e.code){case $.Down:r.top<a.top&&t.push(n);break;case $.Up:r.top>a.top&&t.push(n);break;case $.Left:r.left>a.left&&t.push(n);break;case $.Right:r.left<a.left&&t.push(n);break}});let c=wu({active:n,collisionRect:r,droppableRects:i,droppableContainers:t,pointerCoordinates:null}),l=xu(c,`id`);if(l===o?.id&&c.length>1&&(l=c[1].id),l!=null){let e=a.get(n.id),t=a.get(l),o=t?i.get(t.id):null,c=t?.node.current;if(c&&o&&e&&t){let n=zu(c).some((e,t)=>s[t]!==e),i=Wf(e,t),a=Gf(e,t),l=n||!i?{x:0,y:0}:{x:a?r.width-o.width:0,y:a?r.height-o.height:0},u={x:o.left,y:o.top};return l.x&&l.y?u:Jl(u,l)}}}};function Wf(e,t){return!Vf(e)||!Vf(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function Gf(e,t){return!Vf(e)||!Vf(t)||!Wf(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}var Kf=!1;function qf(){return Kf}function Jf(){Kf=!0,setTimeout(()=>{Kf=!1},0)}var Yf={sessions:12,trend:6,projects:6};function Xf(t,n){if(n===`intermediate`){let e=Yf[t];if(e!==void 0)return e}return e[t].span}function Zf({id:e,index:t,mode:n}){let r=cc[e],i=(0,U.useSyncExternalStore)(F,()=>R().openModal!=null),a=Cs(),{listeners:o,setNodeRef:s,transform:c,transition:l,isDragging:u}=zf({id:e,disabled:i});if(!r)return null;let{Component:d,label:f}=r;return(0,W.jsx)(`div`,{ref:s,style:{transform:$l.Translate.toString(c),transition:a?void 0:l},className:`panel-host${u?` is-dragging`:``}`,"data-panel-host":e,"data-panel-index":t,"data-span":Xf(e,n),"aria-label":`Reorder ${f}`,onKeyDown:e=>{if(!e.shiftKey)return;let n=e.target;if(typeof n.matches==`function`&&n.matches(`input, textarea, select, [contenteditable="true"]`))return;let r=0;e.key===`ArrowDown`||e.key===`ArrowRight`?r=1:(e.key===`ArrowUp`||e.key===`ArrowLeft`)&&(r=-1),r!==0&&(typeof e.preventDefault==`function`&&e.preventDefault(),I({type:`SWAP_PANELS`,index:t,direction:r}))},onClickCapture:e=>{qf()&&e.stopPropagation()},...o,children:(0,W.jsx)(d,{})})}var Qf=250,$f=5;function ep(){Jf()}function tp(e,t){if(Jf(),!t||e===t)return;let n=R(),r=c(n.prefs.panelOrder,C(n.snapshot,n.activeSource)),i=r.indexOf(e),a=r.indexOf(t);i<0||a<0||i===a||I({type:`REORDER_PANELS`,from:i,to:a})}function np(){Jf()}function rp({items:e,className:t,children:n}){return(0,W.jsx)(mf,{sensors:hu(mu(gd,{activationConstraint:{delay:Qf,tolerance:$f}})),onDragStart:()=>ep(),onDragEnd:e=>{let t=e.active.id;tp(t,e.over?e.over.id:null)},onDragCancel:()=>np(),children:(0,W.jsx)(jf,{items:(0,U.useMemo)(()=>e.slice(),[e]),strategy:Of,children:(0,W.jsx)(`div`,{className:t,children:n})})})}var ip=class extends Error{status;field;code;constructor(e,t,n,r){super(n),this.status=e,this.field=t,this.code=r}};async function ap(e){if(!e.ok){let t={};try{t=await e.json()}catch{}throw new ip(e.status,t.field,t.error??`HTTP ${e.status}`,t.code)}return e.json()}async function op(e,t){return ap(await fetch(`/api/share/templates?panel=${encodeURIComponent(e)}`,{signal:t?.signal}))}async function sp(e,t){let{account:n,...r}=e;return ap(await fetch(`/api/share/render`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n==null?r:{...r,account:n}),signal:t?.signal}))}var cp=[{id:`recap`,label:`Recap`,placeholderDescription:`Text + tiny chart`},{id:`visual`,label:`Visual`,placeholderDescription:`Coming soon`},{id:`detail`,label:`Detail`,placeholderDescription:`Coming soon`}];function lp(e){return e.endsWith(`-recap`)?`recap`:e.endsWith(`-visual`)?`visual`:e.endsWith(`-detail`)?`detail`:null}function up({panel:e,templates:t,error:n,selectedTemplateId:r,onSelect:i}){if(n)return(0,W.jsx)(`div`,{className:`share-gallery-error`,role:`alert`,children:n});let a={};for(let e of t??[]){let t=lp(e.id);t&&(a[t]=e)}return(0,W.jsx)(`div`,{className:`share-gallery`,role:`radiogroup`,"aria-label":`Report template`,children:cp.map(e=>{let n=a[e.id];if(t==null)return(0,W.jsxs)(`div`,{className:`share-tile share-tile-skeleton`,"aria-hidden":`true`,children:[(0,W.jsx)(`div`,{className:`share-tile-skeleton-bar`}),(0,W.jsx)(`div`,{className:`share-tile-skeleton-bar short`})]},e.id);if(!n)return(0,W.jsxs)(`button`,{type:`button`,className:`share-tile share-tile-disabled`,disabled:!0,"aria-disabled":`true`,role:`radio`,"aria-checked":`false`,title:`${e.label} — ${e.placeholderDescription}`,children:[(0,W.jsx)(`div`,{className:`share-tile-label`,children:e.label}),(0,W.jsx)(`div`,{className:`share-tile-desc`,children:e.placeholderDescription})]},e.id);let o=n.id===r;return(0,W.jsxs)(`button`,{type:`button`,className:`share-tile`+(o?` share-tile-selected`:``),role:`radio`,"aria-checked":o,"data-template-id":n.id,onClick:()=>i(n.id),children:[(0,W.jsx)(`div`,{className:`share-tile-label`,children:n.label}),(0,W.jsx)(`div`,{className:`share-tile-desc`,children:n.description})]},e.id)})})}function dp({options:e,onChange:t}){let n=n=>t({...e,...n}),r=n=>t({...e,period:{...e.period,...n}}),i=e=>{if(e===``){n({top_n:null});return}let t=Number.parseInt(e,10);Number.isNaN(t)||n({top_n:Math.max(1,t)})};return(0,W.jsxs)(`div`,{className:`share-knobs`,children:[(0,W.jsxs)(`div`,{className:`share-knob`,children:[(0,W.jsx)(`label`,{htmlFor:`share-knob-period`,children:`Period`}),(0,W.jsxs)(`select`,{id:`share-knob-period`,value:e.period.kind,onChange:e=>r({kind:e.target.value}),children:[(0,W.jsx)(`option`,{value:`current`,children:`This week`}),(0,W.jsx)(`option`,{value:`previous`,children:`Previous week`}),(0,W.jsx)(`option`,{value:`custom`,children:`Custom`})]}),e.period.kind===`custom`?(0,W.jsxs)(`div`,{className:`share-knob-period-custom`,children:[(0,W.jsxs)(`label`,{className:`share-knob-sublabel`,children:[(0,W.jsx)(`span`,{children:`Start`}),(0,W.jsx)(`input`,{type:`date`,value:e.period.start?.slice(0,10)??``,onChange:e=>r({start:e.target.value}),"aria-label":`Custom period start date`})]}),(0,W.jsxs)(`label`,{className:`share-knob-sublabel`,children:[(0,W.jsx)(`span`,{children:`End`}),(0,W.jsx)(`input`,{type:`date`,value:e.period.end?.slice(0,10)??``,onChange:e=>r({end:e.target.value}),"aria-label":`Custom period end date`})]})]}):null]}),(0,W.jsxs)(`div`,{className:`share-knob`,children:[(0,W.jsx)(`span`,{className:`share-knob-label`,children:`Theme`}),(0,W.jsxs)(`div`,{className:`share-knob-radiogroup`,role:`radiogroup`,"aria-label":`Theme`,children:[(0,W.jsxs)(`label`,{className:`share-knob-radio`,children:[(0,W.jsx)(`input`,{type:`radio`,name:`share-theme`,value:`light`,checked:e.theme===`light`,onChange:()=>n({theme:`light`})}),(0,W.jsx)(`span`,{children:`Light`})]}),(0,W.jsxs)(`label`,{className:`share-knob-radio`,children:[(0,W.jsx)(`input`,{type:`radio`,name:`share-theme`,value:`dark`,checked:e.theme===`dark`,onChange:()=>n({theme:`dark`})}),(0,W.jsx)(`span`,{children:`Dark`})]})]})]}),(0,W.jsxs)(`div`,{className:`share-knob`,children:[(0,W.jsx)(`label`,{htmlFor:`share-knob-topn`,children:`Top-N`}),(0,W.jsx)(`input`,{id:`share-knob-topn`,type:`number`,min:1,step:1,inputMode:`numeric`,value:e.top_n??``,onChange:e=>i(e.target.value),"aria-label":`Top-N`})]}),(0,W.jsxs)(`div`,{className:`share-knob`,children:[(0,W.jsx)(`span`,{className:`share-knob-label`,children:`Projects`}),(0,W.jsx)(`button`,{type:`button`,className:`share-knob-allowlist-stub`,disabled:!0,"aria-disabled":`true`,title:`Exports include all projects`,children:`All projects`})]}),(0,W.jsx)(`div`,{className:`share-knob`,children:(0,W.jsxs)(`label`,{className:`share-knob-checkbox`,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:e.show_chart,onChange:e=>n({show_chart:e.target.checked}),"aria-label":`Include chart in export`}),(0,W.jsx)(`span`,{children:`Show chart`})]})}),(0,W.jsx)(`div`,{className:`share-knob`,children:(0,W.jsxs)(`label`,{className:`share-knob-checkbox`,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:e.show_table,onChange:e=>n({show_table:e.target.checked}),"aria-label":`Include table in export`}),(0,W.jsx)(`span`,{children:`Show table`})]})}),(0,W.jsx)(`div`,{className:`share-knob`,children:(0,W.jsxs)(`label`,{className:`share-knob-checkbox`,children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:!e.reveal_projects,onChange:e=>n({reveal_projects:!e.target.checked}),"aria-label":`Anonymize project names on export`}),(0,W.jsx)(`span`,{children:`Anon on export`})]})})]})}function fp(e){(0,U.useEffect)(()=>{if(!e)return;let t=null,n=e=>{let t=e;t.key===`Escape`&&_e(t)},r=()=>{t&&=(t.removeEventListener(`keydown`,n),null)},i=()=>{r();let i=null;try{i=e.contentDocument}catch{i=null}i&&(i.addEventListener(`keydown`,n),t=i)};e.addEventListener(`load`,i);try{e.contentDocument&&e.contentDocument.readyState!==`loading`&&i()}catch{}return()=>{e.removeEventListener(`load`,i),r()}},[e])}var pp=200,mp={status:`idle`,body:``,contentType:``,errorMessage:null,errorField:null};function hp({panel:e,source:t=`claude`,account:n=null,templateId:r,options:i,onProjectNamesResolved:a,onPreviewFailed:o,artifactLabel:s=null}){let[c,l]=(0,U.useState)(mp),[u,d]=(0,U.useState)(null);fp(u);let f=(0,U.useRef)(null),p=(0,U.useRef)(0),m=(0,U.useRef)(a);m.current=a;let h=(0,U.useRef)(o);if(h.current=o,(0,U.useEffect)(()=>{m.current?.(null)},[e,t,n,r]),(0,U.useEffect)(()=>{if(!r){l(mp),h.current?.(!1);return}l(e=>({...e,status:`loading`})),h.current?.(!1);let a=++p.current,o=setTimeout(()=>{f.current?.abort();let o=new AbortController;f.current=o,sp({panel:e,template_id:r,options:{...i,reveal_projects:!0},source:t,account:n},{signal:o.signal}).then(e=>{a===p.current&&(l({status:`ready`,body:e.body,contentType:e.content_type,errorMessage:null,errorField:null}),h.current?.(!1),m.current?.(typeof e.has_project_names==`boolean`?e.has_project_names:null))}).catch(e=>{if(a===p.current&&!(e&&typeof e==`object`&&e.name===`AbortError`)){if(e instanceof ip){l({status:`error`,body:``,contentType:``,errorMessage:e.message??`HTTP ${e.status}`,errorField:e.field??null}),h.current?.(!0);return}l({status:`error`,body:``,contentType:``,errorMessage:e.message??`Unknown error`,errorField:null}),h.current?.(!0)}})},pp);return()=>{clearTimeout(o)}},[e,t,n,r,i]),(0,U.useEffect)(()=>()=>{f.current?.abort()},[]),!r)return(0,W.jsx)(`div`,{className:`share-preview share-preview-empty`,children:`Select a template to preview.`});if(c.status===`error`)return(0,W.jsxs)(`div`,{className:`share-preview share-preview-error`,role:`alert`,children:[(0,W.jsx)(`div`,{className:`share-preview-error-title`,children:`Preview failed`}),(0,W.jsxs)(`div`,{className:`share-preview-error-message`,children:[c.errorMessage,c.errorField?(0,W.jsxs)(`span`,{className:`share-preview-error-field`,children:[` `,`(field: `,c.errorField,`)`]}):null]})]});if(c.status===`loading`||c.status===`idle`)return(0,W.jsx)(`div`,{className:`share-preview share-preview-loading`,"aria-busy":`true`,children:`Rendering preview…`});let g=(0,W.jsx)(`div`,{className:`share-preview-source`,"aria-label":`Report source: ${Zr[t]}`,children:(0,W.jsx)(`span`,{className:`source-chip source-chip--${t}`,children:Zr[t]})});return i.format===`md`?(0,W.jsxs)(`div`,{className:`share-preview-wrap`,children:[g,(0,W.jsx)(`pre`,{className:`share-preview share-preview-md`,"aria-label":`Markdown preview`,children:c.body})]}):(0,W.jsxs)(`div`,{className:`share-preview-wrap`,children:[g,(0,W.jsx)(`iframe`,{className:`share-preview share-preview-iframe`,title:s?`Report preview — ${s}`:`Report preview`,tabIndex:-1,sandbox:`allow-same-origin`,srcDoc:c.body,ref:d})]})}var gp={"current-week":`Current week`,trend:`Trend`,weekly:`Weekly`,daily:`Daily`,monthly:`Monthly`,blocks:`5-hour blocks`,forecast:`Forecast`,sessions:`Sessions`,projects:`Projects`};function _p(e){return gp[e]}function vp(e){switch(e){case`md`:return`md`;case`html`:return`html`;case`svg`:return`svg`}}async function yp(e){if(!e.ok){let t={};try{t=await e.json()}catch{}throw new ip(e.status,t.field,t.error??`HTTP ${e.status}`,t.code)}return e.json()}async function bp(e){return yp(await fetch(`/api/share/presets`,{signal:e?.signal}))}async function xp(e,t){return yp(await fetch(`/api/share/presets`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),signal:t?.signal}))}async function Sp(e,t){return yp(await fetch(`/api/share/presets/rename`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),signal:t?.signal}))}async function Cp(e,t,n){let r=await fetch(`/api/share/presets/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{method:`DELETE`,signal:n?.signal});if(!r.ok){let e={};try{e=await r.json()}catch{}throw new ip(r.status,void 0,e.error??`HTTP ${r.status}`)}}function wp(e){return e.kind??`panel`}function Tp(e){return wp(e)===`composed`}async function Ep(e){return yp(await fetch(`/api/share/history`,{signal:e?.signal}))}async function Dp(e,t){let{account:n,...r}=e;return yp(await fetch(`/api/share/history`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n==null?r:{...r,account:n}),signal:t?.signal}))}async function Op(e,t){return yp(await fetch(`/api/share/history`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({kind:`composed`,...e}),signal:t?.signal}))}function kp(e){return!(e==null||typeof e.focus!=`function`||!document.contains(e)||e.disabled===!0||typeof e.closest==`function`&&e.closest(`[inert]`)!=null)}var Ap=250;function jp(e){if(typeof requestAnimationFrame==`function`){let t=requestAnimationFrame(()=>e());return()=>cancelAnimationFrame(t)}let t=setTimeout(e,16);return()=>clearTimeout(t)}function Mp(){let[e,t]=(0,U.useState)(null),n=(0,U.useRef)(null),r=(0,U.useRef)(null),[i,a]=(0,U.useState)(0),o=(0,U.useRef)(null),s=(0,U.useCallback)(()=>{o.current?.(),o.current=null,r.current=null},[]),c=(0,U.useCallback)(e=>{s(),r.current=e,a(e=>e+1)},[s]);(0,U.useEffect)(()=>{if(i===0)return;let e=r.current;if(r.current=null,e==null)return;let t=Date.now()+Ap,n=()=>{if(o.current=null,kp(e)){e.focus();return}!document.contains(e)||Date.now()>=t||(o.current=jp(n))};n()},[i]),(0,U.useEffect)(()=>()=>{o.current?.()},[]);let l=(0,U.useCallback)(e=>{s(),n.current=document.activeElement,t(e)},[s]),u=(0,U.useCallback)(()=>{let e=n.current;n.current=null,t(null),c(e)},[c]),d=(0,U.useCallback)(e=>{n.current=null,t(null),c(e?e():null)},[c]),f=(0,U.useCallback)(t=>e===t,[e]);return we((0,U.useMemo)(()=>[{key:`Escape`,scope:`overlay`,layer:220,when:()=>e!=null,action:u}],[e,u])),{armed:e,arm:l,cancel:u,close:d,isArmed:f}}function Np({id:e,host:t,prompt:n,confirmLabel:r,cancelLabel:i=`Cancel`,onConfirm:a,className:o}){let s=`share-confirm-${e.replace(/[^a-zA-Z0-9_-]+/g,`-`)}`,c=(0,U.useRef)(null),l=t.isArmed(e);return(0,U.useEffect)(()=>{l&&c.current?.focus()},[l]),l?(0,W.jsxs)(`span`,{className:`share-confirm${o?` ${o}`:``}`,role:`group`,children:[(0,W.jsx)(`span`,{className:`share-confirm-prompt`,id:s,role:`status`,children:n}),(0,W.jsx)(`button`,{ref:c,type:`button`,className:`share-confirm-yes`,"aria-describedby":s,onClick:a,children:r}),(0,W.jsx)(`button`,{type:`button`,className:`share-confirm-no`,onClick:()=>t.cancel(),children:i})]}):null}var Pp=`share-save-overwrite`;function Fp({panel:e,source:t=`claude`,templateId:n,options:r,existingNames:i,focusAfterConfirm:a,onSaved:o,onCancel:s}){let[c,l]=(0,U.useState)(``),[u,d]=(0,U.useState)(!1),[f,p]=(0,U.useState)(null),[m,h]=(0,U.useState)([]),g=Mp(),_=i??m;(0,U.useEffect)(()=>{if(i!=null)return;let t=new AbortController;return bp({signal:t.signal}).then(t=>h(Object.keys(t.presets[e]??{}))).catch(()=>{}),()=>t.abort()},[e,i]);async function v(i=!1){let a=c.trim();if(!a){p(`Name is required`);return}if(a.length>64){p(`Name must be 64 characters or fewer`);return}if(a.includes(`/`)){p(`Name cannot contain '/'`);return}if(!i&&_.includes(a)){g.arm(Pp);return}d(!0),p(null);try{await xp({panel:e,name:a,template_id:n,options:r,source:t,...i?{overwrite:!0}:{}}),I({type:`SHOW_STATUS_TOAST`,text:`Saved preset "${a}"`}),o()}catch(e){if(e instanceof ip&&e.code===`preset_name_conflict`){g.arm(Pp);return}p((e instanceof ip?e.message??`HTTP ${e.status}`:e.message)??`Save failed`)}finally{d(!1)}}return(0,W.jsxs)(`div`,{className:`share-save-popover`,role:`dialog`,"aria-label":`Save preset`,children:[(0,W.jsxs)(`label`,{className:`share-save-label`,children:[`Preset name`,(0,W.jsx)(`input`,{type:`text`,className:`share-save-input`,autoFocus:!0,value:c,maxLength:64,disabled:u,onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),e.stopPropagation(),v()):e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),g.armed==null?s():g.cancel())}})]}),f?(0,W.jsx)(`div`,{className:`share-save-error`,role:`alert`,children:f}):null,(0,W.jsxs)(`div`,{className:`share-save-actions`,children:[(0,W.jsx)(`button`,{type:`button`,onClick:s,disabled:u,children:`Cancel`}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>void v(),disabled:u,children:u?`Saving…`:`Save`})]}),(0,W.jsx)(Np,{id:Pp,host:g,prompt:`"${c.trim()}" exists — saving replaces it`,confirmLabel:`Replace`,onConfirm:()=>{g.close(a),v(!0)}})]})}async function Ip(e,t,n){let r=new Blob([e],{type:`image/svg+xml`}),i=URL.createObjectURL(r);try{let e=new Image;e.src=i,await e.decode();let r=document.createElement(`canvas`);r.width=e.naturalWidth*t,r.height=e.naturalHeight*t;let a=r.getContext(`2d`);if(!a)throw Error(`Could not acquire 2D canvas context`);a.fillStyle=n,a.fillRect(0,0,r.width,r.height),a.scale(t,t),a.drawImage(e,0,0);let o=await new Promise(e=>{r.toBlob(t=>e(t),`image/png`)});if(o)return o;let s=r.toDataURL(`image/png`);return(await fetch(s)).blob()}finally{URL.revokeObjectURL(i)}}function Lp(){let e=window.open(``,`_blank`);if(!e)return null;try{e.opener=null}catch{}return e}function Rp(){let e=Lp();return e?{navigate(t){if(e.closed)throw Error(Bp);let n=URL.createObjectURL(t);try{e.location.href=n}catch(e){throw URL.revokeObjectURL(n),e}},close(){try{e.close()}catch{}}}:null}var zp=`the browser blocked the new tab — allow pop-ups for this page and retry`,Bp=`the new tab was closed before the export finished`;function Vp(e){let t=document.createElement(`iframe`);t.setAttribute(`aria-hidden`,`true`),t.style.cssText=`position:fixed;right:0;bottom:0;width:0;height:0;border:0`,document.body.appendChild(t);let n=t.contentDocument;if(!n)throw t.remove(),Error(`iframe contentDocument unavailable`);n.open(),n.write(e),n.close();let r=t.contentWindow,i=!1;if(r&&typeof r.print==`function`)try{typeof r.focus==`function`&&r.focus(),r.print(),i=!0}catch{i=!1}if(!i){t.remove();let n=Lp();if(!n)throw Error(zp);n.document.open(),n.document.write(e),n.document.close();return}setTimeout(()=>t.remove(),1e3)}function Hp(e){Dp({panel:e.panel,template_id:e.template_id,options:e.options,format:e.options.format,destination:e.destination,source:e.source,account:e.account}).catch(()=>{})}function Up(e){return e===`light`?`#ffffff`:`#0f172a`}var Wp=`The preview failed — an export may fail too.`,Gp=`share-preview-failed-note`;function Kp(e,t){return`cctally-${e}-${new Date().toISOString().slice(0,10).replaceAll(`-`,``)}.${vp(t)}`}function qp(e){switch(e){case`md`:return`text/markdown;charset=utf-8`;case`html`:return`text/html;charset=utf-8`;case`svg`:return`image/svg+xml;charset=utf-8`}}function Jp(e,t){let n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=e,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),setTimeout(()=>URL.revokeObjectURL(n),0)}function Yp({panel:e,source:t=`claude`,account:n=null,templateId:r,options:i,onOptionsChange:a,previewFailed:o=!1}){let[s,c]=(0,U.useState)(null),[l,u]=(0,U.useState)(null),[d,f]=(0,U.useState)(!1),p=(0,U.useRef)(null);(0,U.useEffect)(()=>()=>{p.current!=null&&clearTimeout(p.current)},[]);let[m,h]=(0,U.useState)(!1),g=(0,U.useRef)(null),_=(0,U.useRef)(null);(0,U.useEffect)(()=>{if(!m)return;function e(e){let t=g.current;t&&(t.contains(e.target)||h(!1))}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[m]),we((0,U.useMemo)(()=>[{key:`Escape`,scope:`overlay`,layer:205,when:()=>m,action:()=>h(!1)}],[m])),(0,U.useEffect)(()=>{u(null)},[i.format,r]);let v=r==null||s!=null,y=e=>I({type:`SHOW_STATUS_TOAST`,text:e}),b=async()=>{if(!r)throw Error(`no template selected`);return{body:(await sp({panel:e,template_id:r,options:i,source:t,account:n})).body,format:i.format}},x=async()=>{if(!(v||!r)){c(`copy`),u(null);try{let{body:a}=await b();if(!navigator.clipboard||typeof navigator.clipboard.writeText!=`function`)throw Error(`Clipboard API unavailable in this browser`);await navigator.clipboard.writeText(a),y(`Copied`),Hp({panel:e,template_id:r,options:i,destination:`copy`,source:t,account:n})}catch(e){u(`Copy failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}finally{c(null)}}},S=async()=>{if(!(v||!r)){c(`download`),u(null);try{let{body:a,format:o}=await b(),s=new Blob([a],{type:qp(o)});Jp(Kp(e,o),s),y(`Downloaded`),Hp({panel:e,template_id:r,options:i,destination:`download`,source:t,account:n})}catch(e){u(`Download failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}finally{c(null)}}},C=async()=>{if(!(v||!r)){c(`basket`),u(null);try{let a=await sp({panel:e,template_id:r,options:i,source:t,account:n}),o=H({panel:e,template_id:r,options:i,added_at:new Date().toISOString(),data_digest_at_add:a.snapshot.data_digest,data_digest_version_at_add:a.snapshot.data_digest_version,kernel_version:a.snapshot.kernel_version,label_hint:_p(e),source:t,account:n});I({type:`BASKET_ADD`,item:o});let s=R().basket;if(s.rejectedReason===`capacity`)return;f(!0),p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>f(!1),800),I({type:`SHOW_STATUS_TOAST`,text:`Added ${o.label_hint} to basket (${s.items.length})`})}catch(e){u(`Add to basket failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}finally{c(null)}}},w=async()=>{if(v||!r)return;let a=Rp();if(!a){u(`Open failed: ${zp}`);return}c(`open`),u(null);try{let{body:o,format:s}=await b();a.navigate(new Blob([o],{type:qp(s)})),y(`Opened`),Hp({panel:e,template_id:r,options:i,destination:`open`,source:t,account:n})}catch(e){a.close(),u(`Open failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}finally{c(null)}},T=async()=>{if(!(!r||i.format!==`svg`||v)){c(`png`),u(null);try{let{body:a}=await b(),o=await Ip(a,2,Up(i.theme));Jp(Kp(e,`svg`).replace(/\.svg$/,`.png`),o),y(`PNG downloaded`),Hp({panel:e,template_id:r,options:i,destination:`png`,source:t,account:n})}catch(e){u(`PNG export failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}finally{c(null)}}},ee=async()=>{if(!(!r||i.format!==`html`||v)){c(`print`),u(null);try{let{body:a}=await b();Vp(a),y(`Print dialog opened`),Hp({panel:e,template_id:r,options:i,destination:`print`,source:t,account:n})}catch(e){u(`Print failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}finally{c(null)}}},E=i.format===`md`&&!v,D=(i.format===`html`||i.format===`svg`)&&!v,O=i.format===`svg`&&!v,k=i.format===`html`&&!v;return(0,W.jsxs)(`div`,{className:`share-actions`,children:[(0,W.jsxs)(`div`,{className:`share-format-row`,role:`radiogroup`,"aria-label":`Export format`,children:[(0,W.jsx)(`span`,{className:`share-format-label`,children:`Format:`}),[`md`,`html`,`svg`].map(e=>(0,W.jsxs)(`label`,{className:`share-format-radio`,children:[(0,W.jsx)(`input`,{type:`radio`,name:`share-format`,value:e,checked:i.format===e,onChange:()=>a({...i,format:e})}),(0,W.jsx)(`span`,{children:e})]},e))]}),o?(0,W.jsx)(`p`,{className:`share-preview-failed-note`,id:Gp,children:Wp}):null,(0,W.jsxs)(`div`,{className:`share-action-row`,children:[(0,W.jsx)(`button`,{type:`button`,"aria-describedby":o?Gp:void 0,className:`share-action share-action-copy`,onClick:x,disabled:!E,title:i.format===`md`?s===`copy`?`Copying…`:`Copy to clipboard`:`Copy is available for Markdown only`,children:s===`copy`?`Copying…`:`Copy`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":o?Gp:void 0,className:`share-action share-action-download`,onClick:S,disabled:v,title:s===`download`?`Downloading…`:`Download file`,children:s===`download`?`Downloading…`:`Download`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":o?Gp:void 0,className:`share-action share-action-open`,onClick:w,disabled:!D,title:i.format===`html`||i.format===`svg`?s===`open`?`Opening…`:`Open in new tab`:`Open is available for HTML/SVG`,children:s===`open`?`Opening…`:`Open`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":o?Gp:void 0,className:`share-action share-action-png`,onClick:T,disabled:!O,title:i.format===`svg`?s===`png`?`Rasterizing…`:`Download PNG (rasterized from SVG)`:`PNG export — available for SVG format only`,children:s===`png`?`Rasterizing…`:`PNG`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":o?Gp:void 0,className:`share-action share-action-print`,onClick:ee,disabled:!k,title:i.format===`html`?s===`print`?`Opening print dialog…`:`Open the browser print dialog (save as PDF)`:`Print → PDF — available for HTML format only`,children:s===`print`?`Printing…`:`Print → PDF`}),(0,W.jsx)(`button`,{type:`button`,className:`share-action share-action-basket${d?` share-action-basket-added`:``}`,onClick:C,disabled:v,title:v&&r==null?`Pick a template first`:s===`basket`?`Adding to basket…`:`Add this section to the report basket`,children:d?`✓ Added`:s===`basket`?`Adding…`:`+ Basket`})]}),(0,W.jsxs)(`div`,{className:`share-save-preset-row`,ref:g,children:[(0,W.jsx)(`button`,{ref:_,type:`button`,className:`share-save-preset`,disabled:r==null||s!=null,onClick:()=>h(e=>!e),"aria-haspopup":`dialog`,"aria-expanded":m,title:r==null?`Pick a template first`:`Save the current recipe as a named preset`,children:`Save preset…`}),m&&r?(0,W.jsx)(Fp,{panel:e,source:t,templateId:r,options:i,focusAfterConfirm:()=>_.current,onSaved:()=>{h(!1),_.current?.focus()},onCancel:()=>{h(!1),_.current?.focus()}}):null]}),l?(0,W.jsx)(`div`,{className:`share-action-error`,role:`alert`,children:l}):null]})}var Xp=`share-presets-trigger`;function Zp(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function Qp({panel:e,onPick:t,onManage:n}){let[r,i]=(0,U.useState)(!1),[a,o]=(0,U.useState)({}),[s,c]=(0,U.useState)([]),[l,u]=(0,U.useState)(null),d=(0,U.useRef)(null);(0,U.useEffect)(()=>{if(!r)return;let t=new AbortController;return u(null),Promise.all([bp({signal:t.signal}),Ep({signal:t.signal})]).then(([t,n])=>{o(t.presets[e]??{}),c(n.history.filter(t=>Tp(t)||t.panel===e).slice().reverse())}).catch(e=>{e?.name!==`AbortError`&&u((e instanceof ip?e.message??`HTTP ${e.status}`:e.message)??`Failed to load presets`)}),()=>t.abort()},[r,e]),(0,U.useEffect)(()=>{if(!r)return;function e(e){let t=d.current;t&&(t.contains(e.target)||i(!1))}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[r]),we((0,U.useMemo)(()=>[{key:`Escape`,scope:`overlay`,layer:205,when:()=>r,action:()=>i(!1)}],[r]));let f=Object.keys(a).sort();return(0,W.jsxs)(`div`,{className:`share-presets-dropdown`,ref:d,children:[(0,W.jsx)(`button`,{type:`button`,id:Xp,className:`share-presets-trigger`,"aria-haspopup":`menu`,"aria-expanded":r,onClick:()=>i(e=>!e),children:`presets ▾`}),r?(0,W.jsxs)(`div`,{className:`share-presets-menu`,role:`menu`,children:[l?(0,W.jsx)(`div`,{className:`share-presets-error`,role:`alert`,children:l}):null,f.length===0&&!l?(0,W.jsx)(`div`,{className:`share-presets-empty`,children:`No saved presets yet.`}):null,f.length>0?(0,W.jsx)(`ul`,{className:`share-presets-list`,children:f.map(e=>(0,W.jsxs)(`li`,{className:`share-presets-row`,children:[(0,W.jsx)(`button`,{type:`button`,role:`menuitem`,className:`share-presets-item`,onClick:()=>{t(a[e].template_id,a[e].options),i(!1)},children:e}),(0,W.jsx)(`span`,{className:`source-chip source-chip--${a[e].source??`claude`}`,children:Zr[a[e].source??`claude`]})]},e))}):null,s.length>0?(0,W.jsxs)(`div`,{className:`share-presets-history`,children:[(0,W.jsx)(`div`,{className:`share-presets-history-heading`,role:`presentation`,children:`Recent shares`}),(0,W.jsx)(`ul`,{className:`share-presets-history-list`,children:s.map(e=>Tp(e)?(0,W.jsx)(`li`,{className:`share-presets-history-row share-presets-history-row--composed`,children:(0,W.jsxs)(`span`,{className:`share-presets-history-composed`,title:`${e.composite.title} · ${e.format??`unknown`} · ${e.exported_at}`,children:[(0,W.jsx)(`span`,{className:`share-presets-history-template`,children:`Composed`}),(0,W.jsxs)(`span`,{className:`share-presets-history-meta`,children:[` · `,e.sections.length,e.sections.length===1?` section`:` sections`,` · `,e.format??`unknown`,` · `,Zp(e.exported_at)]})]})},e.recipe_id):(0,W.jsxs)(`li`,{className:`share-presets-history-row`,children:[(0,W.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`share-presets-history-item`,onClick:()=>{t(e.template_id,e.options),i(!1)},title:`${e.template_id} · ${Zr[e.source??`claude`]} · ${e.format??`unknown`} · ${e.exported_at}`,children:[(0,W.jsx)(`span`,{className:`share-presets-history-template`,children:e.template_id}),(0,W.jsxs)(`span`,{className:`share-presets-history-meta`,children:[` · `,e.format??`unknown`,` · `,Zp(e.exported_at)]})]}),(0,W.jsx)(`span`,{className:`source-chip source-chip--${e.source??`claude`}`,children:Zr[e.source??`claude`]})]},e.recipe_id))})]}):null,(0,W.jsx)(`div`,{className:`share-presets-footer`,children:(0,W.jsx)(`button`,{type:`button`,role:`menuitem`,className:`share-presets-manage`,onClick:()=>{n(),i(!1)},children:`Manage presets…`})})]}):null]})}var $p=`share-manage-presets-title`,em=`share-manage-presets-name-heading`;function tm(e,t,n){let r=Array.from(document.querySelectorAll(`.share-manage-table tbody tr`)),i=new Set([`${e}/${t}`]);n!=null&&i.add(`${e}/${n}`);let a=r.findIndex(n=>n.dataset.presetKey===`${e}/${t}`);if(a>=0)for(let e of r.slice(a+1)){if(e.dataset.presetKey!=null&&i.has(e.dataset.presetKey))continue;let t=e.querySelector(`.share-manage-actions button`);if(t)return t}return document.getElementById(em)}function nm({open:e,onClose:t,shareIsTopmost:n=!0}){let[r,i]=(0,U.useState)([]),[a,o]=(0,U.useState)(!1),[s,c]=(0,U.useState)(null),l=Mp(),u=Vn(),d={tz:u.resolvedTz,offsetLabel:u.offsetLabel};we((0,U.useMemo)(()=>e?[{key:`Escape`,scope:`overlay`,layer:208,action:t}]:[],[e,t]));let f=(0,U.useRef)(null);Ur(f,{active:e,trapEnabled:n&&e,triggerId:Xp,initialFocus:`heading`}),(0,U.useEffect)(()=>{if(!e)return;let t=!1;return c(null),(async()=>{try{let e=await bp();if(t)return;let n=[];for(let[t,r]of Object.entries(e.presets))for(let[e,i]of Object.entries(r))n.push({panel:t,name:e,record:i});n.sort((e,t)=>e.panel===t.panel?e.name.localeCompare(t.name):e.panel.localeCompare(t.panel)),i(n)}catch(e){if(t)return;c((e instanceof ip?e.message??`HTTP ${e.status}`:e.message)??`Failed to load presets`)}})(),()=>{t=!0}},[e]);async function p(e){o(!0),c(null);let t=tm(e.panel,e.name);try{await Cp(e.panel,e.name)}catch(e){c((e instanceof ip?e.message??`HTTP ${e.status}`:e.message)??`Delete failed`),o(!1);return}i(t=>t.filter(t=>!(t.panel===e.panel&&t.name===e.name))),o(!1),l.close(()=>t),I({type:`SHOW_STATUS_TOAST`,text:`Deleted preset "${e.name}"`})}async function m(e,t,n=!1){o(!0),c(null);let r;try{r=await Sp({panel:e.panel,from_name:e.name,to_name:t,...n?{overwrite:!0}:{}})}catch(e){return o(!1),e instanceof ip&&e.code===`preset_name_conflict`?`conflict`:(c((e instanceof ip?e.message??`HTTP ${e.status}`:e.message)??`Rename failed`),`error`)}return i(i=>(n?i.filter(n=>!(n.panel===e.panel&&n.name===t)):i).map(n=>n.panel===e.panel&&n.name===e.name?{...n,name:t,record:{template_id:r.template_id,options:r.options,saved_at:r.saved_at,...r.source?{source:r.source}:{}}}:n)),o(!1),I({type:`SHOW_STATUS_TOAST`,text:`Renamed to "${t}"`}),`ok`}return e?(0,W.jsx)(`div`,{className:`share-manage-overlay`,children:(0,W.jsxs)(`div`,{className:`share-manage-modal`,ref:f,role:`dialog`,"aria-modal":`true`,"aria-labelledby":$p,onClick:e=>e.stopPropagation(),children:[(0,W.jsx)(uc,{title:`Manage presets`,titleId:$p,className:`share-manage-header`,onClose:t,closeClassName:`share-manage-close`}),(0,W.jsxs)(`div`,{className:`share-manage-content`,children:[s?(0,W.jsx)(`div`,{className:`share-manage-error`,role:`alert`,children:s}):null,r.length===0&&!s?(0,W.jsx)(`p`,{className:`share-manage-empty`,children:`No saved presets yet.`}):null,r.length>0?(0,W.jsxs)(`table`,{className:`share-manage-table`,children:[(0,W.jsx)(`thead`,{children:(0,W.jsxs)(`tr`,{children:[(0,W.jsx)(`th`,{children:`Panel`}),(0,W.jsx)(`th`,{id:em,tabIndex:-1,children:`Name`}),(0,W.jsx)(`th`,{children:`Saved at`}),(0,W.jsx)(`th`,{})]})}),(0,W.jsx)(`tbody`,{children:r.map(e=>(0,W.jsx)(rm,{row:e,busy:a,confirm:l,savedAtLabel:B.datetimeShort(e.record.saved_at,d),onDelete:()=>void p(e),onRename:(t,n)=>m(e,t,n)},`${e.panel}/${e.name}`))})]}):null]})]})}):null}function rm({row:e,busy:t,confirm:n,savedAtLabel:r,onDelete:i,onRename:a}){let[o,s]=(0,U.useState)(!1),[c,l]=(0,U.useState)(e.name),[u,d]=(0,U.useState)(null),f=`${e.panel}/${e.name}`,p=`delete:${f}`,m=`rename:${f}`,h=n.isArmed(p),g=n.isArmed(m),_=()=>{let t=c.trim();if(!t||t===e.name){l(e.name),s(!1);return}s(!1),a(t).then(e=>{e===`conflict`&&(d(t),n.arm(m))})};return(0,W.jsxs)(`tr`,{"data-preset-key":f,children:[(0,W.jsx)(`td`,{children:_p(e.panel)}),(0,W.jsx)(`td`,{children:o?(0,W.jsx)(`input`,{className:`share-manage-name-input`,autoFocus:!0,value:c,disabled:t,maxLength:64,onChange:e=>l(e.target.value),onKeyDown:t=>{t.key===`Enter`?(t.preventDefault(),_()):t.key===`Escape`&&(t.preventDefault(),t.stopPropagation(),l(e.name),s(!1))}}):(0,W.jsx)(`span`,{children:e.name})}),(0,W.jsx)(`td`,{children:(0,W.jsx)(`time`,{dateTime:e.record.saved_at,children:r})}),(0,W.jsxs)(`td`,{className:`share-manage-actions`,children:[!h&&!g?o?(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`button`,{type:`button`,disabled:t,onClick:_,children:`Save`}),(0,W.jsx)(`button`,{type:`button`,disabled:t,onClick:()=>{l(e.name),s(!1)},children:`Cancel`})]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`button`,{type:`button`,disabled:t,onClick:()=>s(!0),children:`Rename`}),(0,W.jsx)(`button`,{type:`button`,disabled:t,onClick:()=>n.arm(p),children:`Delete`})]}):null,(0,W.jsx)(Np,{id:p,host:n,prompt:`Delete "${e.name}"?`,confirmLabel:`Delete`,onConfirm:i}),(0,W.jsx)(Np,{id:m,host:n,prompt:`A preset named "${u??``}" already exists`,confirmLabel:`Replace it`,onConfirm:()=>{let t=u;if(t==null)return;let r=tm(e.panel,e.name,t);a(t,!0).then(e=>{e===`ok`&&(d(null),n.close(()=>r))})}})]})]})}function im(){return{format:`md`,theme:`light`,reveal_projects:!1,no_branding:!1,top_n:5,period:{kind:`current`},project_allowlist:null,show_chart:!0,show_table:!0}}function am(e,t){if(!t)return e;let n={...e,...t};return t.period&&(n.period={...e.period,...t.period}),n}function om({revealProjects:e,hasProjectNames:t}){let n=t===!1,r=n?`neutral`:e?`warn`:`info`,i=n?`This export contains no project names.`:e?`Export will show real project names.`:`Preview shows real names. Export is anonymized.`;return(0,W.jsx)(`p`,{className:`share-privacy-status share-privacy-status--${r}`,role:`status`,"aria-live":`polite`,children:i})}function sm({panel:e,source:t=`claude`,account:n=null,onClose:r,initialParams:i}){let a=(0,U.useRef)(null),[o,s]=(0,U.useState)(null),[c,l]=(0,U.useState)(!1),u=_p(e),[d,f]=(0,U.useState)(null),[p,m]=(0,U.useState)(null),[h,g]=(0,U.useState)(null),[_,v]=(0,U.useState)(()=>{let e=im();return i?.windowWeeks==null?e:{...e,windowWeeks:i.windowWeeks}}),y=(0,U.useRef)(!1),[b,x]=(0,U.useState)(!1),S=`share-modal-title`;qr(!0);let C=(0,U.useSyncExternalStore)(F,()=>je(R())===`share`);Ur(a,{active:!0,trapEnabled:C&&!b,initialFocus:`heading`}),we((0,U.useMemo)(()=>[{key:`Escape`,scope:`overlay`,layer:200,when:()=>!b&&R().composerModal===null,action:r}],[r,b])),(0,U.useEffect)(()=>{let t=!1;return f(null),m(null),op(e).then(e=>{if(t)return;f(e.templates);let n=e.templates[0];n&&(g(n.id),y.current||v(e=>am(e,n.default_options)))}).catch(e=>{t||m(e instanceof ip?`Couldn't load templates: ${e.message??`HTTP ${e.status}`}`:`Couldn't load templates: ${e.message}`)}),()=>{t=!0}},[e]),(0,U.useEffect)(()=>{if(!d||!h||y.current)return;let e=d.find(e=>e.id===h);e&&v(t=>am(t,e.default_options))},[h,d]);let w=(0,U.useMemo)(()=>{if(!d||!h)return null;let e=d.find(e=>e.id===h);return e?`${u} — ${e.label}`:null},[d,h,u]),T=e=>{y.current=!0,v(e)};return(0,W.jsxs)(`div`,{ref:a,className:`share-modal`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":S,onClick:e=>e.stopPropagation(),children:[(0,W.jsx)(uc,{title:`Share ${u} report`,titleId:S,className:`share-modal-header`}),(0,W.jsx)(`div`,{className:`share-modal-source`,"aria-label":`Source: ${Zr[t]}`,children:(0,W.jsx)(`span`,{className:`source-chip source-chip--${t}`,children:Zr[t]})}),(0,W.jsxs)(`div`,{className:`share-modal-body`,children:[(0,W.jsxs)(`section`,{className:`share-section share-gallery-section`,"aria-label":`Template gallery`,children:[(0,W.jsx)(`div`,{className:`share-gallery-header`,children:(0,W.jsx)(Qp,{panel:e,onPick:(e,t)=>{g(e),y.current=!0,v(e=>({...e,...t}))},onManage:()=>x(!0)})}),(0,W.jsx)(up,{panel:e,templates:d,error:p,selectedTemplateId:h,onSelect:e=>g(e)})]}),(0,W.jsx)(`div`,{className:`share-knobs-col`,"aria-label":`Render options`,children:(0,W.jsx)(dp,{options:_,onChange:T})}),(0,W.jsxs)(`div`,{className:`share-preview-col`,"aria-label":`Live preview`,children:[c?null:(0,W.jsx)(om,{revealProjects:!!_.reveal_projects,hasProjectNames:o}),(0,W.jsx)(hp,{panel:e,source:t,account:n,templateId:h,options:_,artifactLabel:w,onProjectNamesResolved:s,onPreviewFailed:l})]})]}),(0,W.jsx)(`footer`,{className:`share-modal-footer`,children:(0,W.jsx)(Yp,{panel:e,source:t,account:n,previewFailed:c,templateId:h,options:_,onOptionsChange:T})}),(0,W.jsx)(lc,{className:`share-modal-close`,label:`Close share modal`,onClose:r}),(0,W.jsx)(nm,{open:b,shareIsTopmost:C,onClose:()=>x(!1)})]})}function cm(e,t){return{title:t.title,theme:t.theme,format:t.format,no_branding:t.no_branding,reveal_projects:t.reveal_projects,sections:e.map(e=>({snapshot:{panel:e.panel,template_id:e.template_id,options:e.options,data_digest_at_add:e.data_digest_at_add,...e.data_digest_version_at_add==null?{}:{data_digest_version_at_add:e.data_digest_version_at_add},kernel_version:e.kernel_version,source:e.source,...e.account==null?{}:{account:e.account}}}))}}async function lm(e,t){let n=await fetch(`/api/share/compose`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),signal:t?.signal});if(!n.ok){let e={};try{e=await n.json()}catch{}throw new ip(n.status,e.field,e.error??`HTTP ${n.status}`,e.code)}return n.json()}function um({items:e,results:t,kernelVersion:n,onRefresh:r,onRemove:i}){let a=hu(mu(gd,{activationConstraint:{distance:4}}),mu(dd,{coordinateGetter:Uf})),[o,s]=(0,U.useState)(null);we((0,U.useMemo)(()=>[{key:`Escape`,scope:`overlay`,layer:215,when:()=>o!==null,action:()=>{let e=o;s(null),e&&document.getElementById(`composer-kebab-${e}`)?.focus()}}],[o]));function c(t){if(!t.over||t.active.id===t.over.id)return;let n=e.findIndex(e=>e.id===t.active.id),r=e.findIndex(e=>e.id===t.over.id);n<0||r<0||I({type:`BASKET_REORDER`,fromIdx:n,toIdx:r})}return(0,W.jsx)(mf,{sensors:a,collisionDetection:Cu,onDragEnd:c,children:(0,W.jsx)(jf,{items:e.map(e=>e.id),strategy:Of,children:(0,W.jsx)(`ul`,{className:`composer-section-list`,children:e.map((e,a)=>(0,W.jsx)(dm,{item:e,result:t[a],kernelVersion:n,onRefresh:r,onRemove:i,isKebabOpen:o===e.id,onKebabToggle:()=>s(t=>t===e.id?null:e.id),onKebabClose:()=>s(null)},e.id))})})})}function dm({item:e,result:t,kernelVersion:n,onRefresh:r,onRemove:i,isKebabOpen:a,onKebabToggle:o,onKebabClose:s}){let{attributes:c,listeners:l,setNodeRef:u,transform:d,transition:f,isDragging:p}=zf({id:e.id}),m=Cs(),h={transform:$l.Transform.toString(d),transition:m?void 0:f,opacity:p?.4:1},g=t?.drift_detected,_=e.kernel_version!==n,v=!!(g||_);return(0,W.jsxs)(`li`,{ref:u,style:h,className:`composer-section-row`,children:[(0,W.jsx)(`button`,{className:`composer-drag-handle`,"aria-label":`Reorder ${e.label_hint}`,type:`button`,...c,...l,children:`≡`}),(0,W.jsx)(`span`,{className:`composer-section-label`,children:e.label_hint}),(0,W.jsx)(`span`,{className:`source-chip source-chip--${e.source}`,children:Zr[e.source]}),v?(0,W.jsx)(`span`,{className:`composer-outdated-badge`,title:g&&_?`Data and kernel both shifted since add-time. Refresh to update.`:g?`Data has changed since this section was added. Refresh to update.`:`Kernel updated since this section was added. Refresh to re-render at the new version.`,children:`Outdated`}):null,(0,W.jsxs)(`div`,{className:`composer-section-actions`,children:[(0,W.jsx)(`button`,{type:`button`,id:`composer-kebab-${e.id}`,"aria-expanded":a,"aria-controls":a?`composer-kebab-menu-${e.id}`:void 0,onClick:o,"aria-label":`Actions for ${e.label_hint}`,children:`⋯`}),a?(0,W.jsxs)(`ul`,{id:`composer-kebab-menu-${e.id}`,className:`composer-section-menu`,children:[(0,W.jsx)(`li`,{children:(0,W.jsx)(`button`,{type:`button`,onClick:()=>{r(e.id),s()},children:`Refresh from current data`})}),(0,W.jsx)(`li`,{children:(0,W.jsx)(`button`,{type:`button`,onClick:()=>{i(e.id),s()},"aria-label":`Remove ${e.label_hint}`,children:`Remove`})})]}):null]})]})}function fm(e,t){return t&&e>0}function pm(e){return`cctally-report-${new Date().toISOString().slice(0,10).replaceAll(`-`,``)}.${e===`md`?`md`:e}`}function mm(e){switch(e){case`md`:return`text/markdown;charset=utf-8`;case`html`:return`text/html;charset=utf-8`;case`svg`:return`image/svg+xml;charset=utf-8`}}var hm=`composer-clear-all`,gm=`composer-preview-failed-note`;function _m(e){return`${e} ${e===1?`section`:`sections`}`}function vm(e){return e===`light`?`#ffffff`:`#0f172a`}function ym(e,t){let n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=e,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),setTimeout(()=>URL.revokeObjectURL(n),0)}var bm=200;function xm(){return R().composerModal}function Sm(){return R().basket}var Cm=`composer-modal-title`;function wm(){let e=(0,U.useSyncExternalStore)(F,xm),t=(0,U.useSyncExternalStore)(F,Sm),n=zn(),i=Mp(),a=(0,U.useRef)(null);qr(e?.open??!1),Ur(a,{active:e?.open??!1,initialFocus:`heading`});let[o,s]=(0,U.useState)(``),[c,l]=(0,U.useState)(`light`),[u,d]=(0,U.useState)(`html`),[f,p]=(0,U.useState)(!0),[m,h]=(0,U.useState)(!1),[g,_]=(0,U.useState)(null),[v,y]=(0,U.useState)(null),[b,x]=(0,U.useState)(!1),[S,C]=(0,U.useState)(null);fp(S);let w=(0,U.useRef)(null),[T,ee]=(0,U.useState)(null),[E,D]=(0,U.useState)(null);(0,U.useEffect)(()=>{D(null)},[u,c,f,m]),we((0,U.useMemo)(()=>[{key:`Escape`,scope:`overlay`,layer:210,when:()=>R().composerModal!==null,action:()=>I(r())}],[])),(0,U.useEffect)(()=>{e?.open&&o===``&&s(`cctally report — ${new Date().toISOString().slice(0,10)}`)},[e?.open,o]),(0,U.useEffect)(()=>{if(!e?.open||t.items.length===0||o===``)return;let n=setTimeout(()=>{w.current?.abort();let e=new AbortController;w.current=e,x(!0),y(null),lm(cm(t.items,{title:o,theme:c,format:u,no_branding:m,reveal_projects:!f}),{signal:e.signal}).then(t=>{e.signal.aborted||_(t)}).catch(t=>{t?.name!==`AbortError`&&(e.signal.aborted||y(t instanceof ip?t.message??`HTTP ${t.status}`:t.message))}).finally(()=>{e.signal.aborted||x(!1)})},bm);return()=>clearTimeout(n)},[e?.open,t.items,o,c,u,f,m]);async function O(e){let n=t.items.findIndex(t=>t.id===e);if(n<0)return;let r=t.items[n];try{let t=await sp({panel:r.panel,template_id:r.template_id,options:{...r.options,reveal_projects:!f},source:r.source,account:r.account}),i=H({panel:r.panel,template_id:r.template_id,options:r.options,added_at:new Date().toISOString(),data_digest_at_add:t.snapshot.data_digest,kernel_version:t.snapshot.kernel_version,label_hint:r.label_hint,source:r.source,account:r.account,id:r.id});I({type:`BASKET_REMOVE`,id:e}),I({type:`BASKET_ADD`,item:i});let a=R().basket.items.length-1;a!==n&&I({type:`BASKET_REORDER`,fromIdx:a,toIdx:n})}catch(e){y(`Refresh failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}}let k=async e=>{let n=await lm(cm(t.items,{title:o,theme:c,format:e,no_branding:m,reveal_projects:!f}));return{body:n.body,content_type:n.content_type}},te=e=>I({type:`SHOW_STATUS_TOAST`,text:e}),A=(e,n)=>{Op({sections:t.items.map(e=>({panel:e.panel,template_id:e.template_id,options:e.options,source:e.source,...e.account==null?{}:{account:e.account}})),composite:{title:o,theme:c,reveal_projects:!f,no_branding:m},format:n,destination:e}).catch(()=>{})},j=async(e,t,n)=>{if(T==null){ee(e),D(null);try{await t()}catch(e){D(`${n} failed: ${e instanceof ip?e.message??`HTTP ${e.status}`:e.message}`)}finally{ee(null)}}},M=()=>j(`copy`,async()=>{let{body:e}=await k(`md`);if(!navigator.clipboard||typeof navigator.clipboard.writeText!=`function`)throw Error(`Clipboard API unavailable in this browser`);await navigator.clipboard.writeText(e),te(`Copied`),A(`copy`,`md`)},`Copy`),ne=()=>j(`download`,async()=>{let{body:e}=await k(u),t=new Blob([e],{type:mm(u)});ym(pm(u),t),te(`Downloaded`),A(`download`,u)},`Download`),re=()=>{if(T!=null)return;let e=Rp();if(!e){D(`Open failed: ${zp}`);return}j(`open`,async()=>{try{let{body:t}=await k(u);e.navigate(new Blob([t],{type:mm(u)}))}catch(t){throw e.close(),t}te(`Opened`),A(`open`,u)},`Open`)},ie=()=>j(`png`,async()=>{let{body:e}=await k(`svg`),t=await Ip(e,2,vm(c));ym(pm(`svg`).replace(/\.svg$/,`.png`),t),te(`PNG downloaded`),A(`png`,`svg`)},`PNG export`),N=()=>j(`print`,async()=>{let{body:e}=await k(`html`);Vp(e),te(`Print dialog opened`),A(`print`,`html`)},`Print`),ae=T==null&&u===`md`&&t.items.length>0,P=T==null&&t.items.length>0,oe=T==null&&(u===`html`||u===`svg`)&&t.items.length>0,se=T==null&&u===`svg`&&t.items.length>0,ce=T==null&&u===`html`&&t.items.length>0,L=!f,le=fm(t.items.length,L),ue=L?t.items.length:0;if(!e?.open)return null;let z=(0,W.jsx)(uc,{title:`Compose report`,titleId:Cm,className:`composer-modal-header`,onClose:()=>I(r()),closeClassName:`composer-modal-close`});return t.items.length===0?(0,W.jsxs)(`div`,{className:`composer-modal composer-modal-empty${n?` composer-modal-mobile`:``}`,ref:a,tabIndex:-1,role:`dialog`,"aria-modal":`true`,"aria-labelledby":Cm,children:[z,(0,W.jsx)(`p`,{className:`composer-empty-message`,children:`Basket is empty. Open any panel's share menu and pick + Basket to add a section.`})]}):(0,W.jsxs)(`div`,{className:`composer-modal${n?` composer-modal-mobile`:``}`,ref:a,tabIndex:-1,role:`dialog`,"aria-modal":`true`,"aria-labelledby":Cm,children:[z,(0,W.jsxs)(`div`,{className:`composer-knobs`,children:[(0,W.jsxs)(`label`,{children:[`Title`,(0,W.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value)})]}),(0,W.jsxs)(`label`,{children:[`Theme`,(0,W.jsxs)(`select`,{value:c,onChange:e=>l(e.target.value),children:[(0,W.jsx)(`option`,{value:`light`,children:`light`}),(0,W.jsx)(`option`,{value:`dark`,children:`dark`})]})]}),(0,W.jsxs)(`label`,{children:[`Format`,(0,W.jsxs)(`select`,{value:u,onChange:e=>d(e.target.value),children:[(0,W.jsx)(`option`,{value:`html`,children:`html`}),(0,W.jsx)(`option`,{value:`md`,children:`md`}),(0,W.jsx)(`option`,{value:`svg`,children:`svg`})]})]}),(0,W.jsxs)(`label`,{children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:f,onChange:e=>p(e.target.checked)}),`Anon on export`]}),(0,W.jsxs)(`label`,{children:[(0,W.jsx)(`input`,{type:`checkbox`,checked:m,onChange:e=>h(e.target.checked)}),`No branding`]})]}),le?(0,W.jsxs)(`div`,{className:`composer-anon-banner`,role:`status`,"aria-live":`polite`,children:[(0,W.jsxs)(`span`,{children:[ue,` section`,ue===1?``:`s`,` contain real project names. They will appear in the export.`]}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>p(!0),children:`Anonymize all`})]}):null,(0,W.jsxs)(`div`,{className:`composer-body`,children:[(0,W.jsx)(um,{items:t.items,results:g?.snapshot.section_results??[],kernelVersion:g?.snapshot.kernel_version??1,onRefresh:e=>{O(e)},onRemove:e=>I({type:`BASKET_REMOVE`,id:e})}),(0,W.jsxs)(`figure`,{className:`composer-preview-frame`,children:[(0,W.jsxs)(`figcaption`,{className:`composer-preview-label`,children:[`Preview · `,c]}),(0,W.jsx)(`iframe`,{className:`composer-preview`,title:`Combined preview`,tabIndex:-1,sandbox:`allow-same-origin`,srcDoc:g?.body??`<p>Composing…</p>`,ref:C})]})]}),b?(0,W.jsx)(`div`,{className:`composer-busy`,children:`Composing…`}):null,v?(0,W.jsx)(`div`,{className:`composer-error`,role:`alert`,children:v}):null,E?(0,W.jsx)(`div`,{className:`composer-error`,role:`alert`,children:E}):null,(0,W.jsxs)(`footer`,{className:`composer-actions`,children:[v?(0,W.jsx)(`p`,{className:`share-preview-failed-note`,id:gm,children:Wp}):null,(0,W.jsxs)(`div`,{className:`composer-export-row`,children:[(0,W.jsx)(`button`,{type:`button`,"aria-describedby":v?gm:void 0,className:`share-action share-action-copy`,onClick:M,disabled:!ae,title:u===`md`?T===`copy`?`Copying…`:`Copy composed report to clipboard`:`Copy is available for Markdown only`,children:T===`copy`?`Copying…`:`Copy`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":v?gm:void 0,className:`share-action share-action-download`,onClick:ne,disabled:!P,title:T===`download`?`Downloading…`:`Download composed report`,children:T===`download`?`Downloading…`:`Download`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":v?gm:void 0,className:`share-action share-action-open`,onClick:re,disabled:!oe,title:u===`html`||u===`svg`?T===`open`?`Opening…`:`Open composed report in new tab`:`Open is available for HTML/SVG`,children:T===`open`?`Opening…`:`Open`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":v?gm:void 0,className:`share-action share-action-png`,onClick:ie,disabled:!se,title:u===`svg`?T===`png`?`Rasterizing…`:`Download composed report as PNG`:`PNG export — available for SVG format only`,children:T===`png`?`Rasterizing…`:`PNG`}),(0,W.jsx)(`button`,{type:`button`,"aria-describedby":v?gm:void 0,className:`share-action share-action-print`,onClick:N,disabled:!ce,title:u===`html`?T===`print`?`Opening print dialog…`:`Open the browser print dialog (save as PDF)`:`Print → PDF — available for HTML format only`,children:T===`print`?`Printing…`:`Print → PDF`})]}),(0,W.jsx)(`button`,{type:`button`,className:`composer-clear-all`,onClick:()=>i.arm(hm),children:`Clear all`}),(0,W.jsx)(Np,{id:hm,host:i,prompt:`Clear ${_m(t.items.length)}?`,confirmLabel:`Clear ${_m(t.items.length)}`,onConfirm:()=>{I({type:`BASKET_CLEAR`}),i.close(()=>document.querySelector(`.composer-modal-close`))}})]})]})}function Tm(){let e=(0,U.useSyncExternalStore)(F,()=>R().shareModal),t=(0,U.useRef)(null),n=(0,U.useRef)(!1);(0,U.useEffect)(()=>{if(e)n.current||(n.current=!0,t.current=(e.triggerId?document.getElementById(e.triggerId):null)??document.activeElement);else if(n.current){n.current=!1;let e=t.current;if(t.current=null,e&&typeof e.focus==`function`&&document.contains(e))e.focus();else{let e=document.activeElement;e&&typeof e.blur==`function`&&e.blur(),document.body.focus()}}},[e]);let r=()=>I(M());return(0,W.jsxs)(W.Fragment,{children:[e?(0,W.jsx)(`div`,{id:`share-modal-root`,className:`share-overlay`,onClick:e=>{e.stopPropagation(),e.target===e.currentTarget&&r()},children:(0,W.jsx)(sm,{panel:e.panel,source:e.source,account:e.source===`claude`?null:e.account,initialParams:e.params,onClose:r})}):null,(0,W.jsx)(wm,{})]})}function Em(e,t){return e==null?t?`error`:`loading`:`ready`}function Dm({kind:e,message:t}){let n=e===`stale`?`Disconnected — data may be stale. Reconnecting…`:t??`Couldn’t load dashboard data. Reconnecting…`;return(0,W.jsxs)(`div`,{className:`stale-banner stale-banner-${e}`,role:`status`,"aria-live":`polite`,children:[(0,W.jsx)(`svg`,{className:`icon`,"aria-hidden":`true`,children:(0,W.jsx)(`use`,{href:`/static/icons.svg#warn-triangle`})}),(0,W.jsx)(`span`,{children:n}),e===`error`&&t==null&&(0,W.jsxs)(`span`,{className:`stale-banner-hint`,children:[`Check that `,(0,W.jsx)(`code`,{children:`cctally dashboard`}),` is running.`]})]})}var Om=[`tall`,`medium`,`short`];function km({span:e}){return(0,W.jsx)(`div`,{className:`panel-host`,"data-span":e,children:(0,W.jsxs)(`div`,{className:`panel is-skeleton`,children:[(0,W.jsx)(`div`,{className:`skel skel-header`}),(0,W.jsx)(`div`,{className:`skel skel-line`}),(0,W.jsx)(`div`,{className:`skel skel-line short`})]})})}function Am({mode:t}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`sr-only`,role:`status`,"aria-live":`polite`,children:`Loading dashboard…`}),(0,W.jsx)(`div`,{className:`skel-hero`,"aria-hidden":`true`}),(0,W.jsx)(`div`,{className:`dash-grid`,"aria-hidden":`true`,"data-board-mode":t,children:Om.map(n=>{let r=le.filter(t=>e[t].row===n);return(0,W.jsx)(`div`,{className:`bento-row row-${n}`,children:r.map(e=>(0,W.jsx)(km,{span:Xf(e,t)},e))},n)})})]})}function jm(){return typeof window>`u`||!window.matchMedia||window.matchMedia(Ln).matches?`bento`:window.matchMedia(In).matches?`intermediate`:`stack`}function Mm(){let[e,t]=(0,U.useState)(jm);return(0,U.useEffect)(()=>{if(typeof window>`u`||!window.matchMedia)return;let e=window.matchMedia(Ln),n=window.matchMedia(In),r=()=>t(jm());return e.addEventListener(`change`,r),n.addEventListener(`change`,r),r(),()=>{e.removeEventListener(`change`,r),n.removeEventListener(`change`,r)}},[]),e}var Nm=class extends U.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(e,t){console.error(`deferred ${this.props.name} failed to load`,e,t)}render(){let{children:e,name:t}=this.props;return this.state.failed?(0,W.jsx)(`div`,{className:`modal-backdrop feature-load-failure`,role:`alert`,"aria-label":`${t} failed to load`,children:(0,W.jsxs)(`section`,{className:`modal-card feature-load-failure-card`,children:[(0,W.jsxs)(`h2`,{children:[t,` could not load`]}),(0,W.jsx)(`p`,{children:`The dashboard may have updated while this tab was open. Reload to use one coherent build.`}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>window.location.reload(),children:`Reload dashboard`})]})}):(0,W.jsx)(U.Suspense,{fallback:(0,W.jsxs)(`div`,{className:`feature-load-pending`,role:`status`,children:[`Loading `,t,`…`]}),children:e})}},Pm=`modulepreload`,Fm=function(e){return`/static/`+e},Im={},Lm=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=Fm(t,n),t in Im)return;Im[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:Pm,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Rm=(0,U.lazy)(()=>Lm(()=>import(`./ConversationsView-CEZ-BUyi.js`).then(e=>({default:e.ConversationsView})),__vite__mapDeps([0,1,2]))),zm=(0,U.lazy)(()=>Lm(()=>import(`./ModalRoot-D5Y8IFUG.js`).then(e=>({default:e.ModalRoot})),__vite__mapDeps([3,1,2,4]))),Bm=(0,U.lazy)(()=>Lm(()=>import(`./SourceDetailModal-CHp9EgLP.js`).then(e=>({default:e.SourceDetailModal})),__vite__mapDeps([5,1,2,4]))),Vm=(0,U.lazy)(()=>Lm(()=>import(`./UpdateModal-5iKST6jo.js`).then(e=>({default:e.UpdateModal})),__vite__mapDeps([6,1]))),Hm=(0,U.lazy)(()=>Lm(()=>import(`./DoctorModal-CE1oH_Zy.js`).then(e=>({default:e.DoctorModal})),__vite__mapDeps([7,1])));function Um(){let t=(0,U.useSyncExternalStore)(F,()=>R().prefs.panelOrder),n=(0,U.useSyncExternalStore)(F,()=>R().activeSource),r=(0,U.useSyncExternalStore)(F,()=>R().view),i=(0,U.useSyncExternalStore)(F,()=>R().openModal),a=(0,U.useSyncExternalStore)(F,()=>R().openSourceDetail),o=(0,U.useSyncExternalStore)(F,()=>R().update.modalOpen),s=(0,U.useSyncExternalStore)(F,()=>R().doctorModalOpen),l=We(),{disconnected:u,bootstrapError:d,bootstrapMessage:f}=Wt(),p=Em(l,d),m=Mm(),{tall:h,medium:g,short:_,globalIndex:v}=(0,U.useMemo)(()=>{let r=c(t,C(l,n)),i=t=>r.filter(n=>e[n].row===t);return{tall:i(`tall`),medium:i(`medium`),short:i(`short`),globalIndex:new Map(r.map((e,t)=>[e,t]))}},[t,l,n]);return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`a`,{className:`skip-link`,href:`#main-content`,children:`Skip to main content`}),(0,W.jsx)(An,{}),(0,W.jsx)(`main`,{id:`main-content`,tabIndex:-1,children:r===`conversations`?(0,W.jsx)(Nm,{name:`Conversations`,children:(0,W.jsx)(Rm,{})}):p===`loading`?(0,W.jsx)(Am,{mode:m}):p===`error`?(0,W.jsx)(Dm,{kind:`error`,message:f}):(0,W.jsxs)(W.Fragment,{children:[u&&(0,W.jsx)(Dm,{kind:`stale`}),(0,W.jsx)(yr,{}),(0,W.jsx)(ws.Provider,{value:m,children:(0,W.jsxs)(`div`,{className:`dash-grid${u?` is-stale`:``}`,"data-board-mode":m,children:[(0,W.jsx)(rp,{items:h,className:`bento-row row-tall`,children:h.map(e=>(0,W.jsx)(Zf,{id:e,index:v.get(e)??0,mode:m},e))}),(0,W.jsx)(rp,{items:g,className:`bento-row row-medium`,children:g.map(e=>(0,W.jsx)(Zf,{id:e,index:v.get(e)??0,mode:m},e))}),(0,W.jsx)(rp,{items:_,className:`bento-row row-short`,children:_.map(e=>(0,W.jsx)(Zf,{id:e,index:v.get(e)??0,mode:m},e))})]})})]})}),(0,W.jsx)(Pr,{}),(0,W.jsx)(mc,{}),(0,W.jsx)(sl,{}),i?(0,W.jsx)(Nm,{name:`Dashboard detail`,children:(0,W.jsx)(zm,{})}):null,a?(0,W.jsx)(Nm,{name:`Source detail`,children:(0,W.jsx)(Bm,{})}):null,(0,W.jsx)(Tm,{}),o?(0,W.jsx)(Nm,{name:`Update`,children:(0,W.jsx)(Vm,{})}):null,s?(0,W.jsx)(Nm,{name:`Doctor`,children:(0,W.jsx)(Hm,{})}):null,(0,W.jsx)(El,{})]})}var Wm=`#/conversations`;function Gm(e){if(!e.startsWith(`v1.`))return null;try{let t=e.slice(3).replace(/-/g,`+`).replace(/_/g,`/`),n=t+`=`.repeat((4-t.length%4)%4),r=Uint8Array.from(atob(n),e=>e.charCodeAt(0)),i=JSON.parse(new TextDecoder().decode(r));return i.version!==1||i.resourceKind!==`conversation`?null:i.source===`claude`||i.source===`codex`?i.source:null}catch{return null}}function Km(e){let[t,n=``]=(e.startsWith(`#`)?e.slice(1):e).split(`?`,2),r=new URLSearchParams(n),i=t===`/conversation`||t.startsWith(`/conversation/`)?`/conversations`+t.slice(13):t;if(i===``||i===`/`)return null;if(i===`/conversations`||i===`/conversations/`)return{sessionId:null,turnUuid:null,compare:null};if(!i.startsWith(`/conversations/`))return null;let a=i.slice(15).split(`/`).filter(e=>e.length>0),o=e=>e===`claude`||e===`codex`?e:null;if(a[0]===`source`&&(a.length===3||a.length===4)){let e=o(a[1]);if(!e||!a[2])return null;let t=r.get(`account`)||void 0,n=t?{source:e,key:decodeURIComponent(a[2]),account_key:t}:{source:e,key:decodeURIComponent(a[2])};return{sessionId:e===`claude`?n.key:null,conversationRef:n,turnUuid:a[3]?decodeURIComponent(a[3]):null,compare:null,qualified:!0}}if(a[0]===`compare`&&a.length===5){let e=o(a[1]),t=o(a[3]);return!e||!t||!a[2]||!a[4]?null:{sessionId:null,conversationRef:null,turnUuid:null,compare:{a:r.get(`a_account`)?{source:e,key:decodeURIComponent(a[2]),account_key:r.get(`a_account`)}:{source:e,key:decodeURIComponent(a[2])},b:r.get(`b_account`)?{source:t,key:decodeURIComponent(a[4]),account_key:r.get(`b_account`)}:{source:t,key:decodeURIComponent(a[4])}},qualified:!0}}if(a[0]===`compare`&&a.length>=3&&a[1]&&a[2])return{sessionId:null,conversationRef:null,turnUuid:null,compare:{a:z(decodeURIComponent(a[1])),b:z(decodeURIComponent(a[2]))}};if(a.length===1||a.length===2){let e=decodeURIComponent(a[0]),t=Gm(e);if(t)return{sessionId:t===`claude`?e:null,conversationRef:{source:t,key:e},turnUuid:a[1]?decodeURIComponent(a[1]):null,compare:null,qualified:!0}}return a.length===1?{sessionId:decodeURIComponent(a[0]),turnUuid:null,compare:null}:a.length===2?{sessionId:decodeURIComponent(a[0]),turnUuid:decodeURIComponent(a[1]),compare:null}:null}function qm(e,t){if(V(e)){let n=`${Wm}/source/${e.source}/${encodeURIComponent(e.key)}`,r=t?`${n}/${encodeURIComponent(t)}`:n;return e.account_key?`${r}?account=${encodeURIComponent(e.account_key)}`:r}if(typeof e==`object`&&e){let t=e;if(t.compare){let e=P(t.compare.a),n=P(t.compare.b),r=`${Wm}/compare/${e.source}/${encodeURIComponent(e.key)}/${n.source}/${encodeURIComponent(n.key)}`,i=new URLSearchParams;return e.account_key&&i.set(`a_account`,e.account_key),n.account_key&&i.set(`b_account`,n.account_key),i.size?`${r}?${i.toString()}`:r}return t.conversationRef?qm(t.conversationRef,t.turnUuid):qm(t.sessionId,t.turnUuid)}let n=e;if(n===null)return Wm;let r=encodeURIComponent(n);return t?`${Wm}/${r}/${encodeURIComponent(t)}`:`${Wm}/${r}`}function Jm(e,t,n,r){return`${e}${t}${V(n),qm(n,r)}`}function Ym(e,t){return e===`dashboard`?``:qm(t||null)}var Xm=`cctallyRoute`;function Zm(e){return typeof e==`object`&&!!e&&Xm in e}function Qm(e,t){if(e===window.location.hash)return;let n=e===``?window.location.pathname+window.location.search:e,r={[Xm]:!0};t===`push`?window.history.pushState(r,``,n):window.history.replaceState(r,``,n)}function $m(e,t){Qm((V(e),qm(e,t)),`replace`)}function eh(e,t={}){let n=[{type:`SET_ACTIVE_SOURCE`,source:e.source},{type:`SET_ACCOUNT_FOCUS`,source:e.source,slot:`provider`,account:e.account_key??`all`}];return t.preserveRailState||(n.push({type:`CLEAR_CONVERSATION_FILTERS`}),n.push({type:`SET_CONVERSATION_SEARCH`,text:``})),n}var th=!1,nh=null,rh=!1;function ih(e,t,n,r={}){let i=th;th=!0;try{for(let n of eh(t,r))e(n);e(n)}finally{th=i}i||nh?.()}function ah(e){let t={preserveRailState:rh};rh=!1,th=!0;try{oh(e,t)}finally{th=!1}}function oh(e,t){let n=Km(window.location.hash);if(n===null){e.dispatch({type:`SET_VIEW`,view:`dashboard`});return}if(n.compare){let r=Oe(n.compare.a,n.compare.b)?n.qualified?{type:`OPEN_CONVERSATION`,conversationRef:n.compare.a}:{type:`OPEN_CONVERSATION`,sessionId:n.compare.a.key}:n.qualified?{type:`OPEN_COMPARE`,aRef:n.compare.a,bRef:n.compare.b}:{type:`OPEN_COMPARE`,a:n.compare.a.key,b:n.compare.b.key};ih(e.dispatch,n.compare.a,r,t);return}let r=n.conversationRef??(n.sessionId?z(n.sessionId):null);if(r===null){e.dispatch({type:`SET_VIEW`,view:`conversations`}),e.dispatch({type:`SELECT_CONVERSATION`,sessionId:null});return}let i=n.turnUuid?{...n.qualified?{conversation_ref:r}:{},session_id:r.key,uuid:n.turnUuid}:void 0;ih(e.dispatch,r,n.qualified?{type:`OPEN_CONVERSATION`,conversationRef:r,jump:i}:{type:`OPEN_CONVERSATION`,sessionId:r.key,jump:i},t)}function sh(e={getState:R,subscribeStore:F,dispatch:I}){let t=window.history.scrollRestoration;if(window.history.scrollRestoration=`manual`,!Zm(window.history.state)){let e=typeof window.history.state==`object`&&window.history.state!==null?window.history.state:{};window.history.replaceState({...e,[Xm]:!0},``)}ah(e);let n=()=>{let t=e.getState(),n=t.selectedConversationRef??(t.selectedConversationId?z(t.selectedConversationId):null);return{view:t.view,ref:n,refKey:n?ue(n):null,jumpUuid:t.conversationJump?.uuid??null,cmp:t.compare?JSON.stringify([ue(t.compare.a),ue(t.compare.b)]):null}},r=n(),i=()=>{ah(e),r=n()};window.addEventListener(`hashchange`,i);let a=e=>{rh=Zm(e.state)};window.addEventListener(`popstate`,a);let o=()=>{if(th)return;let t=e.getState(),i=n(),a=!!t.conversationJump&&Oe(L(t.conversationJump),i.ref);if(i.cmp&&i.cmp!==r.cmp){Qm(qm({sessionId:null,turnUuid:null,compare:t.compare}),`push`),r=i;return}if(i.cmp){r=i;return}if(r.cmp&&!i.cmp){let e=Ym(i.view,i.ref);i.view===`conversations`&&i.ref&&i.jumpUuid&&a&&(e=qm(i.ref,i.jumpUuid)),Qm(e,`push`),r=i;return}if(i.view!==r.view||i.refKey!==r.refKey){let e=Ym(i.view,i.ref);i.view===`conversations`&&i.ref&&i.jumpUuid&&a&&(e=qm(i.ref,i.jumpUuid)),Qm(e,`push`)}else i.ref&&i.refKey===r.refKey&&i.jumpUuid&&i.jumpUuid!==r.jumpUuid&&a&&Qm(qm(i.ref,i.jumpUuid),`replace`);r=i},s=e.subscribeStore(o),c=()=>{o()};return nh=c,()=>{window.removeEventListener(`hashchange`,i),window.removeEventListener(`popstate`,a),rh=!1,nh===c&&(nh=null),s(),window.history.scrollRestoration=t}}function ch(e){let t=R();if(t.snapshot==null)return;let n=ce(t);if(n==null)return;let r=c(t.prefs.panelOrder,C(n,t.activeSource)),i=e-1;if(i<0||i>=r.length)return;let a=r[i];if(t.activeSource!==`claude`&&a===`sessions`){let e=ke(C(n,t.activeSource))[0];e&&I({type:`OPEN_SOURCE_DETAIL`,source:e.source,resource:`session`,key:e.key});return}if(t.activeSource!==`claude`&&a===`blocks`){let e=aa(n,t.activeSource),r=e.find(e=>e.is_active)??e[0];r?.source===`claude`?I({type:`OPEN_MODAL`,kind:`block`,blockStartAt:r.start_at}):r&&I({type:`OPEN_SOURCE_DETAIL`,source:r.source,resource:`block`,key:r.key});return}let o=cc[a];o&&o.openAction()}var lh=`Focus a panel action, then press Shift+S to share it.`;function uh(){return typeof window>`u`||!window.matchMedia?!1:window.matchMedia(Pn).matches}function dh(){if(typeof document>`u`)return null;let e=document.activeElement;if(!e||!(e instanceof Element))return null;let t=e.closest(`[data-panel-kind]`);return t?t.getAttribute(`data-panel-kind`):null}function fh(){return{key:`S`,scope:`global`,when:()=>{let e=R();return!(uh()||e.shareModal!==null||e.composerModal!==null||e.openModal!==null||e.update.modalOpen||e.inputMode!==null||e.chromeOverlayOpen!==0)},action:()=>{let e=dh();if(e===null){I({type:`SHOW_STATUS_TOAST`,text:lh});return}Te.has(e)&&Xr(R().activeSource,e)&&I(j(e,`${e}-panel`))}}}function ph(){return typeof window>`u`||!window.matchMedia?!1:window.matchMedia(Pn).matches}function mh(){return{key:`B`,scope:`global`,when:()=>{let e=R();return!(ph()||e.shareModal!==null||e.composerModal!==null||e.openModal!==null||e.update.modalOpen||e.inputMode!==null||e.chromeOverlayOpen!==0)},action:()=>I(p())}}function hh(){return[mh()]}var gh=[`claude`,`codex`,`all`];function _h(){let e=R().activeSource,t=gh[(gh.indexOf(e)+1)%gh.length];I({type:`SET_ACTIVE_SOURCE`,source:t})}function vh(){let e=R(),t=e.activeSource,n=t===`all`?x(e.snapshot,`codex`)?`codex`:x(e.snapshot,`claude`)?`claude`:null:t;if(n==null)return;let r=v(e.snapshot?.sources?.[n]??null);if(r==null)return;let i=y(r,u(e.snapshot,t,n,e.accountFocus));I({type:`SET_ACCOUNT_FOCUS`,source:n,slot:pe(t),account:i})}function yh(){return typeof window<`u`&&!!window.matchMedia&&window.matchMedia(In).matches}function bh(){let e=R();return!e.openModal&&!e.update.modalOpen&&!e.doctorModalOpen&&e.inputMode===null&&e.chromeOverlayOpen===0}function xh(){let e=R();return!(e.openModal!==null||e.update.modalOpen||e.inputMode!==null||e.chromeOverlayOpen!==0)}function Sh(){return[{key:`1`,scope:`global`,when:bh,action:()=>ch(1)},{key:`2`,scope:`global`,when:bh,action:()=>ch(2)},{key:`3`,scope:`global`,when:bh,action:()=>ch(3)},{key:`4`,scope:`global`,when:bh,action:()=>ch(4)},{key:`5`,scope:`global`,when:bh,action:()=>ch(5)},{key:`6`,scope:`global`,when:bh,action:()=>ch(6)},{key:`7`,scope:`global`,when:bh,action:()=>ch(7)},{key:`8`,scope:`global`,when:bh,action:()=>ch(8)},{key:`9`,scope:`global`,when:bh,action:()=>ch(9)},{key:`0`,scope:`global`,when:bh,action:()=>ch(10)},{key:`r`,scope:`global`,when:bh,action:()=>Dn()},{key:`v`,scope:`global`,when:bh,action:_h},{key:`a`,scope:`global`,when:bh,action:vh},{key:`q`,scope:`global`,when:bh,action:Nr},{key:`n`,scope:`global`,when:bh,action:()=>jr(1)},{key:`N`,scope:`global`,when:bh,action:()=>jr(-1)},{key:`d`,scope:`global`,view:`any`,when:xh,action:()=>I({type:`OPEN_DOCTOR_MODAL`})},{key:`e`,scope:`global`,when:bh,action:()=>I({type:`OPEN_MODAL`,kind:`explain`})},fh(),...hh(),{key:`c`,scope:`sessions`,when:()=>!R().openModal&&R().chromeOverlayOpen===0&&!yh(),action:()=>{let e=R().prefs.sessionsCollapsed;I({type:`SAVE_PREFS`,patch:{sessionsCollapsed:!e}})}}]}var Ch=class extends Error{constructor(){super(`Dashboard authentication failed`),this.name=`DashboardAuthError`}};function wh(){history.replaceState(history.state,``,`${location.pathname}${location.search}`)}async function Th(){let e=location.hash;if(!e.startsWith(`#token=`))return;wh();let t=e.slice(7);if(!t||t.includes(`&`))throw new Ch;let n;try{n=decodeURIComponent(t)}catch{throw new Ch}if(!n)throw new Ch;let r;try{r=await fetch(`/api/auth`,{method:`POST`,headers:{Authorization:`Bearer ${n}`}})}catch{throw new Ch}if(r.status!==204)throw new Ch}function Eh(e){let t=document.createElement(`section`);t.className=`app-error`,t.setAttribute(`role`,`alert`);let n=document.createElement(`h1`);n.textContent=`Dashboard authentication failed`;let r=document.createElement(`p`);r.textContent=`Reopen the dashboard using a fresh URL from its terminal.`,t.append(n,r),e.replaceChildren(t)}var Dh=document.getElementById(`root`);if(!Dh)throw Error(`missing #root`);async function Oh(e){try{await Th()}catch{Eh(e);return}Pt(),et(),xe(),sh(),fe(Sh()),(0,Re.createRoot)(e).render((0,W.jsx)(U.StrictMode,{children:(0,W.jsx)(Um,{})}))}Oh(Dh);export{ea as $,Yo as A,Qt as At,go as B,cs as C,Fn as Ct,Xo as D,Tn as Dt,ts as E,jn as Et,Ao as F,We as Ft,ga as G,Qa as H,ko as I,Le as It,ca as J,la as K,To as L,Go as M,et as Mt,zo as N,tt as Nt,Qo as O,hn as Ot,Bo as P,it as Pt,Xi as Q,ho as R,xs as S,Rn as St,ns as T,Nn as Tt,Ga as U,lo as V,ja as W,Gi as X,Zi as Y,Ui as Z,Vs as _,Qn as _t,fl as a,Ci as at,Cs as b,Vn as bt,nc as c,ei as ct,ec as d,Ur as dt,zi as et,Zs as f,or as ft,Ls as g,$n as gt,Is as h,fr as ht,ih as i,xi as it,Wo as j,Yt as jt,Zo as k,dn as kt,$s as l,Qr as lt,qs as m,sr as mt,Jm as n,Fi as nt,uc as o,wi as ot,Ys as p,ar as pt,Yi as q,$m as r,Ji as rt,lc as s,oi as st,bh as t,ra as tt,Qs as u,qr as ut,Rs as v,Zn as vt,es as w,Mn as wt,bs as x,zn as xt,Ns as y,Un as yt,po as z};
|