claude-code-session-manager 0.93.0 → 0.95.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/assets/{DataModel-DDGx3qrn.js → DataModel-DZK9QZpV.js} +1 -1
  2. package/dist/assets/{History-CHBjYZyD.js → History-BDyJUGtR.js} +2 -2
  3. package/dist/assets/{Hooks-DG4c-Rzz.js → Hooks-CmK6l0uf.js} +3 -3
  4. package/dist/assets/HostBilko-D8TIx-Bx.js +1 -0
  5. package/dist/assets/{Library-CN1h5rAE.js → Library-DTxpOjx8.js} +25 -25
  6. package/dist/assets/{MarkdownEditor-DmBxrhdn.js → MarkdownEditor-BPJyrevq.js} +1 -1
  7. package/dist/assets/McpServers-B_rvIYDs.js +2 -0
  8. package/dist/assets/{Memory-Dk4uDCjg.js → Memory-B-9GlHqe.js} +6 -6
  9. package/dist/assets/{Permissions-BovobeZw.js → Permissions-DhMMp27n.js} +3 -3
  10. package/dist/assets/{Plugins-DvOf_B62.js → Plugins-DKfAlmMY.js} +2 -2
  11. package/dist/assets/{ProvenanceBadge-Dutz_4OY.js → ProvenanceBadge-ptlItdCK.js} +1 -1
  12. package/dist/assets/{SaveBar-CT5u6ZCJ.js → SaveBar-CSbNSl2W.js} +1 -1
  13. package/dist/assets/Scheduler--rn1QBYc.js +16 -0
  14. package/dist/assets/{ScopeSwitcher-BUYDpz2v.js → ScopeSwitcher-BJof-GWH.js} +1 -1
  15. package/dist/assets/{Settings-DIRmr3tL.js → Settings-Dsx6XZP5.js} +3 -3
  16. package/dist/assets/{SkillReferenceGraph-CdGr6d3_.js → SkillReferenceGraph-CGl4B89-.js} +2 -2
  17. package/dist/assets/{Skills-BQOheQv4.js → Skills-D522Zfol.js} +2 -2
  18. package/dist/assets/{SystemPrompt-5LsimKbX.js → SystemPrompt-DKj-q39J.js} +1 -1
  19. package/dist/assets/{TagLibrary-DreLsT3n.js → TagLibrary-BH7CG7-6.js} +1 -1
  20. package/dist/assets/{TiptapBody-C9kmlBnI.js → TiptapBody-BbcJL9az.js} +1 -1
  21. package/dist/assets/{Toggle-BKLCBu9A.js → Toggle-DAslvnnv.js} +1 -1
  22. package/dist/assets/{index-Db_SK9rW.js → index-Yf8e7VCB.js} +821 -821
  23. package/dist/assets/{settingsSchema-B5jBhSUP.js → settingsSchema-pzp0TgvN.js} +1 -1
  24. package/dist/index.html +1 -1
  25. package/package.json +8 -3
  26. package/scripts/README.md +6 -0
  27. package/src/main/__tests__/chat-cancel-terminal.test.cjs +5 -2
  28. package/src/main/__tests__/chat-exit-close-race.test.cjs +8 -2
  29. package/src/main/__tests__/chat-mcp-consent-notice.test.cjs +5 -2
  30. package/src/main/__tests__/health-tick-liveness.test.cjs +12 -0
  31. package/src/main/__tests__/intradayRefresh.test.cjs +39 -0
  32. package/src/main/__tests__/openExternalApp-spawn-error.test.cjs +25 -0
  33. package/src/main/__tests__/opsErrorLog.test.cjs +22 -0
  34. package/src/main/__tests__/pty-epic-worktree-spawn-cwd.test.cjs +21 -0
  35. package/src/main/__tests__/rateLimitPollerStreak.test.cjs +14 -0
  36. package/src/main/__tests__/runVerify-atomic-verdicts.test.cjs +26 -0
  37. package/src/main/__tests__/runVerify-landed-commit-outranks.test.cjs +11 -1
  38. package/src/main/__tests__/runVerify-transcript-commit-evidence.test.cjs +11 -1
  39. package/src/main/__tests__/runVerify.test.cjs +12 -1
  40. package/src/main/__tests__/scheduler-rate-limit-pause.test.cjs +15 -0
  41. package/src/main/__tests__/scheduler-utilization-hold.test.cjs +89 -0
  42. package/src/main/__tests__/transcriptsUsageFor.test.cjs +112 -1
  43. package/src/main/build-info.json +4 -4
  44. package/src/main/chatRunner.cjs +45 -10
  45. package/src/main/crashDiagnostics.cjs +9 -0
  46. package/src/main/git.cjs +9 -2
  47. package/src/main/health.cjs +25 -1
  48. package/src/main/historyAggregator.cjs +2 -19
  49. package/src/main/index.cjs +7 -8
  50. package/src/main/ipcSchemas.cjs +13 -3
  51. package/src/main/lib/__tests__/childWithLog.test.cjs +180 -0
  52. package/src/main/lib/__tests__/delegationReadiness.test.cjs +19 -0
  53. package/src/main/lib/__tests__/gitCacheBound.test.cjs +69 -0
  54. package/src/main/lib/__tests__/loopDelay.test.cjs +68 -0
  55. package/src/main/lib/__tests__/usageCircuit.test.cjs +86 -17
  56. package/src/main/lib/agentPersonaSchema.cjs +2 -0
  57. package/src/main/lib/childWithLog.cjs +92 -51
  58. package/src/main/lib/delegationReadiness.cjs +3 -1
  59. package/src/main/lib/epicSpawnPlan.cjs +27 -8
  60. package/src/main/lib/epicTranscriptPath.cjs +5 -1
  61. package/src/main/lib/headTailBuffer.cjs +43 -0
  62. package/src/main/lib/intradayRefresh.cjs +33 -0
  63. package/src/main/lib/loopDelay.cjs +44 -0
  64. package/src/main/lib/lruCache.cjs +39 -0
  65. package/src/main/lib/openExternalApp.cjs +27 -9
  66. package/src/main/lib/opsErrorLog.cjs +22 -0
  67. package/src/main/lib/promptSessionSchema.cjs +2 -0
  68. package/src/main/lib/rendererRecovery.cjs +141 -0
  69. package/src/main/lib/scheduleJobSchema.cjs +3 -0
  70. package/src/main/lib/usageCircuit.cjs +40 -12
  71. package/src/main/runVerify.cjs +3 -1
  72. package/src/main/scheduler.cjs +409 -260
  73. package/src/main/transcripts.cjs +54 -11
  74. package/src/main/usage.cjs +9 -1
  75. package/src/preload/api.d.ts +20 -3
  76. package/dist/assets/HostBilko-DHXcpV2c.js +0 -1
  77. package/dist/assets/McpServers-Beb_HD6I.js +0 -2
  78. package/dist/assets/Scheduler-B7GSnZj5.js +0 -16
@@ -1,4 +1,4 @@
1
- import{ay as Q,R as bo,ag as wo,aj as tr}from"./index-Db_SK9rW.js";import"./monaco-editor-BW5C4Iv1.js";function ko(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i,o,a,s,u=[],l=!0,f=!1;try{if(a=(r=r.call(e)).next,n===0){if(Object(r)!==r)return;l=!1}else for(;!(l=(i=a.call(r)).done)&&(u.push(i.value),u.length!==n);l=!0);}catch(h){f=!0,o=h}finally{try{if(!l&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(f)throw o}}return u}}function Ao(e,n,r){return n=Ro(n),n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function er(e,n){return Mo(e)||ko(e,n)||fi(e,n)||Oo()}function Co(e){return So(e)||To(e)||fi(e)||Po()}function So(e){if(Array.isArray(e))return gn(e)}function Mo(e){if(Array.isArray(e))return e}function To(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function fi(e,n){if(e){if(typeof e=="string")return gn(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return gn(e,n)}}function gn(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=new Array(n);r<n;r++)i[r]=e[r];return i}function Po(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
1
+ import{az as Q,R as bo,ah as wo,ak as tr}from"./index-Yf8e7VCB.js";import"./monaco-editor-BW5C4Iv1.js";function ko(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i,o,a,s,u=[],l=!0,f=!1;try{if(a=(r=r.call(e)).next,n===0){if(Object(r)!==r)return;l=!1}else for(;!(l=(i=a.call(r)).done)&&(u.push(i.value),u.length!==n);l=!0);}catch(h){f=!0,o=h}finally{try{if(!l&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(f)throw o}}return u}}function Ao(e,n,r){return n=Ro(n),n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function er(e,n){return Mo(e)||ko(e,n)||fi(e,n)||Oo()}function Co(e){return So(e)||To(e)||fi(e)||Po()}function So(e){if(Array.isArray(e))return gn(e)}function Mo(e){if(Array.isArray(e))return e}function To(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function fi(e,n){if(e){if(typeof e=="string")return gn(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return gn(e,n)}}function gn(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=new Array(n);r<n;r++)i[r]=e[r];return i}function Po(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2
2
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Oo(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
3
3
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Eo(e,n){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,n);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function Ro(e){var n=Eo(e,"string");return typeof n=="symbol"?n:String(n)}var zo=function(n,r){var i=new Set(r);return Object.assign.apply(Object,[{}].concat(Co(Object.entries(n).filter(function(o){var a=er(o,1),s=a[0];return!i.has(s)}).map(function(o){var a=er(o,2),s=a[0],u=a[1];return Ao({},s,u)}))))};function yn(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r<n;r++)i[r]=e[r];return i}function No(e){if(Array.isArray(e))return e}function Io(e){if(Array.isArray(e))return yn(e)}function $o(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Do(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i,o,a,s,u=[],l=!0,f=!1;try{if(a=(r=r.call(e)).next,n!==0)for(;!(l=(i=a.call(r)).done)&&(u.push(i.value),u.length!==n);l=!0);}catch(h){f=!0,o=h}finally{try{if(!l&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(f)throw o}}return u}}function jo(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
4
4
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Fo(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
@@ -43,4 +43,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
43
43
  }
44
44
  `;Vh(Wh);function Nn(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r<n;r++)i[r]=e[r];return i}function Bh(e){if(Array.isArray(e))return e}function Xh(e){if(Array.isArray(e))return Nn(e)}function ni(e,n,r){if(go())return Reflect.construct.apply(null,arguments);var i=[null];i.push.apply(i,n);var o=new(e.bind.apply(e,i));return o}function ge(e,n,r){return(n=td(n))in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function go(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(go=function(){return!!e})()}function Yh(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Zh(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i,o,a,s,u=[],l=!0,f=!1;try{if(a=(r=r.call(e)).next,n!==0)for(;!(l=(i=a.call(r)).done)&&(u.push(i.value),u.length!==n);l=!0);}catch(h){f=!0,o=h}finally{try{if(!l&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(f)throw o}}return u}}function Kh(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
45
45
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Qh(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
46
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ri(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,i)}return r}function Ht(e){for(var n=1;n<arguments.length;n++){var r=arguments[n]!=null?arguments[n]:{};n%2?ri(Object(r),!0).forEach(function(i){ge(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ri(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function le(e,n){return Bh(e)||Zh(e,n)||yo(e,n)||Kh()}function ut(e){return Xh(e)||Yh(e)||yo(e)||Qh()}function Jh(e,n){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,n);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function td(e){var n=Jh(e,"string");return typeof n=="symbol"?n:n+""}function In(e){"@babel/helpers - typeof";return In=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},In(e)}function yo(e,n){if(e){if(typeof e=="string")return Nn(e,n);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Nn(e,n):void 0}}var ed=po(Gh);function ii(e,n,r){!n||typeof r!="string"||e.filter(function(i){return!i[r]}).forEach(function(i){i[r]=ed(n(i))})}function nd(e,n){var r=e.nodes,i=e.links,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=o.nodeFilter,s=a===void 0?function(){return!0}:a,u=o.onLoopError,l=u===void 0?function(p){throw"Invalid DAG structure! Found cycle in node path: ".concat(p.join(" -> "),".")}:u,f={};r.forEach(function(p){return f[n(p)]={data:p,out:[],depth:-1,skip:!s(p)}}),i.forEach(function(p){var y=p.source,m=p.target,_=x(y),g=x(m);if(!f.hasOwnProperty(_))throw"Missing source node with id: ".concat(_);if(!f.hasOwnProperty(g))throw"Missing target node with id: ".concat(g);var w=f[_],C=f[g];w.out.push(C);function x(b){return In(b)==="object"?n(b):b}});var h=[];d(Object.values(f));var c=Object.assign.apply(Object,[{}].concat(ut(Object.entries(f).filter(function(p){var y=le(p,2),m=y[1];return!m.skip}).map(function(p){var y=le(p,2),m=y[0],_=y[1];return ge({},m,_.depth)}))));return c;function d(p){for(var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,_=function(){var x=p[g];if(y.indexOf(x)!==-1){var b=[].concat(ut(y.slice(y.indexOf(x))),[x]).map(function(A){return n(A.data)});return h.some(function(A){return A.length===b.length&&A.every(function(S,M){return S===b[M]})})||(h.push(b),l(b)),1}m>x.depth&&(x.depth=m,d(x.out,[].concat(ut(y),[x]),m+(x.skip?0:1)))},g=0,w=p.length;g<w;g++)_()}}var rd=2,K=function(n,r){return r.onNeedsRedraw&&r.onNeedsRedraw()},oi=function(n,r){if(!r.isShadow){var i=q(r.linkDirectionalParticles);r.graphData.links.forEach(function(o){var a=Math.round(Math.abs(i(o)));a?o.__photons=ut(Array(a)).map(function(){return{}}):delete o.__photons})}},We=Gn({props:{graphData:{default:{nodes:[],links:[]},onChange:function(n,r){r.engineRunning=!1,oi(n,r)}},dagMode:{onChange:function(n,r){!n&&(r.graphData.nodes||[]).forEach(function(i){return i.fx=i.fy=void 0})}},dagLevelDistance:{},dagNodeFilter:{default:function(n){return!0}},onDagError:{triggerUpdate:!1},nodeRelSize:{default:4,triggerUpdate:!1,onChange:K},nodeId:{default:"id"},nodeVal:{default:"val",triggerUpdate:!1,onChange:K},nodeColor:{default:"color",triggerUpdate:!1,onChange:K},nodeAutoColorBy:{},nodeCanvasObject:{triggerUpdate:!1,onChange:K},nodeCanvasObjectMode:{default:function(){return"replace"},triggerUpdate:!1,onChange:K},nodeVisibility:{default:!0,triggerUpdate:!1,onChange:K},linkSource:{default:"source"},linkTarget:{default:"target"},linkVisibility:{default:!0,triggerUpdate:!1,onChange:K},linkColor:{default:"color",triggerUpdate:!1,onChange:K},linkAutoColorBy:{},linkLineDash:{triggerUpdate:!1,onChange:K},linkWidth:{default:1,triggerUpdate:!1,onChange:K},linkCurvature:{default:0,triggerUpdate:!1,onChange:K},linkCanvasObject:{triggerUpdate:!1,onChange:K},linkCanvasObjectMode:{default:function(){return"replace"},triggerUpdate:!1,onChange:K},linkDirectionalArrowLength:{default:0,triggerUpdate:!1,onChange:K},linkDirectionalArrowColor:{triggerUpdate:!1,onChange:K},linkDirectionalArrowRelPos:{default:.5,triggerUpdate:!1,onChange:K},linkDirectionalParticles:{default:0,triggerUpdate:!1,onChange:oi},linkDirectionalParticleSpeed:{default:.01,triggerUpdate:!1},linkDirectionalParticleOffset:{default:0,triggerUpdate:!1},linkDirectionalParticleWidth:{default:4,triggerUpdate:!1},linkDirectionalParticleColor:{triggerUpdate:!1},linkDirectionalParticleCanvasObject:{triggerUpdate:!1},globalScale:{default:1,triggerUpdate:!1},d3AlphaMin:{default:0,triggerUpdate:!1},d3AlphaDecay:{default:.0228,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.alphaDecay(n)}},d3AlphaTarget:{default:0,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.alphaTarget(n)}},d3VelocityDecay:{default:.4,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.velocityDecay(n)}},warmupTicks:{default:0,triggerUpdate:!1},cooldownTicks:{default:1/0,triggerUpdate:!1},cooldownTime:{default:15e3,triggerUpdate:!1},onUpdate:{default:function(){},triggerUpdate:!1},onFinishUpdate:{default:function(){},triggerUpdate:!1},onEngineTick:{default:function(){},triggerUpdate:!1},onEngineStop:{default:function(){},triggerUpdate:!1},onNeedsRedraw:{triggerUpdate:!1},isShadow:{default:!1,triggerUpdate:!1}},methods:{d3Force:function(n,r,i){return i===void 0?n.forceLayout.force(r):(n.forceLayout.force(r,i),this)},d3ReheatSimulation:function(n){return n.forceLayout.alpha(1),this.resetCountdown(),this},resetCountdown:function(n){return n.cntTicks=0,n.startTickTime=new Date,n.engineRunning=!0,this},isEngineRunning:function(n){return!!n.engineRunning},tickFrame:function(n){return!n.isShadow&&r(),o(),!n.isShadow&&a(),!n.isShadow&&s(),i(),this;function r(){n.engineRunning&&(++n.cntTicks>n.cooldownTicks||new Date-n.startTickTime>n.cooldownTime||n.d3AlphaMin>0&&n.forceLayout.alpha()<n.d3AlphaMin?(n.engineRunning=!1,n.onEngineStop()):(n.forceLayout.tick(),n.onEngineTick()))}function i(){var u=q(n.nodeVisibility),l=q(n.nodeVal),f=q(n.nodeColor),h=q(n.nodeCanvasObjectMode),c=n.ctx,d=n.isShadow/n.globalScale,p=n.graphData.nodes.filter(u);c.save(),p.forEach(function(y){var m=h(y);if(n.nodeCanvasObject&&(m==="before"||m==="replace")&&(n.nodeCanvasObject(y,c,n.globalScale),m==="replace")){c.restore();return}var _=Math.sqrt(Math.max(0,l(y)||1))*n.nodeRelSize+d;c.beginPath(),c.arc(y.x,y.y,_,0,2*Math.PI,!1),c.fillStyle=f(y)||"rgba(31, 120, 180, 0.92)",c.fill(),n.nodeCanvasObject&&m==="after"&&n.nodeCanvasObject(y,n.ctx,n.globalScale)}),c.restore()}function o(){var u=q(n.linkVisibility),l=q(n.linkColor),f=q(n.linkWidth),h=q(n.linkLineDash),c=q(n.linkCurvature),d=q(n.linkCanvasObjectMode),p=n.ctx,y=n.isShadow*2,m=n.graphData.links.filter(u);m.forEach(A);var _=[],g=[],w=m;if(n.linkCanvasObject){var C=[],x=[];m.forEach(function(S){return({before:_,after:g,replace:C}[d(S)]||x).push(S)}),w=[].concat(ut(_),g,x),_=_.concat(C)}p.save(),_.forEach(function(S){return n.linkCanvasObject(S,p,n.globalScale)}),p.restore();var b=Lh(w,[l,f,h]);p.save(),Object.entries(b).forEach(function(S){var M=le(S,2),E=M[0],P=M[1],z=!E||E==="undefined"?"rgba(0,0,0,0.15)":E;Object.entries(P).forEach(function(N){var j=le(N,2),k=j[0],R=j[1],T=(k||1)/n.globalScale+y;Object.entries(R).forEach(function(I){var D=le(I,2);D[0];var F=D[1],U=h(F[0]);p.beginPath(),F.forEach(function(L){var H=L.source,Y=L.target;if(!(!H||!Y||!H.hasOwnProperty("x")||!Y.hasOwnProperty("x"))){p.moveTo(H.x,H.y);var X=L.__controlPoints;X?p[X.length===2?"quadraticCurveTo":"bezierCurveTo"].apply(p,ut(X).concat([Y.x,Y.y])):p.lineTo(Y.x,Y.y)}}),p.strokeStyle=z,p.lineWidth=T,p.setLineDash(U||[]),p.stroke()})})}),p.restore(),p.save(),g.forEach(function(S){return n.linkCanvasObject(S,p,n.globalScale)}),p.restore();function A(S){var M=c(S);if(!M){S.__controlPoints=null;return}var E=S.source,P=S.target;if(!(!E||!P||!E.hasOwnProperty("x")||!P.hasOwnProperty("x"))){var z=Math.sqrt(Math.pow(P.x-E.x,2)+Math.pow(P.y-E.y,2));if(z>0){var N=Math.atan2(P.y-E.y,P.x-E.x),j=z*M,k={x:(E.x+P.x)/2+j*Math.cos(N-Math.PI/2),y:(E.y+P.y)/2+j*Math.sin(N-Math.PI/2)};S.__controlPoints=[k.x,k.y]}else{var R=M*70;S.__controlPoints=[P.x,P.y-R,P.x+R,P.y]}}}}function a(){var u=1.6,l=.2,f=q(n.linkDirectionalArrowLength),h=q(n.linkDirectionalArrowRelPos),c=q(n.linkVisibility),d=q(n.linkDirectionalArrowColor||n.linkColor),p=q(n.nodeVal),y=n.ctx;y.save(),n.graphData.links.filter(c).forEach(function(m){var _=f(m);if(!(!_||_<0)){var g=m.source,w=m.target;if(!(!g||!w||!g.hasOwnProperty("x")||!w.hasOwnProperty("x"))){var C=Math.sqrt(Math.max(0,p(g)||1))*n.nodeRelSize,x=Math.sqrt(Math.max(0,p(w)||1))*n.nodeRelSize,b=Math.min(1,Math.max(0,h(m))),A=d(m)||"rgba(0,0,0,0.28)",S=_/u/2,M=m.__controlPoints&&ni(V,[g.x,g.y].concat(ut(m.__controlPoints),[w.x,w.y])),E=M?function(T){return M.get(T)}:function(T){return{x:g.x+(w.x-g.x)*T||0,y:g.y+(w.y-g.y)*T||0}},P=M?M.length():Math.sqrt(Math.pow(w.x-g.x,2)+Math.pow(w.y-g.y,2)),z=C+_+(P-C-x-_)*b,N=E(z/P),j=E((z-_)/P),k=E((z-_*(1-l))/P),R=Math.atan2(N.y-j.y,N.x-j.x)-Math.PI/2;y.beginPath(),y.moveTo(N.x,N.y),y.lineTo(j.x+S*Math.cos(R),j.y+S*Math.sin(R)),y.lineTo(k.x,k.y),y.lineTo(j.x-S*Math.cos(R),j.y-S*Math.sin(R)),y.fillStyle=A,y.fill()}}}),y.restore()}function s(){var u=q(n.linkDirectionalParticles),l=q(n.linkDirectionalParticleSpeed),f=q(n.linkDirectionalParticleOffset),h=q(n.linkDirectionalParticleWidth),c=q(n.linkVisibility),d=q(n.linkDirectionalParticleColor||n.linkColor),p=n.ctx;p.save(),n.graphData.links.filter(c).forEach(function(y){var m=u(y);if(!(!y.hasOwnProperty("__photons")||!y.__photons.length)){var _=y.source,g=y.target;if(!(!_||!g||!_.hasOwnProperty("x")||!g.hasOwnProperty("x"))){var w=l(y),C=Math.abs(f(y)),x=y.__photons||[],b=Math.max(0,h(y)/2)/Math.sqrt(n.globalScale),A=d(y)||"rgba(0,0,0,0.28)";p.fillStyle=A;var S=y.__controlPoints?ni(V,[_.x,_.y].concat(ut(y.__controlPoints),[g.x,g.y])):null,M=0,E=!1;x.forEach(function(P){var z=!!P.__singleHop;if(P.hasOwnProperty("__progressRatio")||(P.__progressRatio=z?w<0?1:0:(M+C)/m),!z&&M++,P.__progressRatio+=w,P.__progressRatio>=1||P.__progressRatio<0)if(!z)P.__progressRatio=P.__progressRatio%1,P.__progressRatio<0&&P.__progressRatio++;else{E=!0;return}var N=P.__progressRatio,j=S?S.get(N):{x:_.x+(g.x-_.x)*N||0,y:_.y+(g.y-_.y)*N||0};n.linkDirectionalParticleCanvasObject?n.linkDirectionalParticleCanvasObject(j.x,j.y,y,p,n.globalScale):(p.beginPath(),p.arc(j.x,j.y,b,0,2*Math.PI,!1),p.fill())}),E&&(y.__photons=y.__photons.filter(function(P){return!P.__singleHop||P.__progressRatio<=1&&P.__progressRatio>=0}))}}}),p.restore()}},emitParticle:function(n,r){return r&&(!r.__photons&&(r.__photons=[]),r.__photons.push({__singleHop:!0})),this}},stateInit:function(){return{forceLayout:mh().force("link",ch()).force("charge",xh()).force("center",dc()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(n,r){r.ctx=n},update:function(n,r){n.engineRunning=!1,n.onUpdate(),n.nodeAutoColorBy!==null&&ii(n.graphData.nodes,q(n.nodeAutoColorBy),n.nodeColor),n.linkAutoColorBy!==null&&ii(n.graphData.links,q(n.linkAutoColorBy),n.linkColor),n.graphData.links.forEach(function(d){d.source=d[n.linkSource],d.target=d[n.linkTarget]}),n.forceLayout.stop().alpha(1).nodes(n.graphData.nodes);var i=n.forceLayout.force("link");i&&i.id(function(d){return d[n.nodeId]}).links(n.graphData.links);var o=n.dagMode&&nd(n.graphData,function(d){return d[n.nodeId]},{nodeFilter:n.dagNodeFilter,onLoopError:n.onDagError||void 0}),a=Math.max.apply(Math,ut(Object.values(o||[]))),s=n.dagLevelDistance||n.graphData.nodes.length/(a||1)*rd*(["radialin","radialout"].indexOf(n.dagMode)!==-1?.7:1);if(["lr","rl","td","bu"].includes(r.dagMode)){var u=["lr","rl"].includes(r.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(d){return delete d[u]})}if(["lr","rl","td","bu"].includes(n.dagMode)){var l=["rl","bu"].includes(n.dagMode),f=function(p){return(o[p[n.nodeId]]-a/2)*s*(l?-1:1)},h=["lr","rl"].includes(n.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(d){return d[h]=f(d)})}n.forceLayout.force("dagRadial",["radialin","radialout"].indexOf(n.dagMode)!==-1?bh(function(d){var p=o[d[n.nodeId]]||-1;return(n.dagMode==="radialin"?a-p:p)*s}).strength(function(d){return n.dagNodeFilter(d)?1:0}):null);for(var c=0;c<n.warmupTicks&&!(n.d3AlphaMin>0&&n.forceLayout.alpha()<n.d3AlphaMin);c++)n.forceLayout.tick();this.resetCountdown(),n.onFinishUpdate()}});function _o(e,n){var r=e instanceof Array?e:[e],i=new n;return i._destructor&&i._destructor(),{linkProp:function(a){return{default:i[a](),onChange:function(u,l){r.forEach(function(f){return l[f][a](u)})},triggerUpdate:!1}},linkMethod:function(a){return function(s){for(var u=arguments.length,l=new Array(u>1?u-1:0),f=1;f<u;f++)l[f-1]=arguments[f];var h=[];return r.forEach(function(c){var d=s[c],p=d[a].apply(d,l);p!==d&&h.push(p)}),h.length?h[0]:this}}}}var id=800,od=4,ad=5,vo=_o("forceGraph",We),sd=_o(["forceGraph","shadowGraph"],We),ud=Object.assign.apply(Object,ut(["nodeColor","nodeAutoColorBy","nodeCanvasObject","nodeCanvasObjectMode","linkColor","linkAutoColorBy","linkLineDash","linkWidth","linkCanvasObject","linkCanvasObjectMode","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalParticles","linkDirectionalParticleSpeed","linkDirectionalParticleOffset","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleCanvasObject","dagMode","dagLevelDistance","dagNodeFilter","onDagError","d3AlphaMin","d3AlphaDecay","d3VelocityDecay","warmupTicks","cooldownTicks","cooldownTime","onEngineTick","onEngineStop"].map(function(e){return ge({},e,vo.linkProp(e))})).concat(ut(["nodeRelSize","nodeId","nodeVal","nodeVisibility","linkSource","linkTarget","linkVisibility","linkCurvature"].map(function(e){return ge({},e,sd.linkProp(e))})))),ld=Object.assign.apply(Object,ut(["d3Force","d3ReheatSimulation","emitParticle"].map(function(e){return ge({},e,vo.linkMethod(e))})));function cn(e){if(e.canvas){var n=e.canvas.width,r=e.canvas.height;n===300&&r===150&&(n=r=0);var i=window.devicePixelRatio;n/=i,r/=i,[e.canvas,e.shadowCanvas].forEach(function(a){a.style.width="".concat(e.width,"px"),a.style.height="".concat(e.height,"px"),a.width=e.width*i,a.height=e.height*i,!n&&!r&&a.getContext("2d").scale(i,i)});var o=gt(e.canvas).k;e.zoom.translateBy(e.zoom.__baseElem,(e.width-n)/2/o,(e.height-r)/2/o),e.needsRedraw=!0}}function mo(e){var n=window.devicePixelRatio;e.setTransform(n,0,0,n,0,0)}function ai(e,n,r){e.save(),mo(e),e.clearRect(0,0,n,r),e.restore()}var fd=Gn({props:Ht({width:{default:window.innerWidth,onChange:function(n,r){return cn(r)},triggerUpdate:!1},height:{default:window.innerHeight,onChange:function(n,r){return cn(r)},triggerUpdate:!1},graphData:{default:{nodes:[],links:[]},onChange:function(n,r){[n.nodes,n.links].every(function(o){return(o||[]).every(function(a){return!a.hasOwnProperty("__indexColor")})})&&r.colorTracker.reset(),[{type:"Node",objs:n.nodes},{type:"Link",objs:n.links}].forEach(i),r.forceGraph.graphData(n),r.shadowGraph.graphData(n);function i(o){var a=o.type,s=o.objs;s.filter(function(u){if(!u.hasOwnProperty("__indexColor"))return!0;var l=r.colorTracker.lookup(u.__indexColor);return!l||!l.hasOwnProperty("d")||l.d!==u}).forEach(function(u){u.__indexColor=r.colorTracker.register({type:a,d:u})})}},triggerUpdate:!1},backgroundColor:{onChange:function(n,r){r.canvas&&n&&(r.canvas.style.background=n)},triggerUpdate:!1},nodeLabel:{default:"name",triggerUpdate:!1},nodePointerAreaPaint:{onChange:function(n,r){r.shadowGraph.nodeCanvasObject(n?function(i,o,a){return n(i,i.__indexColor,o,a)}:null),r.flushShadowCanvas&&r.flushShadowCanvas()},triggerUpdate:!1},linkPointerAreaPaint:{onChange:function(n,r){r.shadowGraph.linkCanvasObject(n?function(i,o,a){return n(i,i.__indexColor,o,a)}:null),r.flushShadowCanvas&&r.flushShadowCanvas()},triggerUpdate:!1},linkLabel:{default:"name",triggerUpdate:!1},linkHoverPrecision:{default:4,triggerUpdate:!1},minZoom:{default:.01,onChange:function(n,r){r.zoom.scaleExtent([n,r.zoom.scaleExtent()[1]])},triggerUpdate:!1},maxZoom:{default:1e3,onChange:function(n,r){r.zoom.scaleExtent([r.zoom.scaleExtent()[0],n])},triggerUpdate:!1},enableNodeDrag:{default:!0,triggerUpdate:!1},enableZoomInteraction:{default:!0,triggerUpdate:!1},enablePanInteraction:{default:!0,triggerUpdate:!1},enableZoomPanInteraction:{default:!0,triggerUpdate:!1},enablePointerInteraction:{default:!0,onChange:function(n,r){r.hoverObj=null},triggerUpdate:!1},autoPauseRedraw:{default:!0,triggerUpdate:!1},onNodeDrag:{default:function(){},triggerUpdate:!1},onNodeDragEnd:{default:function(){},triggerUpdate:!1},onNodeClick:{triggerUpdate:!1},onNodeRightClick:{triggerUpdate:!1},onNodeHover:{triggerUpdate:!1},onLinkClick:{triggerUpdate:!1},onLinkRightClick:{triggerUpdate:!1},onLinkHover:{triggerUpdate:!1},onBackgroundClick:{triggerUpdate:!1},onBackgroundRightClick:{triggerUpdate:!1},showPointerCursor:{default:!0,triggerUpdate:!1},onZoom:{triggerUpdate:!1},onZoomEnd:{triggerUpdate:!1},onRenderFramePre:{triggerUpdate:!1},onRenderFramePost:{triggerUpdate:!1}},ud),aliases:{stopAnimation:"pauseAnimation"},methods:Ht({graph2ScreenCoords:function(n,r,i){var o=gt(n.canvas);return{x:r*o.k+o.x,y:i*o.k+o.y}},screen2GraphCoords:function(n,r,i){var o=gt(n.canvas);return{x:(r-o.x)/o.k,y:(i-o.y)/o.k}},centerAt:function(n,r,i,o){if(!n.canvas)return null;if(r!==void 0||i!==void 0){var a=Object.assign({},r!==void 0?{x:r}:{},i!==void 0?{y:i}:{});return o?n.tweenGroup.add(new Pr(s()).to(a,o).easing(Ft.Quadratic.Out).onUpdate(u).onComplete(function(){n.tweenGroup.remove(this)}).start()):u(a),this}return s();function s(){var l=gt(n.canvas);return{x:(n.width/2-l.x)/l.k,y:(n.height/2-l.y)/l.k}}function u(l){var f=l.x,h=l.y;n.zoom.translateTo(n.zoom.__baseElem,f===void 0?s().x:f,h===void 0?s().y:h),n.needsRedraw=!0}},zoom:function(n,r,i){if(!n.canvas)return null;if(r!==void 0)return i?n.tweenGroup.add(new Pr({k:o()}).to({k:r},i).easing(Ft.Quadratic.Out).onUpdate(function(s){var u=s.k;return a(u)}).onComplete(function(){n.tweenGroup.remove(this)}).start()):a(r),this;return o();function o(){return gt(n.canvas).k}function a(s){n.zoom.scaleTo(n.zoom.__baseElem,s),n.needsRedraw=!0}},zoomToFit:function(n){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:10,o=arguments.length,a=new Array(o>3?o-3:0),s=3;s<o;s++)a[s-3]=arguments[s];var u=this.getGraphBbox.apply(this,a);if(u){var l={x:(u.x[0]+u.x[1])/2,y:(u.y[0]+u.y[1])/2},f=Math.max(1e-12,Math.min(1e12,(n.width-i*2)/(u.x[1]-u.x[0]),(n.height-i*2)/(u.y[1]-u.y[0])));this.centerAt(l.x,l.y,r),this.zoom(f,r)}return this},getGraphBbox:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){return!0},i=q(n.nodeVal),o=function(u){return Math.sqrt(Math.max(0,i(u)||1))*n.nodeRelSize},a=n.graphData.nodes.filter(r).map(function(s){return{x:s.x,y:s.y,r:o(s)}});return a.length?{x:[Cr(a,function(s){return s.x-s.r}),Ar(a,function(s){return s.x+s.r})],y:[Cr(a,function(s){return s.y-s.r}),Ar(a,function(s){return s.y+s.r})]}:null},pauseAnimation:function(n){return n.animationFrameRequestId&&(cancelAnimationFrame(n.animationFrameRequestId),n.animationFrameRequestId=null),this},resumeAnimation:function(n){return n.animationFrameRequestId||this._animationCycle(),this},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},ld),stateInit:function(){return{lastSetZoom:1,zoom:ml(),forceGraph:new We,shadowGraph:new We().cooldownTicks(0).nodeColor("__indexColor").linkColor("__indexColor").isShadow(!0),colorTracker:new Gf,tweenGroup:new Li}},init:function(n,r){var i=this;n.innerHTML="";var o=document.createElement("div");o.classList.add("force-graph-container"),o.style.position="relative",n.appendChild(o),r.canvas=document.createElement("canvas"),r.backgroundColor&&(r.canvas.style.background=r.backgroundColor),o.appendChild(r.canvas),r.shadowCanvas=document.createElement("canvas");var a=r.canvas.getContext("2d"),s=r.shadowCanvas.getContext("2d",{willReadFrequently:!0}),u={x:-1e12,y:-1e12},l=function(){var c=null,d=window.devicePixelRatio,p=u.x>0&&u.y>0?s.getImageData(u.x*d,u.y*d,1,1):null;return p&&(c=r.colorTracker.lookup(p.data)),c};st(r.canvas).call(Ps().subject(function(){if(!r.enableNodeDrag)return null;var h=l();return h&&h.type==="Node"?h.d:null}).on("start",function(h){var c=h.subject;c.__initialDragPos={x:c.x,y:c.y,fx:c.fx,fy:c.fy},h.active||(c.fx=c.x,c.fy=c.y),r.canvas.classList.add("grabbable")}).on("drag",function(h){var c=h.subject,d=c.__initialDragPos,p=h,y=gt(r.canvas).k,m={x:d.x+(p.x-d.x)/y-c.x,y:d.y+(p.y-d.y)/y-c.y};["x","y"].forEach(function(_){return c["f".concat(_)]=c[_]=d[_]+(p[_]-d[_])/y}),!(!c.__dragged&&ad>=Math.sqrt(kl(["x","y"].map(function(_){return Math.pow(h[_]-d[_],2)}))))&&(r.forceGraph.d3AlphaTarget(.3).resetCountdown(),r.isPointerDragging=!0,c.__dragged=!0,r.onNodeDrag(c,m))}).on("end",function(h){var c=h.subject,d=c.__initialDragPos,p={x:c.x-d.x,y:c.y-d.y};d.fx===void 0&&(c.fx=void 0),d.fy===void 0&&(c.fy=void 0),delete c.__initialDragPos,r.forceGraph.d3AlphaTarget()&&r.forceGraph.d3AlphaTarget(0).resetCountdown(),r.canvas.classList.remove("grabbable"),r.isPointerDragging=!1,c.__dragged&&(delete c.__dragged,r.onNodeDragEnd(c,p))})),r.zoom(r.zoom.__baseElem=st(r.canvas)),r.zoom.__baseElem.on("dblclick.zoom",null),r.zoom.filter(function(h){return!h.button&&r.enableZoomPanInteraction&&(h.type!=="wheel"||q(r.enableZoomInteraction)(h))&&(h.type==="wheel"||q(r.enablePanInteraction)(h))}).on("zoom",function(h){var c=h.transform;[a,s].forEach(function(d){mo(d),d.translate(c.x,c.y),d.scale(c.k,c.k)}),r.isPointerDragging=!0,r.onZoom&&r.onZoom(Ht(Ht({},c),i.centerAt())),r.needsRedraw=!0}).on("end",function(h){r.isPointerDragging=!1,r.onZoomEnd&&r.onZoomEnd(Ht(Ht({},h.transform),i.centerAt()))}),cn(r),r.forceGraph.onNeedsRedraw(function(){return r.needsRedraw=!0}).onFinishUpdate(function(){gt(r.canvas).k===r.lastSetZoom&&r.graphData.nodes.length&&(r.zoom.scaleTo(r.zoom.__baseElem,r.lastSetZoom=od/Math.cbrt(r.graphData.nodes.length)),r.needsRedraw=!0)}),r.tooltip=new hc(o),["pointermove","pointerdown"].forEach(function(h){return o.addEventListener(h,function(c){h==="pointerdown"&&(r.isPointerPressed=!0,r.pointerDownEvent=c),!r.isPointerDragging&&c.type==="pointermove"&&r.onBackgroundClick&&(c.pressure>0||r.isPointerPressed)&&(c.pointerType==="mouse"||c.movementX===void 0||[c.movementX,c.movementY].some(function(y){return Math.abs(y)>1}))&&(r.isPointerDragging=!0);var d=p(o);u.x=c.pageX-d.left,u.y=c.pageY-d.top;function p(y){var m=y.getBoundingClientRect(),_=window.pageXOffset||document.documentElement.scrollLeft,g=window.pageYOffset||document.documentElement.scrollTop;return{top:m.top+g,left:m.left+_}}},{passive:!0})}),o.addEventListener("pointerup",function(h){if(r.isPointerPressed){if(r.isPointerPressed=!1,r.isPointerDragging){r.isPointerDragging=!1;return}var c=[h,r.pointerDownEvent];requestAnimationFrame(function(){if(h.button===0)if(r.hoverObj){var d=r["on".concat(r.hoverObj.type,"Click")];d&&d.apply(void 0,[r.hoverObj.d].concat(c))}else r.onBackgroundClick&&r.onBackgroundClick.apply(r,c);if(h.button===2)if(r.hoverObj){var p=r["on".concat(r.hoverObj.type,"RightClick")];p&&p.apply(void 0,[r.hoverObj.d].concat(c))}else r.onBackgroundRightClick&&r.onBackgroundRightClick.apply(r,c)})}},{passive:!0}),o.addEventListener("contextmenu",function(h){return!r.onBackgroundRightClick&&!r.onNodeRightClick&&!r.onLinkRightClick?!0:(h.preventDefault(),!1)}),r.forceGraph(a),r.shadowGraph(s);var f=Zl(function(){ai(s,r.width,r.height),r.shadowGraph.linkWidth(function(c){return q(r.linkWidth)(c)+r.linkHoverPrecision});var h=gt(r.canvas);r.shadowGraph.globalScale(h.k).tickFrame()},id);r.flushShadowCanvas=f.flush,(this._animationCycle=function h(){var c=!r.autoPauseRedraw||!!r.needsRedraw||r.forceGraph.isEngineRunning()||r.graphData.links.some(function(C){return C.__photons&&C.__photons.length});if(r.needsRedraw=!1,r.enablePointerInteraction){var d=r.isPointerDragging?null:l();if(d!==r.hoverObj){var p=r.hoverObj,y=p?p.type:null,m=d?d.type:null;if(y&&y!==m){var _=r["on".concat(y,"Hover")];_&&_(null,p.d)}if(m){var g=r["on".concat(m,"Hover")];g&&g(d.d,y===m?p.d:null)}r.tooltip.content(d&&q(r["".concat(d.type.toLowerCase(),"Label")])(d.d)||null),r.canvas.classList[(d&&r["on".concat(m,"Click")]||!d&&r.onBackgroundClick)&&q(r.showPointerCursor)(d==null?void 0:d.d)?"add":"remove"]("clickable"),r.hoverObj=d}c&&f()}if(c){ai(a,r.width,r.height);var w=gt(r.canvas).k;r.onRenderFramePre&&r.onRenderFramePre(a,w),r.forceGraph.globalScale(w).tickFrame(),r.onRenderFramePost&&r.onRenderFramePost(a,w)}r.tweenGroup.update(),r.animationFrameRequestId=requestAnimationFrame(h)})()},update:function(n){}}),hn={exports:{}},dn,si;function cd(){if(si)return dn;si=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return dn=e,dn}var pn,ui;function hd(){if(ui)return pn;ui=1;var e=cd();function n(){}function r(){}return r.resetWarningCache=n,pn=function(){function i(s,u,l,f,h,c){if(c!==e){var d=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw d.name="Invariant Violation",d}}i.isRequired=i;function o(){return i}var a={array:i,bigint:i,bool:i,func:i,number:i,object:i,string:i,symbol:i,any:i,arrayOf:o,element:i,elementType:i,instanceOf:o,node:i,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:r,resetWarningCache:n};return a.PropTypes=a,a},pn}var li;function dd(){return li||(li=1,hn.exports=hd()()),hn.exports}var pd=dd();const v=wo(pd),Je={width:v.number,height:v.number,graphData:v.shape({nodes:v.arrayOf(v.object).isRequired,links:v.arrayOf(v.object).isRequired}),backgroundColor:v.string,nodeRelSize:v.number,nodeId:v.string,nodeLabel:v.oneOfType([v.string,v.func]),nodeVal:v.oneOfType([v.number,v.string,v.func]),nodeVisibility:v.oneOfType([v.bool,v.string,v.func]),nodeColor:v.oneOfType([v.string,v.func]),nodeAutoColorBy:v.oneOfType([v.string,v.func]),onNodeHover:v.func,onNodeClick:v.func,linkSource:v.string,linkTarget:v.string,linkLabel:v.oneOfType([v.string,v.func]),linkVisibility:v.oneOfType([v.bool,v.string,v.func]),linkColor:v.oneOfType([v.string,v.func]),linkAutoColorBy:v.oneOfType([v.string,v.func]),linkWidth:v.oneOfType([v.number,v.string,v.func]),linkCurvature:v.oneOfType([v.number,v.string,v.func]),linkDirectionalArrowLength:v.oneOfType([v.number,v.string,v.func]),linkDirectionalArrowColor:v.oneOfType([v.string,v.func]),linkDirectionalArrowRelPos:v.oneOfType([v.number,v.string,v.func]),linkDirectionalParticles:v.oneOfType([v.number,v.string,v.func]),linkDirectionalParticleSpeed:v.oneOfType([v.number,v.string,v.func]),linkDirectionalParticleOffset:v.oneOfType([v.number,v.string,v.func]),linkDirectionalParticleWidth:v.oneOfType([v.number,v.string,v.func]),linkDirectionalParticleColor:v.oneOfType([v.string,v.func]),onLinkHover:v.func,onLinkClick:v.func,dagMode:v.oneOf(["td","bu","lr","rl","zin","zout","radialin","radialout"]),dagLevelDistance:v.number,dagNodeFilter:v.func,onDagError:v.func,d3AlphaMin:v.number,d3AlphaDecay:v.number,d3VelocityDecay:v.number,warmupTicks:v.number,cooldownTicks:v.number,cooldownTime:v.number,onEngineTick:v.func,onEngineStop:v.func,getGraphBbox:v.func},xo={zoomToFit:v.func,onNodeRightClick:v.func,onNodeDrag:v.func,onNodeDragEnd:v.func,onLinkRightClick:v.func,linkHoverPrecision:v.number,onBackgroundClick:v.func,onBackgroundRightClick:v.func,showPointerCursor:v.oneOfType([v.bool,v.func]),enablePointerInteraction:v.bool,enableNodeDrag:v.bool},Qn={showNavInfo:v.bool,nodeOpacity:v.number,nodeResolution:v.number,nodeThreeObject:v.oneOfType([v.object,v.string,v.func]),nodeThreeObjectExtend:v.oneOfType([v.bool,v.string,v.func]),nodePositionUpdate:v.func,linkOpacity:v.number,linkResolution:v.number,linkCurveRotation:v.oneOfType([v.number,v.string,v.func]),linkMaterial:v.oneOfType([v.object,v.string,v.func]),linkThreeObject:v.oneOfType([v.object,v.string,v.func]),linkThreeObjectExtend:v.oneOfType([v.bool,v.string,v.func]),linkPositionUpdate:v.func,linkDirectionalArrowResolution:v.number,linkDirectionalParticleResolution:v.number,linkDirectionalParticleThreeObject:v.oneOfType([v.object,v.string,v.func]),forceEngine:v.oneOf(["d3","ngraph"]),ngraphPhysics:v.object,numDimensions:v.oneOf([1,2,3])},gd=Object.assign({},Je,xo,{linkLineDash:v.oneOfType([v.arrayOf(v.number),v.string,v.func]),nodeCanvasObjectMode:v.oneOfType([v.string,v.func]),nodeCanvasObject:v.func,nodePointerAreaPaint:v.func,linkCanvasObjectMode:v.oneOfType([v.string,v.func]),linkCanvasObject:v.func,linkPointerAreaPaint:v.func,linkDirectionalParticleCanvasObject:v.func,autoPauseRedraw:v.bool,minZoom:v.number,maxZoom:v.number,enableZoomInteraction:v.oneOfType([v.bool,v.func]),enablePanInteraction:v.oneOfType([v.bool,v.func]),onZoom:v.func,onZoomEnd:v.func,onRenderFramePre:v.func,onRenderFramePost:v.func});Object.assign({},Je,xo,Qn,{enableNavigationControls:v.bool,controlType:v.oneOf(["trackball","orbit","fly"]),rendererConfig:v.object,extraRenderers:v.arrayOf(v.shape({render:v.func.isRequired}))});Object.assign({},Je,Qn,{nodeDesc:v.oneOfType([v.string,v.func]),linkDesc:v.oneOfType([v.string,v.func])});Object.assign({},Je,Qn,{markerAttrs:v.object,yOffset:v.number,glScale:v.number});const Jn=Lo(fd,{methodNames:["emitParticle","d3Force","d3ReheatSimulation","stopAnimation","pauseAnimation","resumeAnimation","centerAt","zoom","zoomToFit","getGraphBbox","screen2GraphCoords","graph2ScreenCoords"]});Jn.displayName="ForceGraph2D";Jn.propTypes=gd;const yd="#b85c34",_d="#8a7a60";function xd({skills:e,edges:n,selectedId:r,onSelect:i}){const o=Q.useRef(null),[a,s]=Q.useState({width:640,height:420});Q.useEffect(()=>{const l=()=>{const f=o.current;if(!f)return;const h=f.getBoundingClientRect();h.width>0&&h.height>0&&s({width:h.width,height:h.height})};return l(),window.addEventListener("resize",l),()=>window.removeEventListener("resize",l)},[]);const u=Q.useMemo(()=>({nodes:e.map(l=>({id:l.id,name:l.name??l.id})),links:n.map(l=>({source:l.from,target:l.to}))}),[e,n]);return tr.jsx("div",{ref:o,className:"w-full h-full",children:tr.jsx(Jn,{graphData:u,width:a.width,height:a.height,nodeId:"id",nodeLabel:"name",nodeColor:l=>l.id===r?yd:_d,linkDirectionalArrowLength:4,linkDirectionalArrowRelPos:1,onNodeClick:l=>i(l.id)})})}export{xd as SkillReferenceGraph};
46
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ri(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,i)}return r}function Ht(e){for(var n=1;n<arguments.length;n++){var r=arguments[n]!=null?arguments[n]:{};n%2?ri(Object(r),!0).forEach(function(i){ge(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ri(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function le(e,n){return Bh(e)||Zh(e,n)||yo(e,n)||Kh()}function ut(e){return Xh(e)||Yh(e)||yo(e)||Qh()}function Jh(e,n){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,n);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}function td(e){var n=Jh(e,"string");return typeof n=="symbol"?n:n+""}function In(e){"@babel/helpers - typeof";return In=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},In(e)}function yo(e,n){if(e){if(typeof e=="string")return Nn(e,n);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Nn(e,n):void 0}}var ed=po(Gh);function ii(e,n,r){!n||typeof r!="string"||e.filter(function(i){return!i[r]}).forEach(function(i){i[r]=ed(n(i))})}function nd(e,n){var r=e.nodes,i=e.links,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=o.nodeFilter,s=a===void 0?function(){return!0}:a,u=o.onLoopError,l=u===void 0?function(p){throw"Invalid DAG structure! Found cycle in node path: ".concat(p.join(" -> "),".")}:u,f={};r.forEach(function(p){return f[n(p)]={data:p,out:[],depth:-1,skip:!s(p)}}),i.forEach(function(p){var y=p.source,m=p.target,_=x(y),g=x(m);if(!f.hasOwnProperty(_))throw"Missing source node with id: ".concat(_);if(!f.hasOwnProperty(g))throw"Missing target node with id: ".concat(g);var w=f[_],C=f[g];w.out.push(C);function x(b){return In(b)==="object"?n(b):b}});var h=[];d(Object.values(f));var c=Object.assign.apply(Object,[{}].concat(ut(Object.entries(f).filter(function(p){var y=le(p,2),m=y[1];return!m.skip}).map(function(p){var y=le(p,2),m=y[0],_=y[1];return ge({},m,_.depth)}))));return c;function d(p){for(var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,_=function(){var x=p[g];if(y.indexOf(x)!==-1){var b=[].concat(ut(y.slice(y.indexOf(x))),[x]).map(function(A){return n(A.data)});return h.some(function(A){return A.length===b.length&&A.every(function(S,M){return S===b[M]})})||(h.push(b),l(b)),1}m>x.depth&&(x.depth=m,d(x.out,[].concat(ut(y),[x]),m+(x.skip?0:1)))},g=0,w=p.length;g<w;g++)_()}}var rd=2,K=function(n,r){return r.onNeedsRedraw&&r.onNeedsRedraw()},oi=function(n,r){if(!r.isShadow){var i=q(r.linkDirectionalParticles);r.graphData.links.forEach(function(o){var a=Math.round(Math.abs(i(o)));a?o.__photons=ut(Array(a)).map(function(){return{}}):delete o.__photons})}},We=Gn({props:{graphData:{default:{nodes:[],links:[]},onChange:function(n,r){r.engineRunning=!1,oi(n,r)}},dagMode:{onChange:function(n,r){!n&&(r.graphData.nodes||[]).forEach(function(i){return i.fx=i.fy=void 0})}},dagLevelDistance:{},dagNodeFilter:{default:function(n){return!0}},onDagError:{triggerUpdate:!1},nodeRelSize:{default:4,triggerUpdate:!1,onChange:K},nodeId:{default:"id"},nodeVal:{default:"val",triggerUpdate:!1,onChange:K},nodeColor:{default:"color",triggerUpdate:!1,onChange:K},nodeAutoColorBy:{},nodeCanvasObject:{triggerUpdate:!1,onChange:K},nodeCanvasObjectMode:{default:function(){return"replace"},triggerUpdate:!1,onChange:K},nodeVisibility:{default:!0,triggerUpdate:!1,onChange:K},linkSource:{default:"source"},linkTarget:{default:"target"},linkVisibility:{default:!0,triggerUpdate:!1,onChange:K},linkColor:{default:"color",triggerUpdate:!1,onChange:K},linkAutoColorBy:{},linkLineDash:{triggerUpdate:!1,onChange:K},linkWidth:{default:1,triggerUpdate:!1,onChange:K},linkCurvature:{default:0,triggerUpdate:!1,onChange:K},linkCanvasObject:{triggerUpdate:!1,onChange:K},linkCanvasObjectMode:{default:function(){return"replace"},triggerUpdate:!1,onChange:K},linkDirectionalArrowLength:{default:0,triggerUpdate:!1,onChange:K},linkDirectionalArrowColor:{triggerUpdate:!1,onChange:K},linkDirectionalArrowRelPos:{default:.5,triggerUpdate:!1,onChange:K},linkDirectionalParticles:{default:0,triggerUpdate:!1,onChange:oi},linkDirectionalParticleSpeed:{default:.01,triggerUpdate:!1},linkDirectionalParticleOffset:{default:0,triggerUpdate:!1},linkDirectionalParticleWidth:{default:4,triggerUpdate:!1},linkDirectionalParticleColor:{triggerUpdate:!1},linkDirectionalParticleCanvasObject:{triggerUpdate:!1},globalScale:{default:1,triggerUpdate:!1},d3AlphaMin:{default:0,triggerUpdate:!1},d3AlphaDecay:{default:.0228,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.alphaDecay(n)}},d3AlphaTarget:{default:0,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.alphaTarget(n)}},d3VelocityDecay:{default:.4,triggerUpdate:!1,onChange:function(n,r){r.forceLayout.velocityDecay(n)}},warmupTicks:{default:0,triggerUpdate:!1},cooldownTicks:{default:1/0,triggerUpdate:!1},cooldownTime:{default:15e3,triggerUpdate:!1},onUpdate:{default:function(){},triggerUpdate:!1},onFinishUpdate:{default:function(){},triggerUpdate:!1},onEngineTick:{default:function(){},triggerUpdate:!1},onEngineStop:{default:function(){},triggerUpdate:!1},onNeedsRedraw:{triggerUpdate:!1},isShadow:{default:!1,triggerUpdate:!1}},methods:{d3Force:function(n,r,i){return i===void 0?n.forceLayout.force(r):(n.forceLayout.force(r,i),this)},d3ReheatSimulation:function(n){return n.forceLayout.alpha(1),this.resetCountdown(),this},resetCountdown:function(n){return n.cntTicks=0,n.startTickTime=new Date,n.engineRunning=!0,this},isEngineRunning:function(n){return!!n.engineRunning},tickFrame:function(n){return!n.isShadow&&r(),o(),!n.isShadow&&a(),!n.isShadow&&s(),i(),this;function r(){n.engineRunning&&(++n.cntTicks>n.cooldownTicks||new Date-n.startTickTime>n.cooldownTime||n.d3AlphaMin>0&&n.forceLayout.alpha()<n.d3AlphaMin?(n.engineRunning=!1,n.onEngineStop()):(n.forceLayout.tick(),n.onEngineTick()))}function i(){var u=q(n.nodeVisibility),l=q(n.nodeVal),f=q(n.nodeColor),h=q(n.nodeCanvasObjectMode),c=n.ctx,d=n.isShadow/n.globalScale,p=n.graphData.nodes.filter(u);c.save(),p.forEach(function(y){var m=h(y);if(n.nodeCanvasObject&&(m==="before"||m==="replace")&&(n.nodeCanvasObject(y,c,n.globalScale),m==="replace")){c.restore();return}var _=Math.sqrt(Math.max(0,l(y)||1))*n.nodeRelSize+d;c.beginPath(),c.arc(y.x,y.y,_,0,2*Math.PI,!1),c.fillStyle=f(y)||"rgba(31, 120, 180, 0.92)",c.fill(),n.nodeCanvasObject&&m==="after"&&n.nodeCanvasObject(y,n.ctx,n.globalScale)}),c.restore()}function o(){var u=q(n.linkVisibility),l=q(n.linkColor),f=q(n.linkWidth),h=q(n.linkLineDash),c=q(n.linkCurvature),d=q(n.linkCanvasObjectMode),p=n.ctx,y=n.isShadow*2,m=n.graphData.links.filter(u);m.forEach(A);var _=[],g=[],w=m;if(n.linkCanvasObject){var C=[],x=[];m.forEach(function(S){return({before:_,after:g,replace:C}[d(S)]||x).push(S)}),w=[].concat(ut(_),g,x),_=_.concat(C)}p.save(),_.forEach(function(S){return n.linkCanvasObject(S,p,n.globalScale)}),p.restore();var b=Lh(w,[l,f,h]);p.save(),Object.entries(b).forEach(function(S){var M=le(S,2),E=M[0],P=M[1],z=!E||E==="undefined"?"rgba(0,0,0,0.15)":E;Object.entries(P).forEach(function(N){var j=le(N,2),k=j[0],R=j[1],T=(k||1)/n.globalScale+y;Object.entries(R).forEach(function(I){var D=le(I,2);D[0];var F=D[1],U=h(F[0]);p.beginPath(),F.forEach(function(L){var H=L.source,Y=L.target;if(!(!H||!Y||!H.hasOwnProperty("x")||!Y.hasOwnProperty("x"))){p.moveTo(H.x,H.y);var X=L.__controlPoints;X?p[X.length===2?"quadraticCurveTo":"bezierCurveTo"].apply(p,ut(X).concat([Y.x,Y.y])):p.lineTo(Y.x,Y.y)}}),p.strokeStyle=z,p.lineWidth=T,p.setLineDash(U||[]),p.stroke()})})}),p.restore(),p.save(),g.forEach(function(S){return n.linkCanvasObject(S,p,n.globalScale)}),p.restore();function A(S){var M=c(S);if(!M){S.__controlPoints=null;return}var E=S.source,P=S.target;if(!(!E||!P||!E.hasOwnProperty("x")||!P.hasOwnProperty("x"))){var z=Math.sqrt(Math.pow(P.x-E.x,2)+Math.pow(P.y-E.y,2));if(z>0){var N=Math.atan2(P.y-E.y,P.x-E.x),j=z*M,k={x:(E.x+P.x)/2+j*Math.cos(N-Math.PI/2),y:(E.y+P.y)/2+j*Math.sin(N-Math.PI/2)};S.__controlPoints=[k.x,k.y]}else{var R=M*70;S.__controlPoints=[P.x,P.y-R,P.x+R,P.y]}}}}function a(){var u=1.6,l=.2,f=q(n.linkDirectionalArrowLength),h=q(n.linkDirectionalArrowRelPos),c=q(n.linkVisibility),d=q(n.linkDirectionalArrowColor||n.linkColor),p=q(n.nodeVal),y=n.ctx;y.save(),n.graphData.links.filter(c).forEach(function(m){var _=f(m);if(!(!_||_<0)){var g=m.source,w=m.target;if(!(!g||!w||!g.hasOwnProperty("x")||!w.hasOwnProperty("x"))){var C=Math.sqrt(Math.max(0,p(g)||1))*n.nodeRelSize,x=Math.sqrt(Math.max(0,p(w)||1))*n.nodeRelSize,b=Math.min(1,Math.max(0,h(m))),A=d(m)||"rgba(0,0,0,0.28)",S=_/u/2,M=m.__controlPoints&&ni(V,[g.x,g.y].concat(ut(m.__controlPoints),[w.x,w.y])),E=M?function(T){return M.get(T)}:function(T){return{x:g.x+(w.x-g.x)*T||0,y:g.y+(w.y-g.y)*T||0}},P=M?M.length():Math.sqrt(Math.pow(w.x-g.x,2)+Math.pow(w.y-g.y,2)),z=C+_+(P-C-x-_)*b,N=E(z/P),j=E((z-_)/P),k=E((z-_*(1-l))/P),R=Math.atan2(N.y-j.y,N.x-j.x)-Math.PI/2;y.beginPath(),y.moveTo(N.x,N.y),y.lineTo(j.x+S*Math.cos(R),j.y+S*Math.sin(R)),y.lineTo(k.x,k.y),y.lineTo(j.x-S*Math.cos(R),j.y-S*Math.sin(R)),y.fillStyle=A,y.fill()}}}),y.restore()}function s(){var u=q(n.linkDirectionalParticles),l=q(n.linkDirectionalParticleSpeed),f=q(n.linkDirectionalParticleOffset),h=q(n.linkDirectionalParticleWidth),c=q(n.linkVisibility),d=q(n.linkDirectionalParticleColor||n.linkColor),p=n.ctx;p.save(),n.graphData.links.filter(c).forEach(function(y){var m=u(y);if(!(!y.hasOwnProperty("__photons")||!y.__photons.length)){var _=y.source,g=y.target;if(!(!_||!g||!_.hasOwnProperty("x")||!g.hasOwnProperty("x"))){var w=l(y),C=Math.abs(f(y)),x=y.__photons||[],b=Math.max(0,h(y)/2)/Math.sqrt(n.globalScale),A=d(y)||"rgba(0,0,0,0.28)";p.fillStyle=A;var S=y.__controlPoints?ni(V,[_.x,_.y].concat(ut(y.__controlPoints),[g.x,g.y])):null,M=0,E=!1;x.forEach(function(P){var z=!!P.__singleHop;if(P.hasOwnProperty("__progressRatio")||(P.__progressRatio=z?w<0?1:0:(M+C)/m),!z&&M++,P.__progressRatio+=w,P.__progressRatio>=1||P.__progressRatio<0)if(!z)P.__progressRatio=P.__progressRatio%1,P.__progressRatio<0&&P.__progressRatio++;else{E=!0;return}var N=P.__progressRatio,j=S?S.get(N):{x:_.x+(g.x-_.x)*N||0,y:_.y+(g.y-_.y)*N||0};n.linkDirectionalParticleCanvasObject?n.linkDirectionalParticleCanvasObject(j.x,j.y,y,p,n.globalScale):(p.beginPath(),p.arc(j.x,j.y,b,0,2*Math.PI,!1),p.fill())}),E&&(y.__photons=y.__photons.filter(function(P){return!P.__singleHop||P.__progressRatio<=1&&P.__progressRatio>=0}))}}}),p.restore()}},emitParticle:function(n,r){return r&&(!r.__photons&&(r.__photons=[]),r.__photons.push({__singleHop:!0})),this}},stateInit:function(){return{forceLayout:mh().force("link",ch()).force("charge",xh()).force("center",dc()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(n,r){r.ctx=n},update:function(n,r){n.engineRunning=!1,n.onUpdate(),n.nodeAutoColorBy!==null&&ii(n.graphData.nodes,q(n.nodeAutoColorBy),n.nodeColor),n.linkAutoColorBy!==null&&ii(n.graphData.links,q(n.linkAutoColorBy),n.linkColor),n.graphData.links.forEach(function(d){d.source=d[n.linkSource],d.target=d[n.linkTarget]}),n.forceLayout.stop().alpha(1).nodes(n.graphData.nodes);var i=n.forceLayout.force("link");i&&i.id(function(d){return d[n.nodeId]}).links(n.graphData.links);var o=n.dagMode&&nd(n.graphData,function(d){return d[n.nodeId]},{nodeFilter:n.dagNodeFilter,onLoopError:n.onDagError||void 0}),a=Math.max.apply(Math,ut(Object.values(o||[]))),s=n.dagLevelDistance||n.graphData.nodes.length/(a||1)*rd*(["radialin","radialout"].indexOf(n.dagMode)!==-1?.7:1);if(["lr","rl","td","bu"].includes(r.dagMode)){var u=["lr","rl"].includes(r.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(d){return delete d[u]})}if(["lr","rl","td","bu"].includes(n.dagMode)){var l=["rl","bu"].includes(n.dagMode),f=function(p){return(o[p[n.nodeId]]-a/2)*s*(l?-1:1)},h=["lr","rl"].includes(n.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(d){return d[h]=f(d)})}n.forceLayout.force("dagRadial",["radialin","radialout"].indexOf(n.dagMode)!==-1?bh(function(d){var p=o[d[n.nodeId]]||-1;return(n.dagMode==="radialin"?a-p:p)*s}).strength(function(d){return n.dagNodeFilter(d)?1:0}):null);for(var c=0;c<n.warmupTicks&&!(n.d3AlphaMin>0&&n.forceLayout.alpha()<n.d3AlphaMin);c++)n.forceLayout.tick();this.resetCountdown(),n.onFinishUpdate()}});function _o(e,n){var r=e instanceof Array?e:[e],i=new n;return i._destructor&&i._destructor(),{linkProp:function(a){return{default:i[a](),onChange:function(u,l){r.forEach(function(f){return l[f][a](u)})},triggerUpdate:!1}},linkMethod:function(a){return function(s){for(var u=arguments.length,l=new Array(u>1?u-1:0),f=1;f<u;f++)l[f-1]=arguments[f];var h=[];return r.forEach(function(c){var d=s[c],p=d[a].apply(d,l);p!==d&&h.push(p)}),h.length?h[0]:this}}}}var id=800,od=4,ad=5,vo=_o("forceGraph",We),sd=_o(["forceGraph","shadowGraph"],We),ud=Object.assign.apply(Object,ut(["nodeColor","nodeAutoColorBy","nodeCanvasObject","nodeCanvasObjectMode","linkColor","linkAutoColorBy","linkLineDash","linkWidth","linkCanvasObject","linkCanvasObjectMode","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalParticles","linkDirectionalParticleSpeed","linkDirectionalParticleOffset","linkDirectionalParticleWidth","linkDirectionalParticleColor","linkDirectionalParticleCanvasObject","dagMode","dagLevelDistance","dagNodeFilter","onDagError","d3AlphaMin","d3AlphaDecay","d3VelocityDecay","warmupTicks","cooldownTicks","cooldownTime","onEngineTick","onEngineStop"].map(function(e){return ge({},e,vo.linkProp(e))})).concat(ut(["nodeRelSize","nodeId","nodeVal","nodeVisibility","linkSource","linkTarget","linkVisibility","linkCurvature"].map(function(e){return ge({},e,sd.linkProp(e))})))),ld=Object.assign.apply(Object,ut(["d3Force","d3ReheatSimulation","emitParticle"].map(function(e){return ge({},e,vo.linkMethod(e))})));function cn(e){if(e.canvas){var n=e.canvas.width,r=e.canvas.height;n===300&&r===150&&(n=r=0);var i=window.devicePixelRatio;n/=i,r/=i,[e.canvas,e.shadowCanvas].forEach(function(a){a.style.width="".concat(e.width,"px"),a.style.height="".concat(e.height,"px"),a.width=e.width*i,a.height=e.height*i,!n&&!r&&a.getContext("2d").scale(i,i)});var o=gt(e.canvas).k;e.zoom.translateBy(e.zoom.__baseElem,(e.width-n)/2/o,(e.height-r)/2/o),e.needsRedraw=!0}}function mo(e){var n=window.devicePixelRatio;e.setTransform(n,0,0,n,0,0)}function ai(e,n,r){e.save(),mo(e),e.clearRect(0,0,n,r),e.restore()}var fd=Gn({props:Ht({width:{default:window.innerWidth,onChange:function(n,r){return cn(r)},triggerUpdate:!1},height:{default:window.innerHeight,onChange:function(n,r){return cn(r)},triggerUpdate:!1},graphData:{default:{nodes:[],links:[]},onChange:function(n,r){[n.nodes,n.links].every(function(o){return(o||[]).every(function(a){return!a.hasOwnProperty("__indexColor")})})&&r.colorTracker.reset(),[{type:"Node",objs:n.nodes},{type:"Link",objs:n.links}].forEach(i),r.forceGraph.graphData(n),r.shadowGraph.graphData(n);function i(o){var a=o.type,s=o.objs;s.filter(function(u){if(!u.hasOwnProperty("__indexColor"))return!0;var l=r.colorTracker.lookup(u.__indexColor);return!l||!l.hasOwnProperty("d")||l.d!==u}).forEach(function(u){u.__indexColor=r.colorTracker.register({type:a,d:u})})}},triggerUpdate:!1},backgroundColor:{onChange:function(n,r){r.canvas&&n&&(r.canvas.style.background=n)},triggerUpdate:!1},nodeLabel:{default:"name",triggerUpdate:!1},nodePointerAreaPaint:{onChange:function(n,r){r.shadowGraph.nodeCanvasObject(n?function(i,o,a){return n(i,i.__indexColor,o,a)}:null),r.flushShadowCanvas&&r.flushShadowCanvas()},triggerUpdate:!1},linkPointerAreaPaint:{onChange:function(n,r){r.shadowGraph.linkCanvasObject(n?function(i,o,a){return n(i,i.__indexColor,o,a)}:null),r.flushShadowCanvas&&r.flushShadowCanvas()},triggerUpdate:!1},linkLabel:{default:"name",triggerUpdate:!1},linkHoverPrecision:{default:4,triggerUpdate:!1},minZoom:{default:.01,onChange:function(n,r){r.zoom.scaleExtent([n,r.zoom.scaleExtent()[1]])},triggerUpdate:!1},maxZoom:{default:1e3,onChange:function(n,r){r.zoom.scaleExtent([r.zoom.scaleExtent()[0],n])},triggerUpdate:!1},enableNodeDrag:{default:!0,triggerUpdate:!1},enableZoomInteraction:{default:!0,triggerUpdate:!1},enablePanInteraction:{default:!0,triggerUpdate:!1},enableZoomPanInteraction:{default:!0,triggerUpdate:!1},enablePointerInteraction:{default:!0,onChange:function(n,r){r.hoverObj=null},triggerUpdate:!1},autoPauseRedraw:{default:!0,triggerUpdate:!1},onNodeDrag:{default:function(){},triggerUpdate:!1},onNodeDragEnd:{default:function(){},triggerUpdate:!1},onNodeClick:{triggerUpdate:!1},onNodeRightClick:{triggerUpdate:!1},onNodeHover:{triggerUpdate:!1},onLinkClick:{triggerUpdate:!1},onLinkRightClick:{triggerUpdate:!1},onLinkHover:{triggerUpdate:!1},onBackgroundClick:{triggerUpdate:!1},onBackgroundRightClick:{triggerUpdate:!1},showPointerCursor:{default:!0,triggerUpdate:!1},onZoom:{triggerUpdate:!1},onZoomEnd:{triggerUpdate:!1},onRenderFramePre:{triggerUpdate:!1},onRenderFramePost:{triggerUpdate:!1}},ud),aliases:{stopAnimation:"pauseAnimation"},methods:Ht({graph2ScreenCoords:function(n,r,i){var o=gt(n.canvas);return{x:r*o.k+o.x,y:i*o.k+o.y}},screen2GraphCoords:function(n,r,i){var o=gt(n.canvas);return{x:(r-o.x)/o.k,y:(i-o.y)/o.k}},centerAt:function(n,r,i,o){if(!n.canvas)return null;if(r!==void 0||i!==void 0){var a=Object.assign({},r!==void 0?{x:r}:{},i!==void 0?{y:i}:{});return o?n.tweenGroup.add(new Pr(s()).to(a,o).easing(Ft.Quadratic.Out).onUpdate(u).onComplete(function(){n.tweenGroup.remove(this)}).start()):u(a),this}return s();function s(){var l=gt(n.canvas);return{x:(n.width/2-l.x)/l.k,y:(n.height/2-l.y)/l.k}}function u(l){var f=l.x,h=l.y;n.zoom.translateTo(n.zoom.__baseElem,f===void 0?s().x:f,h===void 0?s().y:h),n.needsRedraw=!0}},zoom:function(n,r,i){if(!n.canvas)return null;if(r!==void 0)return i?n.tweenGroup.add(new Pr({k:o()}).to({k:r},i).easing(Ft.Quadratic.Out).onUpdate(function(s){var u=s.k;return a(u)}).onComplete(function(){n.tweenGroup.remove(this)}).start()):a(r),this;return o();function o(){return gt(n.canvas).k}function a(s){n.zoom.scaleTo(n.zoom.__baseElem,s),n.needsRedraw=!0}},zoomToFit:function(n){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:10,o=arguments.length,a=new Array(o>3?o-3:0),s=3;s<o;s++)a[s-3]=arguments[s];var u=this.getGraphBbox.apply(this,a);if(u){var l={x:(u.x[0]+u.x[1])/2,y:(u.y[0]+u.y[1])/2},f=Math.max(1e-12,Math.min(1e12,(n.width-i*2)/(u.x[1]-u.x[0]),(n.height-i*2)/(u.y[1]-u.y[0])));this.centerAt(l.x,l.y,r),this.zoom(f,r)}return this},getGraphBbox:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){return!0},i=q(n.nodeVal),o=function(u){return Math.sqrt(Math.max(0,i(u)||1))*n.nodeRelSize},a=n.graphData.nodes.filter(r).map(function(s){return{x:s.x,y:s.y,r:o(s)}});return a.length?{x:[Cr(a,function(s){return s.x-s.r}),Ar(a,function(s){return s.x+s.r})],y:[Cr(a,function(s){return s.y-s.r}),Ar(a,function(s){return s.y+s.r})]}:null},pauseAnimation:function(n){return n.animationFrameRequestId&&(cancelAnimationFrame(n.animationFrameRequestId),n.animationFrameRequestId=null),this},resumeAnimation:function(n){return n.animationFrameRequestId||this._animationCycle(),this},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},ld),stateInit:function(){return{lastSetZoom:1,zoom:ml(),forceGraph:new We,shadowGraph:new We().cooldownTicks(0).nodeColor("__indexColor").linkColor("__indexColor").isShadow(!0),colorTracker:new Gf,tweenGroup:new Li}},init:function(n,r){var i=this;n.innerHTML="";var o=document.createElement("div");o.classList.add("force-graph-container"),o.style.position="relative",n.appendChild(o),r.canvas=document.createElement("canvas"),r.backgroundColor&&(r.canvas.style.background=r.backgroundColor),o.appendChild(r.canvas),r.shadowCanvas=document.createElement("canvas");var a=r.canvas.getContext("2d"),s=r.shadowCanvas.getContext("2d",{willReadFrequently:!0}),u={x:-1e12,y:-1e12},l=function(){var c=null,d=window.devicePixelRatio,p=u.x>0&&u.y>0?s.getImageData(u.x*d,u.y*d,1,1):null;return p&&(c=r.colorTracker.lookup(p.data)),c};st(r.canvas).call(Ps().subject(function(){if(!r.enableNodeDrag)return null;var h=l();return h&&h.type==="Node"?h.d:null}).on("start",function(h){var c=h.subject;c.__initialDragPos={x:c.x,y:c.y,fx:c.fx,fy:c.fy},h.active||(c.fx=c.x,c.fy=c.y),r.canvas.classList.add("grabbable")}).on("drag",function(h){var c=h.subject,d=c.__initialDragPos,p=h,y=gt(r.canvas).k,m={x:d.x+(p.x-d.x)/y-c.x,y:d.y+(p.y-d.y)/y-c.y};["x","y"].forEach(function(_){return c["f".concat(_)]=c[_]=d[_]+(p[_]-d[_])/y}),!(!c.__dragged&&ad>=Math.sqrt(kl(["x","y"].map(function(_){return Math.pow(h[_]-d[_],2)}))))&&(r.forceGraph.d3AlphaTarget(.3).resetCountdown(),r.isPointerDragging=!0,c.__dragged=!0,r.onNodeDrag(c,m))}).on("end",function(h){var c=h.subject,d=c.__initialDragPos,p={x:c.x-d.x,y:c.y-d.y};d.fx===void 0&&(c.fx=void 0),d.fy===void 0&&(c.fy=void 0),delete c.__initialDragPos,r.forceGraph.d3AlphaTarget()&&r.forceGraph.d3AlphaTarget(0).resetCountdown(),r.canvas.classList.remove("grabbable"),r.isPointerDragging=!1,c.__dragged&&(delete c.__dragged,r.onNodeDragEnd(c,p))})),r.zoom(r.zoom.__baseElem=st(r.canvas)),r.zoom.__baseElem.on("dblclick.zoom",null),r.zoom.filter(function(h){return!h.button&&r.enableZoomPanInteraction&&(h.type!=="wheel"||q(r.enableZoomInteraction)(h))&&(h.type==="wheel"||q(r.enablePanInteraction)(h))}).on("zoom",function(h){var c=h.transform;[a,s].forEach(function(d){mo(d),d.translate(c.x,c.y),d.scale(c.k,c.k)}),r.isPointerDragging=!0,r.onZoom&&r.onZoom(Ht(Ht({},c),i.centerAt())),r.needsRedraw=!0}).on("end",function(h){r.isPointerDragging=!1,r.onZoomEnd&&r.onZoomEnd(Ht(Ht({},h.transform),i.centerAt()))}),cn(r),r.forceGraph.onNeedsRedraw(function(){return r.needsRedraw=!0}).onFinishUpdate(function(){gt(r.canvas).k===r.lastSetZoom&&r.graphData.nodes.length&&(r.zoom.scaleTo(r.zoom.__baseElem,r.lastSetZoom=od/Math.cbrt(r.graphData.nodes.length)),r.needsRedraw=!0)}),r.tooltip=new hc(o),["pointermove","pointerdown"].forEach(function(h){return o.addEventListener(h,function(c){h==="pointerdown"&&(r.isPointerPressed=!0,r.pointerDownEvent=c),!r.isPointerDragging&&c.type==="pointermove"&&r.onBackgroundClick&&(c.pressure>0||r.isPointerPressed)&&(c.pointerType==="mouse"||c.movementX===void 0||[c.movementX,c.movementY].some(function(y){return Math.abs(y)>1}))&&(r.isPointerDragging=!0);var d=p(o);u.x=c.pageX-d.left,u.y=c.pageY-d.top;function p(y){var m=y.getBoundingClientRect(),_=window.pageXOffset||document.documentElement.scrollLeft,g=window.pageYOffset||document.documentElement.scrollTop;return{top:m.top+g,left:m.left+_}}},{passive:!0})}),o.addEventListener("pointerup",function(h){if(r.isPointerPressed){if(r.isPointerPressed=!1,r.isPointerDragging){r.isPointerDragging=!1;return}var c=[h,r.pointerDownEvent];requestAnimationFrame(function(){if(h.button===0)if(r.hoverObj){var d=r["on".concat(r.hoverObj.type,"Click")];d&&d.apply(void 0,[r.hoverObj.d].concat(c))}else r.onBackgroundClick&&r.onBackgroundClick.apply(r,c);if(h.button===2)if(r.hoverObj){var p=r["on".concat(r.hoverObj.type,"RightClick")];p&&p.apply(void 0,[r.hoverObj.d].concat(c))}else r.onBackgroundRightClick&&r.onBackgroundRightClick.apply(r,c)})}},{passive:!0}),o.addEventListener("contextmenu",function(h){return!r.onBackgroundRightClick&&!r.onNodeRightClick&&!r.onLinkRightClick?!0:(h.preventDefault(),!1)}),r.forceGraph(a),r.shadowGraph(s);var f=Zl(function(){ai(s,r.width,r.height),r.shadowGraph.linkWidth(function(c){return q(r.linkWidth)(c)+r.linkHoverPrecision});var h=gt(r.canvas);r.shadowGraph.globalScale(h.k).tickFrame()},id);r.flushShadowCanvas=f.flush,(this._animationCycle=function h(){var c=!r.autoPauseRedraw||!!r.needsRedraw||r.forceGraph.isEngineRunning()||r.graphData.links.some(function(C){return C.__photons&&C.__photons.length});if(r.needsRedraw=!1,r.enablePointerInteraction){var d=r.isPointerDragging?null:l();if(d!==r.hoverObj){var p=r.hoverObj,y=p?p.type:null,m=d?d.type:null;if(y&&y!==m){var _=r["on".concat(y,"Hover")];_&&_(null,p.d)}if(m){var g=r["on".concat(m,"Hover")];g&&g(d.d,y===m?p.d:null)}r.tooltip.content(d&&q(r["".concat(d.type.toLowerCase(),"Label")])(d.d)||null),r.canvas.classList[(d&&r["on".concat(m,"Click")]||!d&&r.onBackgroundClick)&&q(r.showPointerCursor)(d==null?void 0:d.d)?"add":"remove"]("clickable"),r.hoverObj=d}c&&f()}if(c){ai(a,r.width,r.height);var w=gt(r.canvas).k;r.onRenderFramePre&&r.onRenderFramePre(a,w),r.forceGraph.globalScale(w).tickFrame(),r.onRenderFramePost&&r.onRenderFramePost(a,w)}r.tweenGroup.update(),r.animationFrameRequestId=requestAnimationFrame(h)})()},update:function(n){}}),hn={exports:{}},dn,si;function cd(){if(si)return dn;si=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return dn=e,dn}var pn,ui;function hd(){if(ui)return pn;ui=1;var e=cd();function n(){}function r(){}return r.resetWarningCache=n,pn=function(){function i(s,u,l,f,h,c){if(c!==e){var d=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw d.name="Invariant Violation",d}}i.isRequired=i;function o(){return i}var a={array:i,bigint:i,bool:i,func:i,number:i,object:i,string:i,symbol:i,any:i,arrayOf:o,element:i,elementType:i,instanceOf:o,node:i,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:r,resetWarningCache:n};return a.PropTypes=a,a},pn}var li;function dd(){return li||(li=1,hn.exports=hd()()),hn.exports}var pd=dd();const v=wo(pd),Je={width:v.number,height:v.number,graphData:v.shape({nodes:v.arrayOf(v.object).isRequired,links:v.arrayOf(v.object).isRequired}),backgroundColor:v.string,nodeRelSize:v.number,nodeId:v.string,nodeLabel:v.oneOfType([v.string,v.func]),nodeVal:v.oneOfType([v.number,v.string,v.func]),nodeVisibility:v.oneOfType([v.bool,v.string,v.func]),nodeColor:v.oneOfType([v.string,v.func]),nodeAutoColorBy:v.oneOfType([v.string,v.func]),onNodeHover:v.func,onNodeClick:v.func,linkSource:v.string,linkTarget:v.string,linkLabel:v.oneOfType([v.string,v.func]),linkVisibility:v.oneOfType([v.bool,v.string,v.func]),linkColor:v.oneOfType([v.string,v.func]),linkAutoColorBy:v.oneOfType([v.string,v.func]),linkWidth:v.oneOfType([v.number,v.string,v.func]),linkCurvature:v.oneOfType([v.number,v.string,v.func]),linkDirectionalArrowLength:v.oneOfType([v.number,v.string,v.func]),linkDirectionalArrowColor:v.oneOfType([v.string,v.func]),linkDirectionalArrowRelPos:v.oneOfType([v.number,v.string,v.func]),linkDirectionalParticles:v.oneOfType([v.number,v.string,v.func]),linkDirectionalParticleSpeed:v.oneOfType([v.number,v.string,v.func]),linkDirectionalParticleOffset:v.oneOfType([v.number,v.string,v.func]),linkDirectionalParticleWidth:v.oneOfType([v.number,v.string,v.func]),linkDirectionalParticleColor:v.oneOfType([v.string,v.func]),onLinkHover:v.func,onLinkClick:v.func,dagMode:v.oneOf(["td","bu","lr","rl","zin","zout","radialin","radialout"]),dagLevelDistance:v.number,dagNodeFilter:v.func,onDagError:v.func,d3AlphaMin:v.number,d3AlphaDecay:v.number,d3VelocityDecay:v.number,warmupTicks:v.number,cooldownTicks:v.number,cooldownTime:v.number,onEngineTick:v.func,onEngineStop:v.func,getGraphBbox:v.func},xo={zoomToFit:v.func,onNodeRightClick:v.func,onNodeDrag:v.func,onNodeDragEnd:v.func,onLinkRightClick:v.func,linkHoverPrecision:v.number,onBackgroundClick:v.func,onBackgroundRightClick:v.func,showPointerCursor:v.oneOfType([v.bool,v.func]),enablePointerInteraction:v.bool,enableNodeDrag:v.bool},Qn={showNavInfo:v.bool,nodeOpacity:v.number,nodeResolution:v.number,nodeThreeObject:v.oneOfType([v.object,v.string,v.func]),nodeThreeObjectExtend:v.oneOfType([v.bool,v.string,v.func]),nodePositionUpdate:v.func,linkOpacity:v.number,linkResolution:v.number,linkCurveRotation:v.oneOfType([v.number,v.string,v.func]),linkMaterial:v.oneOfType([v.object,v.string,v.func]),linkThreeObject:v.oneOfType([v.object,v.string,v.func]),linkThreeObjectExtend:v.oneOfType([v.bool,v.string,v.func]),linkPositionUpdate:v.func,linkDirectionalArrowResolution:v.number,linkDirectionalParticleResolution:v.number,linkDirectionalParticleThreeObject:v.oneOfType([v.object,v.string,v.func]),forceEngine:v.oneOf(["d3","ngraph"]),ngraphPhysics:v.object,numDimensions:v.oneOf([1,2,3])},gd=Object.assign({},Je,xo,{linkLineDash:v.oneOfType([v.arrayOf(v.number),v.string,v.func]),nodeCanvasObjectMode:v.oneOfType([v.string,v.func]),nodeCanvasObject:v.func,nodePointerAreaPaint:v.func,linkCanvasObjectMode:v.oneOfType([v.string,v.func]),linkCanvasObject:v.func,linkPointerAreaPaint:v.func,linkDirectionalParticleCanvasObject:v.func,autoPauseRedraw:v.bool,minZoom:v.number,maxZoom:v.number,enableZoomInteraction:v.oneOfType([v.bool,v.func]),enablePanInteraction:v.oneOfType([v.bool,v.func]),onZoom:v.func,onZoomEnd:v.func,onRenderFramePre:v.func,onRenderFramePost:v.func});Object.assign({},Je,xo,Qn,{enableNavigationControls:v.bool,controlType:v.oneOf(["trackball","orbit","fly"]),rendererConfig:v.object,extraRenderers:v.arrayOf(v.shape({render:v.func.isRequired}))});Object.assign({},Je,Qn,{nodeDesc:v.oneOfType([v.string,v.func]),linkDesc:v.oneOfType([v.string,v.func])});Object.assign({},Je,Qn,{markerAttrs:v.object,yOffset:v.number,glScale:v.number});const Jn=Lo(fd,{methodNames:["emitParticle","d3Force","d3ReheatSimulation","stopAnimation","pauseAnimation","resumeAnimation","centerAt","zoom","zoomToFit","getGraphBbox","screen2GraphCoords","graph2ScreenCoords"]});Jn.displayName="ForceGraph2D";Jn.propTypes=gd;const yd="#b85c34",_d="#8a7a60";function xd({skills:e,edges:n,selectedId:r,onSelect:i}){const o=Q.useRef(null),[a,s]=Q.useState({width:640,height:420});Q.useEffect(()=>{const l=()=>{const f=o.current;if(!f)return;const h=f.getBoundingClientRect();h.width>0&&h.height>0&&s({width:h.width,height:h.height})};return l(),window.addEventListener("resize",l),()=>window.removeEventListener("resize",l)},[]);const u=Q.useMemo(()=>({nodes:e.map(l=>({id:l.id,name:l.name??l.id})),links:n.map(l=>({source:l.from,target:l.to}))}),[e,n]);return tr.jsx("div",{ref:o,className:"w-full h-full",children:tr.jsx(Jn,{graphData:u,width:a.width,height:a.height,nodeId:"id",nodeLabel:"name",nodeColor:l=>l.id===r?yd:_d,linkDirectionalArrowLength:4,linkDirectionalArrowRelPos:1,onNodeClick:l=>i(String(l.id))})})}export{xd as SkillReferenceGraph};
@@ -1,3 +1,3 @@
1
- import{ay as l,aQ as G,aL as J,aS as U,aN as f,aj as t,l as R,u as L,q as X,aK as D}from"./index-Db_SK9rW.js";import{M as Y}from"./MarkdownEditor-DmBxrhdn.js";import{S as Z}from"./SaveBar-CT5u6ZCJ.js";import{S as V}from"./ScopeSwitcher-BUYDpz2v.js";import{T as _}from"./Toggle-BKLCBu9A.js";import{P as B}from"./ProvenanceBadge-Dutz_4OY.js";import{l as ee}from"./listSkills-QORduPIk.js";import{S as te,V as F}from"./Library-CN1h5rAE.js";import{p as se,r as ae,s as ne}from"./skillFrontmatter-Dif5JIg7.js";import"./monaco-editor-BW5C4Iv1.js";function re(d,m){return{user:{skills:`${d}/.claude/skills`,commands:`${d}/.claude/commands`},project:m?{skills:`${m}/.claude/skills`,commands:`${m}/.claude/commands`}:null}}function le(){const d=G(),m=J(),h=(m==null?void 0:m.cwd)??null,x=U(e=>e.navFace),j=l.useRef(!1),T=l.useRef(x),[u,N]=l.useState(()=>x==="project"&&h?"project":"user"),[v,k]=l.useState([]),[r,C]=l.useState(null),[w,E]=l.useState("installed"),[$,I]=l.useState(""),b=l.useMemo(()=>d?re(d,h):null,[d,h]);l.useEffect(()=>{if(T.current!==x){if(T.current=x,j.current){j.current=!1;return}N(x==="project"&&h?"project":"user")}},[x,h]),l.useEffect(()=>{if(!b)return;let e=!1;const i=u==="user"?b.user:b.project;if(!i){k([]);return}return(async()=>{var c;const n=[],s=await ee(i.skills);for(const a of s)n.push({kind:"skills",scope:u,name:a.name,path:a.path,dir:a.dir,disabled:ae(a.text),description:se(a.text).description??void 0});const o=await window.api.config.listDir(i.commands,{filesOnly:!0});for(const a of o.entries)a.name.endsWith(".md")&&n.push({kind:"commands",scope:u,name:a.name.replace(/\.md$/,""),path:a.path,dir:null,disabled:!1});e||(n.sort((a,A)=>a.kind===A.kind?a.name.localeCompare(A.name):a.kind==="skills"?-1:1),k(n),n.find(a=>a.path===r)||C(((c=n[0])==null?void 0:c.path)??null))})(),()=>{e=!0}},[u,b]);const S=f(e=>e.files),P=f(e=>e.loadText),q=f(e=>e.setDraft),H=f(e=>e.saveText),K=f(e=>e.revert),O=f(e=>e.watchFile),M=f(e=>e.unwatchFile);async function Q(e,i){const n=await window.api.config.readText(e.path);if(!n.exists)return;const s=ne(n.text,i);if(s===n.text)return;const o=await window.api.config.writeText(e.path,s);if(!o.ok){D.error(o.error??"failed to update skill");return}k(c=>c.map(a=>a.path===e.path?{...a,disabled:i}:a)),S[e.path]&&P(e.path)}async function W(e){if(!e.dir||!window.confirm(`Remove skill "${e.name}"?
1
+ import{az as l,aS as J,aM as K,aU as Q,aO as f,ak as t,m as R,v as L,r as X,aL as D}from"./index-Yf8e7VCB.js";import{M as Y}from"./MarkdownEditor-BPJyrevq.js";import{S as Z}from"./SaveBar-CSbNSl2W.js";import{S as V}from"./ScopeSwitcher-BJof-GWH.js";import{T as _}from"./Toggle-DAslvnnv.js";import{P as B}from"./ProvenanceBadge-ptlItdCK.js";import{l as ee}from"./listSkills-QORduPIk.js";import{S as te,V as F}from"./Library-DTxpOjx8.js";import{p as se,r as ae,s as ne}from"./skillFrontmatter-Dif5JIg7.js";import"./monaco-editor-BW5C4Iv1.js";function re(d,m){return{user:{skills:`${d}/.claude/skills`,commands:`${d}/.claude/commands`},project:m?{skills:`${m}/.claude/skills`,commands:`${m}/.claude/commands`}:null}}function le(){const d=J(),m=K(),h=(m==null?void 0:m.cwd)??null,x=Q(e=>e.navFace),j=l.useRef(!1),T=l.useRef(x),[p,N]=l.useState(()=>x==="project"&&h?"project":"user"),[v,k]=l.useState([]),[r,C]=l.useState(null),[w,E]=l.useState("installed"),[$,I]=l.useState(""),b=l.useMemo(()=>d?re(d,h):null,[d,h]);l.useEffect(()=>{if(T.current!==x){if(T.current=x,j.current){j.current=!1;return}N(x==="project"&&h?"project":"user")}},[x,h]),l.useEffect(()=>{if(!b)return;let e=!1;const i=p==="user"?b.user:b.project;if(!i){k([]);return}return(async()=>{var c;const n=[],s=await ee(i.skills);for(const a of s)n.push({kind:"skills",scope:p,name:a.name,path:a.path,dir:a.dir,disabled:ae(a.text),description:se(a.text).description??void 0});const o=await window.api.config.listDir(i.commands,{filesOnly:!0});for(const a of o.entries)a.name.endsWith(".md")&&n.push({kind:"commands",scope:p,name:a.name.replace(/\.md$/,""),path:a.path,dir:null,disabled:!1});e||(n.sort((a,A)=>a.kind===A.kind?a.name.localeCompare(A.name):a.kind==="skills"?-1:1),k(n),n.find(a=>a.path===r)||C(((c=n[0])==null?void 0:c.path)??null))})(),()=>{e=!0}},[p,b]);const S=f(e=>e.files),P=f(e=>e.loadText),O=f(e=>e.setDraft),z=f(e=>e.saveText),H=f(e=>e.revert),U=f(e=>e.watchFile),M=f(e=>e.unwatchFile);async function W(e,i){const n=await window.api.config.readText(e.path);if(!n.exists)return;const s=ne(n.text,i);if(s===n.text)return;const o=await window.api.config.writeText(e.path,s);if(!o.ok){D.error(o.error??"failed to update skill");return}k(c=>c.map(a=>a.path===e.path?{...a,disabled:i}:a)),S[e.path]&&P(e.path)}async function q(e){if(!e.dir||!window.confirm(`Remove skill "${e.name}"?
2
2
 
3
- Its folder moves to the trash (recoverable); reinstall any time from the Library.`))return;const i=await window.api.files.delete(e.dir);if(!i.ok){D.error(i.error??"failed to remove skill");return}D.info(`Removed "${e.name}" — moved to trash`),M(e.path),k(n=>n.filter(s=>s.path!==e.path)),C(n=>{var o;return n!==e.path?n:((o=v.filter(c=>c.path!==e.path)[0])==null?void 0:o.path)??null})}l.useEffect(()=>{if(r)return S[r]||P(r),O(r),()=>M(r)},[r]);const[z,y]=l.useState(null);if(!d)return t.jsx(R,{title:"loading…"});if(w==="library")return t.jsx(L,{toolbar:t.jsx(F,{active:w,onChange:E,installedLabel:"Installed",libraryLabel:"Library"}),children:t.jsx(te,{})});if(u==="project"&&!h)return t.jsx(L,{toolbar:t.jsxs(t.Fragment,{children:[t.jsx(F,{active:w,onChange:E}),t.jsx("span",{className:"mx-2 text-fg-faint",children:"·"}),t.jsx(V,{scopes:["user","project"],active:u,onChange:e=>{j.current=!0,N(e)}})]}),children:t.jsx(R,{title:"no active project",hint:"open a tab in a project directory to view project skills & commands"})});const p=v.find(e=>e.path===r)??null,g=r?S[r]:null;return t.jsx(L,{toolbar:t.jsxs(t.Fragment,{children:[t.jsx(F,{active:w,onChange:E}),t.jsx("span",{className:"mx-2 text-fg-faint",children:"·"}),t.jsx(V,{scopes:["user","project"],active:u,onChange:e=>{j.current=!0,N(e)}}),t.jsxs("span",{className:"ml-3 text-fg-faint",children:[v.length," ",v.length===1?"item":"items"]}),t.jsx("div",{className:"flex-1"}),p&&t.jsx(B,{scope:p.scope,input:{type:p.kind==="commands"?"command":"skill",name:p.name}}),t.jsx("span",{className:"ml-2 text-fg-faint truncate",children:(p==null?void 0:p.path)??""})]}),footer:r&&g?t.jsx(Z,{dirty:g.dirty,busy:g.busy,parseError:z,lastSavedAt:g.lastSavedAt,onSave:async()=>{y(null);const e=await H(r);e.ok||y(e.error??"save failed")},onRevert:()=>{y(null),K(r)}}):null,children:t.jsx(X,{sidebar:t.jsxs("div",{className:"py-1",children:[t.jsx("div",{className:"px-2 pb-1",children:t.jsx("input",{value:$,onChange:e=>I(e.target.value),placeholder:"filter…",className:"w-full bg-bg border border-line rounded px-2 py-0.5 text-xs text-fg"})}),["skills","commands"].map(e=>{const i=$.toLowerCase(),n=v.filter(s=>s.kind===e&&(!i||s.name.toLowerCase().includes(i)));return t.jsxs("div",{className:"mb-3",children:[t.jsx("div",{className:"px-3 py-1 text-xs uppercase tracking-wider text-fg-faint",children:e==="skills"?"Skills":"Slash Commands"}),n.length===0?t.jsx("div",{className:"px-3 py-1 text-xs text-fg-faint italic",children:"none"}):n.map(s=>{var c;const o=s.kind==="skills";return t.jsxs("div",{className:`w-full px-3 py-1 text-xs flex items-center justify-between gap-2 ${r===s.path?"bg-bg-hi text-fg":"text-fg-dim hover:text-fg hover:bg-bg-hi"}`,children:[t.jsxs("button",{onClick:()=>C(s.path),className:"flex-1 min-w-0 text-left",children:[t.jsxs("div",{className:`truncate ${s.disabled?"line-through opacity-50":""}`,title:s.disabled?"Disabled — Claude will not auto-invoke this skill":void 0,children:[s.kind==="commands"?"/":"",s.name]}),s.description&&t.jsx("div",{className:"truncate text-fg-faint",children:s.description})]}),t.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[t.jsx(B,{interactive:!1,scope:s.scope,input:{type:s.kind==="commands"?"command":"skill",name:s.name}}),((c=S[s.path])==null?void 0:c.dirty)&&t.jsx("span",{className:"w-1 h-1 rounded-full bg-accent"}),o&&t.jsx(_,{checked:!s.disabled,onChange:a=>void Q(s,!a)}),s.kind==="skills"&&t.jsx("button",{onClick:a=>{a.stopPropagation(),W(s)},title:"Remove skill — moves the folder to trash; reinstall from the Library","aria-label":`Remove ${s.name}`,className:"text-fg-faint hover:text-red-400 leading-none px-0.5",children:"✕"})]})]},s.path)})]},e)})]}),detail:r&&g?t.jsx("div",{className:"h-full",children:t.jsx(Y,{path:r,value:g.draftRaw,onChange:e=>{y(null),q(r,e)}})}):t.jsx(R,{title:v.length===0?"no skills or commands":"select an item"})})})}const ve=l.memo(le);export{ve as Skills};
3
+ Its folder moves to the trash (recoverable); reinstall any time from the Library.`))return;const i=await window.api.files.delete(e.dir);if(!i.ok){D.error(i.error??"failed to remove skill");return}D.info(`Removed "${e.name}" — moved to trash`),M(e.path),k(n=>n.filter(s=>s.path!==e.path)),C(n=>{var o;return n!==e.path?n:((o=v.filter(c=>c.path!==e.path)[0])==null?void 0:o.path)??null})}l.useEffect(()=>{if(r)return S[r]||P(r),U(r),()=>M(r)},[r]);const[G,y]=l.useState(null);if(!d)return t.jsx(R,{title:"loading…"});if(w==="library")return t.jsx(L,{toolbar:t.jsx(F,{active:w,onChange:E,installedLabel:"Installed",libraryLabel:"Library"}),children:t.jsx(te,{})});if(p==="project"&&!h)return t.jsx(L,{toolbar:t.jsxs(t.Fragment,{children:[t.jsx(F,{active:w,onChange:E}),t.jsx("span",{className:"mx-2 text-fg-faint",children:"·"}),t.jsx(V,{scopes:["user","project"],active:p,onChange:e=>{j.current=!0,N(e)}})]}),children:t.jsx(R,{title:"no active project",hint:"open a tab in a project directory to view project skills & commands"})});const u=v.find(e=>e.path===r)??null,g=r?S[r]:null;return t.jsx(L,{toolbar:t.jsxs(t.Fragment,{children:[t.jsx(F,{active:w,onChange:E}),t.jsx("span",{className:"mx-2 text-fg-faint",children:"·"}),t.jsx(V,{scopes:["user","project"],active:p,onChange:e=>{j.current=!0,N(e)}}),t.jsxs("span",{className:"ml-3 text-fg-faint",children:[v.length," ",v.length===1?"item":"items"]}),t.jsx("div",{className:"flex-1"}),u&&t.jsx(B,{scope:u.scope,input:{type:u.kind==="commands"?"command":"skill",name:u.name}}),t.jsx("span",{className:"ml-2 text-fg-faint truncate",children:(u==null?void 0:u.path)??""})]}),footer:r&&g?t.jsx(Z,{dirty:g.dirty,busy:g.busy,parseError:G,lastSavedAt:g.lastSavedAt,onSave:async()=>{y(null);const e=await z(r);e.ok||y(e.error??"save failed")},onRevert:()=>{y(null),H(r)}}):null,children:t.jsx(X,{sidebar:t.jsxs("div",{className:"py-1",children:[t.jsx("div",{className:"px-2 pb-1",children:t.jsx("input",{value:$,onChange:e=>I(e.target.value),placeholder:"filter…",className:"w-full bg-bg border border-line rounded px-2 py-0.5 text-xs text-fg"})}),["skills","commands"].map(e=>{const i=$.toLowerCase(),n=v.filter(s=>s.kind===e&&(!i||s.name.toLowerCase().includes(i)));return t.jsxs("div",{className:"mb-3",children:[t.jsx("div",{className:"px-3 py-1 text-xs uppercase tracking-wider text-fg-faint",children:e==="skills"?"Skills":"Slash Commands"}),n.length===0?t.jsx("div",{className:"px-3 py-1 text-xs text-fg-faint italic",children:"none"}):n.map(s=>{var c;const o=s.kind==="skills";return t.jsxs("div",{className:`w-full px-3 py-1 text-xs flex items-center justify-between gap-2 ${r===s.path?"bg-bg-hi text-fg":"text-fg-dim hover:text-fg hover:bg-bg-hi"}`,children:[t.jsxs("button",{onClick:()=>C(s.path),className:"flex-1 min-w-0 text-left",children:[t.jsxs("div",{className:`truncate ${s.disabled?"line-through opacity-50":""}`,title:s.disabled?"Disabled — Claude will not auto-invoke this skill":void 0,children:[s.kind==="commands"?"/":"",s.name]}),s.description&&t.jsx("div",{className:"truncate text-fg-faint",children:s.description})]}),t.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[t.jsx(B,{interactive:!1,scope:s.scope,input:{type:s.kind==="commands"?"command":"skill",name:s.name}}),((c=S[s.path])==null?void 0:c.dirty)&&t.jsx("span",{className:"w-1 h-1 rounded-full bg-accent"}),o&&t.jsx(_,{checked:!s.disabled,onChange:a=>void W(s,!a)}),s.kind==="skills"&&t.jsx("button",{onClick:a=>{a.stopPropagation(),q(s)},title:"Remove skill — moves the folder to trash; reinstall from the Library","aria-label":`Remove ${s.name}`,className:"text-fg-faint hover:text-red-400 leading-none px-0.5",children:"✕"})]})]},s.path)})]},e)})]}),detail:r&&g?t.jsx("div",{className:"h-full",children:t.jsx(Y,{path:r,value:g.draftRaw,onChange:e=>{y(null),O(r,e)}})}):t.jsx(R,{title:v.length===0?"no skills or commands":"select an item"})})})}const ve=l.memo(le);export{ve as Skills};
@@ -1 +1 @@
1
- import{ay as l,aK as $,aj as e,aP as B,ah as I,ai as V,aH as _,a1 as z,e as H,g as L,r as M,M as D,j as K,a5 as Q,aQ as q,C as G,aN as h,l as P,u as T}from"./index-Db_SK9rW.js";import{S as J}from"./SaveBar-CT5u6ZCJ.js";import{f as W,V as A}from"./Library-CN1h5rAE.js";import"./monaco-editor-BW5C4Iv1.js";function F(t){return t.split("/").pop()||t}function X({activePath:t,selectedPath:o,onSelect:f}){const[n,i]=l.useState([]),m=l.useRef(0),r=l.useRef(f);if(r.current=f,l.useEffect(()=>{if(m.current+=1,r.current(null),!t){i([]);return}const a=m.current;let x=!1;return window.api.config.parseImports(t).then(c=>{x||m.current!==a||(c.ok?i(c.imports):(i([]),$.error(c.error||"failed to parse @-imports")))}),()=>{x=!0}},[t]),n.length===0||!t)return null;const b=o===t||o===null;return e.jsxs("div",{className:"w-64 shrink-0 border-r border-line bg-bg-elev overflow-auto","data-testid":"referenced-files-rail",children:[e.jsxs("div",{className:"px-3 py-2 text-[10px] uppercase tracking-wide text-fg-faint border-b border-line",children:["Documents · ",n.length+1]}),e.jsxs("button",{type:"button",onClick:()=>f(null),"aria-current":b,"data-testid":"referenced-file-root",className:`w-full text-left px-3 py-2 border-b border-line ${b?"bg-bg-hi text-fg":"text-fg-dim hover:bg-bg"}`,children:[e.jsx("div",{className:"text-[11.5px] font-medium truncate",children:F(t)}),e.jsx("div",{className:"text-[10px] text-fg-faint truncate",title:t,children:"this system prompt"})]}),n.map(a=>{const x=!a.ok||!a.exists,c=o===a.path;return e.jsxs("button",{type:"button",onClick:()=>f(a),"aria-current":c,"data-testid":"referenced-file-row",className:`w-full text-left px-3 py-2 border-b border-line last:border-b-0 ${c?"bg-bg-hi text-fg":"text-fg-dim hover:bg-bg"}`,children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"text-[11.5px] font-medium truncate flex-1",children:F(a.path)}),x&&e.jsx("span",{className:"shrink-0 px-1.5 py-0.5 rounded text-[9px] uppercase tracking-wide text-amber-400/90 border border-amber-400/30","data-testid":"referenced-file-missing",children:"missing"})]}),e.jsx("div",{className:"text-[10px] text-fg-faint truncate",title:a.path,children:a.path}),e.jsxs("div",{className:"text-[10px] text-fg-faint",children:[a.sizeBytes.toLocaleString()," bytes · ~",a.tokenEstimate.toLocaleString()," tokens"]})]},a.path)})]})}function U(t){return t.split("/").filter(Boolean).pop()||t}function Y({path:t,value:o,onChange:f,onSave:n,readOnly:i,defaultMode:m,headerRight:r,hideStatusBar:b}){const a=B(),x=I(t),c=V(t),S=_(t),[E,w]=l.useState(()=>i&&c?"preview":m??z(t)),[g,C]=l.useState(!0),[p,R]=l.useState(null),N=l.useRef(null),d=l.useRef(null),v=l.useCallback(s=>{N.current=s},[]),y=l.useCallback(()=>N.current,[]),k=i?c?["preview","edit"]:[]:S?["edit","preview","split"]:c?["edit","preview"]:[],u=c?E:"edit",j=e.jsx(H,{path:t,name:U(t),value:o,onChange:f,onSave:()=>n==null?void 0:n(),onReady:v,onCursor:R,readOnly:i});return e.jsxs("div",{className:"flex flex-col h-full min-h-0","data-testid":"document-editor-pane",children:[e.jsxs("div",{className:"flex items-center gap-1 px-2 h-7 shrink-0 border-b border-line bg-bg-elev",children:[e.jsx("span",{className:"text-[11px] font-medium text-fg truncate",children:U(t)}),i&&e.jsx("span",{className:"ml-1 px-1.5 py-0.5 rounded text-[9px] uppercase tracking-wide text-fg-faint border border-line",children:"read-only"}),e.jsx("div",{className:"flex-1"}),r,x&&(u==="preview"||u==="split")&&e.jsx("button",{onClick:()=>C(s=>!s),"data-testid":"document-outline-toggle",className:`px-2 py-0.5 text-[10px] border border-line rounded ${g?"bg-bg-hi text-fg":"text-fg-faint hover:text-fg"}`,title:"Toggle document outline",children:"Outline"}),k.length>0&&e.jsx("div",{className:"flex items-center ml-1 rounded border border-line overflow-hidden","data-testid":"document-mode-toggle",children:k.map(s=>e.jsx("button",{onClick:()=>w(s),className:`px-2 py-0.5 text-[10px] capitalize transition-colors ${u===s?"bg-bg-hi text-fg":"text-fg-faint hover:text-fg"}`,children:s},s))})]}),e.jsx("div",{className:"flex-1 min-h-0",children:u==="split"&&x?e.jsxs("div",{className:"flex h-full",children:[g&&e.jsx(L,{text:o,scrollRef:d}),e.jsxs("div",{className:"flex-1 min-w-0 flex flex-col border-r border-line",children:[!i&&e.jsx(M,{getEditor:y}),e.jsx("div",{className:"flex-1 min-h-0",children:j})]}),e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(D,{ref:d,text:o,flush:!0,wideMeasure:a.wideMeasure})})]}):u==="preview"&&x?e.jsxs("div",{className:"flex h-full",children:[g&&e.jsx(L,{text:o,scrollRef:d}),e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(D,{ref:d,text:o,wideMeasure:a.wideMeasure})})]}):x?e.jsxs("div",{className:"flex flex-col h-full",children:[!i&&e.jsx(M,{getEditor:y}),e.jsx("div",{className:"flex-1 min-h-0",children:j})]}):j}),!b&&e.jsx(K,{text:o,cursor:p,language:Q(t)||void 0})]})}const O={title:"User system prompt",body:"This is the real ~/.claude/CLAUDE.md on disk — the instructions the claude CLI loads into every session it starts on this machine, in every project. A project's own CLAUDE.md / CLAUDE.local.md are read from that project's directory when a session launches there; they are not edited here."};function Z(t){return Math.round(t.length/4)}function ee(){const t=q(),[o,f]=l.useState("installed"),n=l.useMemo(()=>t?G.resolve("user",t,null):null,[t]),[i,m]=l.useState(null),r=(i==null?void 0:i.path)??n,b=!!i&&(!i.ok||!i.exists),a=h(s=>s.files),x=h(s=>s.loadText),c=h(s=>s.setDraft),S=h(s=>s.saveText),E=h(s=>s.revert),w=h(s=>s.watchFile),g=h(s=>s.unwatchFile);l.useEffect(()=>{if(n)return x(n,!0),w(n),()=>{g(n)}},[n]),l.useEffect(()=>{if(!(!r||r===n))return x(r,!0),w(r),()=>{g(r)}},[r,n]);const[C,p]=l.useState(null),R=l.useCallback(s=>{p(null),m(s)},[]);if(!t)return e.jsx(P,{title:"loading…"});if(o==="library")return e.jsx(T,{toolbar:e.jsx(A,{active:o,onChange:f,installedLabel:"Editor",libraryLabel:"Presets"}),children:e.jsx(W,{})});const N=n?a[n]:null,d=r?a[r]:null,v=(d==null?void 0:d.draftRaw)??"",y=Z(v),k=v.length,u=b,j=async()=>{if(!r)return;p(null);const s=await S(r);s.ok||p(s.error??"save failed")};return e.jsx(T,{toolbar:e.jsxs(e.Fragment,{children:[e.jsx(A,{active:o,onChange:f,installedLabel:"Editor",libraryLabel:"Presets"}),e.jsx("span",{className:"mx-2 text-fg-faint",children:"·"}),e.jsx("span",{className:"text-fg-dim",children:"User scope"}),e.jsx("span",{className:"ml-3 text-fg-faint truncate",children:r??"—"}),e.jsx("div",{className:"flex-1"}),e.jsxs("span",{className:"text-fg-faint",children:[k.toLocaleString()," chars · ~",y.toLocaleString()," tokens"]})]}),footer:r&&d&&!u?e.jsx(J,{dirty:d.dirty,busy:d.busy,parseError:C,lastSavedAt:d.lastSavedAt,leading:d.exists?i?e.jsx("span",{children:"editing an imported file"}):null:e.jsx("span",{children:"file will be created on save"}),onSave:j,onRevert:()=>{p(null),E(r)}}):null,children:n&&N?e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsxs("div",{"data-testid":"system-prompt-scope-note",className:"shrink-0 border-b border-line bg-bg-elev px-3 py-2 text-[11.5px] leading-snug",children:[e.jsx("span",{className:"font-semibold text-fg",children:O.title}),e.jsx("span",{className:"mx-1.5 text-fg-faint",children:"·"}),e.jsx("span",{className:"text-fg-dim",children:O.body}),e.jsx("span",{className:"ml-1.5 font-mono text-fg-faint",children:n})]}),e.jsxs("div",{className:"flex-1 min-h-0 flex",children:[e.jsx(X,{activePath:n,selectedPath:r,onSelect:R}),e.jsxs("div",{className:"flex-1 min-w-0 flex flex-col",children:[u&&e.jsx("div",{"data-testid":"system-prompt-missing-note",className:"shrink-0 border-b border-line bg-bg-elev px-3 py-1.5 text-[11px] text-amber-400/90",children:"This import does not resolve to a readable file — the CLI will skip it."}),r&&e.jsx("div",{className:"flex-1 min-h-0",children:e.jsx(Y,{path:r,value:v,readOnly:u,defaultMode:"split",onChange:s=>{p(null),c(r,s)},onSave:()=>{j()}},r)})]})]})]}):e.jsx(P,{title:"resolving…"})})}const le=l.memo(ee);export{le as SystemPrompt};
1
+ import{az as l,aL as I,ak as e,aR as $,ai as B,aj as V,aI as _,a2 as z,f as H,h as L,s as M,M as D,k as q,a6 as G,aS as J,C as K,aO as h,m as T,v as P}from"./index-Yf8e7VCB.js";import{S as Q}from"./SaveBar-CSbNSl2W.js";import{f as W,V as A}from"./Library-DTxpOjx8.js";import"./monaco-editor-BW5C4Iv1.js";function F(t){return t.split("/").pop()||t}function X({activePath:t,selectedPath:o,onSelect:f}){const[n,i]=l.useState([]),m=l.useRef(0),r=l.useRef(f);if(r.current=f,l.useEffect(()=>{if(m.current+=1,r.current(null),!t){i([]);return}const a=m.current;let x=!1;return window.api.config.parseImports(t).then(c=>{x||m.current!==a||(c.ok?i(c.imports):(i([]),I.error(c.error||"failed to parse @-imports")))}),()=>{x=!0}},[t]),n.length===0||!t)return null;const b=o===t||o===null;return e.jsxs("div",{className:"w-64 shrink-0 border-r border-line bg-bg-elev overflow-auto","data-testid":"referenced-files-rail",children:[e.jsxs("div",{className:"px-3 py-2 text-[10px] uppercase tracking-wide text-fg-faint border-b border-line",children:["Documents · ",n.length+1]}),e.jsxs("button",{type:"button",onClick:()=>f(null),"aria-current":b,"data-testid":"referenced-file-root",className:`w-full text-left px-3 py-2 border-b border-line ${b?"bg-bg-hi text-fg":"text-fg-dim hover:bg-bg"}`,children:[e.jsx("div",{className:"text-[11.5px] font-medium truncate",children:F(t)}),e.jsx("div",{className:"text-[10px] text-fg-faint truncate",title:t,children:"this system prompt"})]}),n.map(a=>{const x=!a.ok||!a.exists,c=o===a.path;return e.jsxs("button",{type:"button",onClick:()=>f(a),"aria-current":c,"data-testid":"referenced-file-row",className:`w-full text-left px-3 py-2 border-b border-line last:border-b-0 ${c?"bg-bg-hi text-fg":"text-fg-dim hover:bg-bg"}`,children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"text-[11.5px] font-medium truncate flex-1",children:F(a.path)}),x&&e.jsx("span",{className:"shrink-0 px-1.5 py-0.5 rounded text-[9px] uppercase tracking-wide text-amber-400/90 border border-amber-400/30","data-testid":"referenced-file-missing",children:"missing"})]}),e.jsx("div",{className:"text-[10px] text-fg-faint truncate",title:a.path,children:a.path}),e.jsxs("div",{className:"text-[10px] text-fg-faint",children:[a.sizeBytes.toLocaleString()," bytes · ~",a.tokenEstimate.toLocaleString()," tokens"]})]},a.path)})]})}function U(t){return t.split("/").filter(Boolean).pop()||t}function Y({path:t,value:o,onChange:f,onSave:n,readOnly:i,defaultMode:m,headerRight:r,hideStatusBar:b}){const a=$(),x=B(t),c=V(t),S=_(t),[E,w]=l.useState(()=>i&&c?"preview":m??z(t)),[g,C]=l.useState(!0),[p,R]=l.useState(null),N=l.useRef(null),d=l.useRef(null),v=l.useCallback(s=>{N.current=s},[]),y=l.useCallback(()=>N.current,[]),k=i?c?["preview","edit"]:[]:S?["edit","preview","split"]:c?["edit","preview"]:[],u=c?E:"edit",j=e.jsx(H,{path:t,name:U(t),value:o,onChange:f,onSave:()=>n==null?void 0:n(),onReady:v,onCursor:R,readOnly:i});return e.jsxs("div",{className:"flex flex-col h-full min-h-0","data-testid":"document-editor-pane",children:[e.jsxs("div",{className:"flex items-center gap-1 px-2 h-7 shrink-0 border-b border-line bg-bg-elev",children:[e.jsx("span",{className:"text-[11px] font-medium text-fg truncate",children:U(t)}),i&&e.jsx("span",{className:"ml-1 px-1.5 py-0.5 rounded text-[9px] uppercase tracking-wide text-fg-faint border border-line",children:"read-only"}),e.jsx("div",{className:"flex-1"}),r,x&&(u==="preview"||u==="split")&&e.jsx("button",{onClick:()=>C(s=>!s),"data-testid":"document-outline-toggle",className:`px-2 py-0.5 text-[10px] border border-line rounded ${g?"bg-bg-hi text-fg":"text-fg-faint hover:text-fg"}`,title:"Toggle document outline",children:"Outline"}),k.length>0&&e.jsx("div",{className:"flex items-center ml-1 rounded border border-line overflow-hidden","data-testid":"document-mode-toggle",children:k.map(s=>e.jsx("button",{onClick:()=>w(s),className:`px-2 py-0.5 text-[10px] capitalize transition-colors ${u===s?"bg-bg-hi text-fg":"text-fg-faint hover:text-fg"}`,children:s},s))})]}),e.jsx("div",{className:"flex-1 min-h-0",children:u==="split"&&x?e.jsxs("div",{className:"flex h-full",children:[g&&e.jsx(L,{text:o,scrollRef:d}),e.jsxs("div",{className:"flex-1 min-w-0 flex flex-col border-r border-line",children:[!i&&e.jsx(M,{getEditor:y}),e.jsx("div",{className:"flex-1 min-h-0",children:j})]}),e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(D,{ref:d,text:o,flush:!0,wideMeasure:a.wideMeasure})})]}):u==="preview"&&x?e.jsxs("div",{className:"flex h-full",children:[g&&e.jsx(L,{text:o,scrollRef:d}),e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(D,{ref:d,text:o,wideMeasure:a.wideMeasure})})]}):x?e.jsxs("div",{className:"flex flex-col h-full",children:[!i&&e.jsx(M,{getEditor:y}),e.jsx("div",{className:"flex-1 min-h-0",children:j})]}):j}),!b&&e.jsx(q,{text:o,cursor:p,language:G(t)||void 0})]})}const O={title:"User system prompt",body:"This is the real ~/.claude/CLAUDE.md on disk — the instructions the claude CLI loads into every session it starts on this machine, in every project. A project's own CLAUDE.md / CLAUDE.local.md are read from that project's directory when a session launches there; they are not edited here."};function Z(t){return Math.round(t.length/4)}function ee(){const t=J(),[o,f]=l.useState("installed"),n=l.useMemo(()=>t?K.resolve("user",t,null):null,[t]),[i,m]=l.useState(null),r=(i==null?void 0:i.path)??n,b=!!i&&(!i.ok||!i.exists),a=h(s=>s.files),x=h(s=>s.loadText),c=h(s=>s.setDraft),S=h(s=>s.saveText),E=h(s=>s.revert),w=h(s=>s.watchFile),g=h(s=>s.unwatchFile);l.useEffect(()=>{if(n)return x(n,!0),w(n),()=>{g(n)}},[n]),l.useEffect(()=>{if(!(!r||r===n))return x(r,!0),w(r),()=>{g(r)}},[r,n]);const[C,p]=l.useState(null),R=l.useCallback(s=>{p(null),m(s)},[]);if(!t)return e.jsx(T,{title:"loading…"});if(o==="library")return e.jsx(P,{toolbar:e.jsx(A,{active:o,onChange:f,installedLabel:"Editor",libraryLabel:"Presets"}),children:e.jsx(W,{})});const N=n?a[n]:null,d=r?a[r]:null,v=(d==null?void 0:d.draftRaw)??"",y=Z(v),k=v.length,u=b,j=async()=>{if(!r)return;p(null);const s=await S(r);s.ok||p(s.error??"save failed")};return e.jsx(P,{toolbar:e.jsxs(e.Fragment,{children:[e.jsx(A,{active:o,onChange:f,installedLabel:"Editor",libraryLabel:"Presets"}),e.jsx("span",{className:"mx-2 text-fg-faint",children:"·"}),e.jsx("span",{className:"text-fg-dim",children:"User scope"}),e.jsx("span",{className:"ml-3 text-fg-faint truncate",children:r??"—"}),e.jsx("div",{className:"flex-1"}),e.jsxs("span",{className:"text-fg-faint",children:[k.toLocaleString()," chars · ~",y.toLocaleString()," tokens"]})]}),footer:r&&d&&!u?e.jsx(Q,{dirty:d.dirty,busy:d.busy,parseError:C,lastSavedAt:d.lastSavedAt,leading:d.exists?i?e.jsx("span",{children:"editing an imported file"}):null:e.jsx("span",{children:"file will be created on save"}),onSave:j,onRevert:()=>{p(null),E(r)}}):null,children:n&&N?e.jsxs("div",{className:"h-full flex flex-col",children:[e.jsxs("div",{"data-testid":"system-prompt-scope-note",className:"shrink-0 border-b border-line bg-bg-elev px-3 py-2 text-[11.5px] leading-snug",children:[e.jsx("span",{className:"font-semibold text-fg",children:O.title}),e.jsx("span",{className:"mx-1.5 text-fg-faint",children:"·"}),e.jsx("span",{className:"text-fg-dim",children:O.body}),e.jsx("span",{className:"ml-1.5 font-mono text-fg-faint",children:n})]}),e.jsxs("div",{className:"flex-1 min-h-0 flex",children:[e.jsx(X,{activePath:n,selectedPath:r,onSelect:R}),e.jsxs("div",{className:"flex-1 min-w-0 flex flex-col",children:[u&&e.jsx("div",{"data-testid":"system-prompt-missing-note",className:"shrink-0 border-b border-line bg-bg-elev px-3 py-1.5 text-[11px] text-amber-400/90",children:"This import does not resolve to a readable file — the CLI will skip it."}),r&&e.jsx("div",{className:"flex-1 min-h-0",children:e.jsx(Y,{path:r,value:v,readOnly:u,defaultMode:"split",onChange:s=>{p(null),c(r,s)},onSave:()=>{j()}},r)})]})]})]}):e.jsx(T,{title:"resolving…"})})}const le=l.memo(ee);export{le as SystemPrompt};
@@ -1 +1 @@
1
- import{ay as l,U as g,aj as e,u as w,q as y,l as T,aJ as v,aK as p,Y as k}from"./index-Db_SK9rW.js";import"./monaco-editor-BW5C4Iv1.js";const E=new Set(g.map(a=>a.tag));function j(a){return a.filter(n=>E.has(n))}function S(){const[a,n]=l.useState(g[0].tag),[o,x]=l.useState(null),[h,m]=l.useState(!1),r=l.useRef(!0);l.useEffect(()=>()=>{r.current=!1},[]);const c=async()=>{try{const t=await window.api.agents.listPersonas();r.current&&x(t)}catch(t){if(!r.current)return;x([]),p.error(t.message||"failed to load agent personas")}};l.useEffect(()=>{c()},[]),l.useEffect(()=>window.api.agents.onChanged(()=>c()),[]);const f=g.find(t=>t.tag===a)??null,u=async(t,i)=>{try{await window.api.agents.savePersona({name:t.name,originalName:t.name,description:t.description??"",tools:t.tools,model:t.model??"inherit",color:t.color??"",tags:j([...t.tags,i]),body:t.body}),m(!1),await c()}catch(d){p.error(d.message||"failed to assign tag")}},s=async(t,i)=>{try{await window.api.agents.savePersona({name:t.name,originalName:t.name,description:t.description??"",tools:t.tools,model:t.model??"inherit",color:t.color??"",tags:j(t.tags.filter(d=>d!==i)),body:t.body}),await c()}catch(d){p.error(d.message||"failed to remove tag")}};return e.jsx(w,{toolbar:e.jsxs("span",{className:"text-fg-faint",children:[g.length," tag",g.length===1?"":"s"]}),children:e.jsx(y,{sidebar:e.jsx("div",{className:"py-1",children:g.map(t=>{const i=v(t.tag),d=a===t.tag,b=(o==null?void 0:o.filter(N=>N.tags.includes(t.tag)).length)??0;return e.jsxs("button",{onClick:()=>{n(t.tag),m(!1)},className:`w-full text-left px-3 py-1.5 text-xs flex items-center gap-2 border-l-2 ${d?"bg-bg-hi text-fg border-accent":"text-fg-dim hover:text-fg hover:bg-bg-hi border-transparent"}`,children:[e.jsxs("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-mono font-semibold ${i.bg} ${i.text} ${i.border?"border border-current/30":""}`,children:["#",t.tag]}),e.jsx("span",{className:"truncate",children:t.label}),b>0&&e.jsx("span",{className:"ml-auto text-[10.5px] text-fg-faint font-mono shrink-0",children:b})]},t.tag)})}),detail:f?e.jsx(P,{entry:f,personas:o,adding:h,setAdding:m,onAssign:u,onUnassign:s}):e.jsx(T,{title:"select a tag"})})})}const R=l.memo(S);function P({entry:a,personas:n,adding:o,setAdding:x,onAssign:h,onUnassign:m}){const r=v(a.tag),c=k(a.tag),f=(n==null?void 0:n.filter(s=>s.tags.includes(a.tag)))??[],u=(n==null?void 0:n.filter(s=>!s.tags.includes(a.tag)))??[];return e.jsxs("div",{className:"p-4 space-y-4 max-w-3xl",children:[e.jsxs("div",{className:"flex items-center gap-2.5",children:[e.jsxs("span",{className:`px-2 py-1 rounded text-xs font-mono font-semibold ${r.bg} ${r.text} ${r.border?"border border-current/30":""}`,children:["#",a.tag]}),e.jsx("span",{className:"text-sm font-semibold text-fg",children:a.label})]}),e.jsx("div",{className:"text-xs text-fg-dim leading-relaxed",children:a.description}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10.5px] uppercase tracking-wide text-fg-faint mb-1.5 font-mono",children:"/develop eagerness"}),e.jsx("span",{className:"px-1.5 py-0.5 text-[10px] rounded border border-line text-fg-dim font-mono",children:a.developEagerness})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10.5px] uppercase tracking-wide text-fg-faint mb-1.5 font-mono",children:"develops via"}),e.jsx("span",{className:"px-1.5 py-0.5 text-[10px] rounded border border-line text-fg-dim font-mono",children:a.developsVia})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10.5px] uppercase tracking-wide text-fg-faint mb-1.5 font-mono",children:"agents carrying this tag"}),n===null?e.jsx("div",{className:"text-xs text-fg-faint italic",children:"loading…"}):e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[f.map(s=>e.jsxs("span",{className:"inline-flex items-center gap-1.5 bg-bg-elev border border-line rounded px-2 py-0.5 text-[11px] font-mono text-fg-dim",children:[s.name,e.jsx("button",{onClick:()=>m(s,a.tag),title:"Remove this tag from the agent",className:"text-fg-faint hover:text-fg",children:"×"})]},s.name)),f.length===0&&!o&&e.jsx("span",{className:"text-xs text-fg-faint italic mr-1",children:"no agent carries this tag yet."}),o?u.length>0?e.jsxs("select",{autoFocus:!0,defaultValue:"",onChange:s=>{const t=n.find(i=>i.name===s.target.value);t&&h(t,a.tag)},onBlur:()=>x(!1),className:"bg-bg border border-line rounded px-2 py-0.5 text-[11px] text-fg font-mono",children:[e.jsx("option",{value:"",disabled:!0,children:"pick an agent…"}),u.map(s=>e.jsx("option",{value:s.name,children:s.name},s.name))]}):e.jsx("span",{className:"text-xs text-fg-faint italic",children:"every agent already carries this tag."}):e.jsx("button",{onClick:()=>x(!0),className:"px-2 py-0.5 rounded-full text-[11px] font-mono border border-line text-fg-faint hover:text-fg hover:bg-bg-hi",children:"+ assign agent"})]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10.5px] uppercase tracking-wide text-fg-faint mb-1.5 font-mono",children:"opening framing — sent before the human's goal"}),e.jsx("pre",{className:"text-xs text-fg-dim whitespace-pre-wrap bg-bg-elev border border-line rounded p-3 leading-relaxed font-sans",children:c.initialPromptTemplate})]})]})}export{R as TagLibrary};
1
+ import{az as o,V as g,ak as e,v as w,r as y,m as T,aK as v,aL as p,_ as k}from"./index-Yf8e7VCB.js";import"./monaco-editor-BW5C4Iv1.js";const E=new Set(g.map(a=>a.tag));function j(a){return a.filter(n=>E.has(n))}function S(){const[a,n]=o.useState(g[0].tag),[l,x]=o.useState(null),[u,m]=o.useState(!1),r=o.useRef(!0);o.useEffect(()=>()=>{r.current=!1},[]);const c=async()=>{try{const t=await window.api.agents.listPersonas();r.current&&x(t)}catch(t){if(!r.current)return;x([]),p.error(t.message||"failed to load agent personas")}};o.useEffect(()=>{c()},[]),o.useEffect(()=>window.api.agents.onChanged(()=>c()),[]);const f=g.find(t=>t.tag===a)??null,h=async(t,i)=>{try{await window.api.agents.savePersona({name:t.name,originalName:t.name,description:t.description??"",tools:t.tools,model:t.model??"inherit",color:t.color??"",tags:j([...t.tags,i]),body:t.body}),m(!1),await c()}catch(d){p.error(d.message||"failed to assign tag")}},s=async(t,i)=>{try{await window.api.agents.savePersona({name:t.name,originalName:t.name,description:t.description??"",tools:t.tools,model:t.model??"inherit",color:t.color??"",tags:j(t.tags.filter(d=>d!==i)),body:t.body}),await c()}catch(d){p.error(d.message||"failed to remove tag")}};return e.jsx(w,{toolbar:e.jsxs("span",{className:"text-fg-faint",children:[g.length," tag",g.length===1?"":"s"]}),children:e.jsx(y,{sidebar:e.jsx("div",{className:"py-1",children:g.map(t=>{const i=v(t.tag),d=a===t.tag,b=(l==null?void 0:l.filter(N=>N.tags.includes(t.tag)).length)??0;return e.jsxs("button",{onClick:()=>{n(t.tag),m(!1)},className:`w-full text-left px-3 py-1.5 text-xs flex items-center gap-2 border-l-2 ${d?"bg-bg-hi text-fg border-accent":"text-fg-dim hover:text-fg hover:bg-bg-hi border-transparent"}`,children:[e.jsxs("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-mono font-semibold ${i.bg} ${i.text} ${i.border?"border border-current/30":""}`,children:["#",t.tag]}),e.jsx("span",{className:"truncate",children:t.label}),b>0&&e.jsx("span",{className:"ml-auto text-[10.5px] text-fg-faint font-mono shrink-0",children:b})]},t.tag)})}),detail:f?e.jsx(P,{entry:f,personas:l,adding:u,setAdding:m,onAssign:h,onUnassign:s}):e.jsx(T,{title:"select a tag"})})})}const L=o.memo(S);function P({entry:a,personas:n,adding:l,setAdding:x,onAssign:u,onUnassign:m}){const r=v(a.tag),c=k(a.tag),f=(n==null?void 0:n.filter(s=>s.tags.includes(a.tag)))??[],h=(n==null?void 0:n.filter(s=>!s.tags.includes(a.tag)))??[];return e.jsxs("div",{className:"p-4 space-y-4 max-w-3xl",children:[e.jsxs("div",{className:"flex items-center gap-2.5",children:[e.jsxs("span",{className:`px-2 py-1 rounded text-xs font-mono font-semibold ${r.bg} ${r.text} ${r.border?"border border-current/30":""}`,children:["#",a.tag]}),e.jsx("span",{className:"text-sm font-semibold text-fg",children:a.label})]}),e.jsx("div",{className:"text-xs text-fg-dim leading-relaxed",children:a.description}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10.5px] uppercase tracking-wide text-fg-faint mb-1.5 font-mono",children:"/develop eagerness"}),e.jsx("span",{className:"px-1.5 py-0.5 text-[10px] rounded border border-line text-fg-dim font-mono",children:a.developEagerness})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10.5px] uppercase tracking-wide text-fg-faint mb-1.5 font-mono",children:"develops via"}),e.jsx("span",{className:"px-1.5 py-0.5 text-[10px] rounded border border-line text-fg-dim font-mono",children:a.developsVia})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10.5px] uppercase tracking-wide text-fg-faint mb-1.5 font-mono",children:"agents carrying this tag"}),n===null?e.jsx("div",{className:"text-xs text-fg-faint italic",children:"loading…"}):e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[f.map(s=>e.jsxs("span",{className:"inline-flex items-center gap-1.5 bg-bg-elev border border-line rounded px-2 py-0.5 text-[11px] font-mono text-fg-dim",children:[s.name,e.jsx("button",{onClick:()=>m(s,a.tag),title:"Remove this tag from the agent",className:"text-fg-faint hover:text-fg",children:"×"})]},s.name)),f.length===0&&!l&&e.jsx("span",{className:"text-xs text-fg-faint italic mr-1",children:"no agent carries this tag yet."}),l?h.length>0?e.jsxs("select",{autoFocus:!0,defaultValue:"",onChange:s=>{const t=n.find(i=>i.name===s.target.value);t&&u(t,a.tag)},onBlur:()=>x(!1),className:"bg-bg border border-line rounded px-2 py-0.5 text-[11px] text-fg font-mono",children:[e.jsx("option",{value:"",disabled:!0,children:"pick an agent…"}),h.map(s=>e.jsx("option",{value:s.name,children:s.name},s.name))]}):e.jsx("span",{className:"text-xs text-fg-faint italic",children:"every agent already carries this tag."}):e.jsx("button",{onClick:()=>x(!0),className:"px-2 py-0.5 rounded-full text-[11px] font-mono border border-line text-fg-faint hover:text-fg hover:bg-bg-hi",children:"+ assign agent"})]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[10.5px] uppercase tracking-wide text-fg-faint mb-1.5 font-mono",children:"opening framing — sent before the human's goal"}),e.jsx("pre",{className:"text-xs text-fg-dim whitespace-pre-wrap bg-bg-elev border border-line rounded p-3 leading-relaxed font-sans",children:c.initialPromptTemplate})]})]})}export{L as TagLibrary};
@@ -1,4 +1,4 @@
1
- import{aB as aa,ay as G,R as Pt,aj as R,y as Nf,ag as If,Z as Rf}from"./index-Db_SK9rW.js";import"./monaco-editor-BW5C4Iv1.js";var zi={exports:{}},$i={};/**
1
+ import{aC as aa,az as G,R as Pt,ak as R,z as Nf,ah as If,Z as Rf}from"./index-Yf8e7VCB.js";import"./monaco-editor-BW5C4Iv1.js";var zi={exports:{}},$i={};/**
2
2
  * @license React
3
3
  * use-sync-external-store-shim.production.js
4
4
  *
@@ -1 +1 @@
1
- import{aj as r}from"./index-Db_SK9rW.js";function a({checked:t,onChange:e,label:n,disabled:s}){return r.jsxs("label",{className:`inline-flex items-center gap-2 text-xs ${s?"opacity-50 cursor-not-allowed":"cursor-pointer"}`,children:[r.jsx("button",{type:"button",role:"switch","aria-checked":t,disabled:s,onClick:()=>!s&&e(!t),className:`relative w-7 h-4 rounded-full transition-colors ${t?"bg-accent":"bg-bg-hi border border-line"}`,children:r.jsx("span",{className:`absolute top-0.5 w-3 h-3 rounded-full bg-fg transition-transform ${t?"translate-x-3.5":"translate-x-0.5"}`})}),n&&r.jsx("span",{className:"text-fg-dim",children:n})]})}export{a as T};
1
+ import{ak as r}from"./index-Yf8e7VCB.js";function a({checked:t,onChange:e,label:n,disabled:s}){return r.jsxs("label",{className:`inline-flex items-center gap-2 text-xs ${s?"opacity-50 cursor-not-allowed":"cursor-pointer"}`,children:[r.jsx("button",{type:"button",role:"switch","aria-checked":t,disabled:s,onClick:()=>!s&&e(!t),className:`relative w-7 h-4 rounded-full transition-colors ${t?"bg-accent":"bg-bg-hi border border-line"}`,children:r.jsx("span",{className:`absolute top-0.5 w-3 h-3 rounded-full bg-fg transition-transform ${t?"translate-x-3.5":"translate-x-0.5"}`})}),n&&r.jsx("span",{className:"text-fg-dim",children:n})]})}export{a as T};