pilotswarm 0.5.31 → 0.5.32

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 (66) hide show
  1. package/package.json +2 -2
  2. package/ui/core/src/reducer.js +31 -1
  3. package/web/dist/assets/{abnfDiagram-VRR7QNED-B6Jg6EVO.js → abnfDiagram-VRR7QNED-mXFQ4a3c.js} +1 -1
  4. package/web/dist/assets/{arc-CXlpRoiY.js → arc-BPuuvbge.js} +1 -1
  5. package/web/dist/assets/{architectureDiagram-ZJ3FMSHR-Cz0HaJpP.js → architectureDiagram-ZJ3FMSHR-Dt4uUYIe.js} +1 -1
  6. package/web/dist/assets/{blockDiagram-677ZJIJ3-DZWo4rKx.js → blockDiagram-677ZJIJ3-Ax8Q22vV.js} +1 -1
  7. package/web/dist/assets/{c4Diagram-LMCZKHZV-B14XBZjN.js → c4Diagram-LMCZKHZV-CPiukyHt.js} +1 -1
  8. package/web/dist/assets/channel-BCzDctYg.js +1 -0
  9. package/web/dist/assets/{chunk-2Q5K7J3B-Bwh2l9hA.js → chunk-2Q5K7J3B-VJLqCZJX.js} +1 -1
  10. package/web/dist/assets/{chunk-32BRIVSS-k8Ij2VYH.js → chunk-32BRIVSS-DqOshxhf.js} +1 -1
  11. package/web/dist/assets/{chunk-5VM5RSS4-CsDT6hRk.js → chunk-5VM5RSS4-KPqV21jV.js} +1 -1
  12. package/web/dist/assets/{chunk-EX3LRPZG-BdjmGnAk.js → chunk-EX3LRPZG-DfhiCVl_.js} +1 -1
  13. package/web/dist/assets/{chunk-JWPE2WC7-DOZ5TNvG.js → chunk-JWPE2WC7-H6khJPuW.js} +1 -1
  14. package/web/dist/assets/{chunk-MOJQB5TN-DEJZZ1iz.js → chunk-MOJQB5TN-BKMAzQxj.js} +1 -1
  15. package/web/dist/assets/{chunk-RYQCIY6F-lRr0UvHd.js → chunk-RYQCIY6F-DNXRTxtj.js} +1 -1
  16. package/web/dist/assets/{chunk-V7JOEXUC-CSvoAMmI.js → chunk-V7JOEXUC-B56PM6Gv.js} +1 -1
  17. package/web/dist/assets/{chunk-VR4S4FIN-DTJAD-L9.js → chunk-VR4S4FIN-Boi3hGkB.js} +1 -1
  18. package/web/dist/assets/{chunk-XXDRQBXY-BVYiFUoV.js → chunk-XXDRQBXY-DmJyn890.js} +1 -1
  19. package/web/dist/assets/classDiagram-OUVF2IWQ-ChqjVZil.js +1 -0
  20. package/web/dist/assets/classDiagram-v2-EOCWNBFH-ChqjVZil.js +1 -0
  21. package/web/dist/assets/{cose-bilkent-JH36ORCC-CWHrN90k.js → cose-bilkent-JH36ORCC-BRdFlFWt.js} +1 -1
  22. package/web/dist/assets/{cynefin-VYW2F7L2-D59sMrUm.js → cynefin-VYW2F7L2-DqE-xib2.js} +1 -1
  23. package/web/dist/assets/{cynefinDiagram-TSTJHNR4-K9FBPccF.js → cynefinDiagram-TSTJHNR4-D-QBZjIL.js} +1 -1
  24. package/web/dist/assets/{dagre-VKFMJZFB-BM7OoDEy.js → dagre-VKFMJZFB-DYu9oQV6.js} +1 -1
  25. package/web/dist/assets/{diagram-FQU43EPY-CJzzgGhs.js → diagram-FQU43EPY-DOwYccCg.js} +1 -1
  26. package/web/dist/assets/{diagram-G47NLZAW-5pzXsCDr.js → diagram-G47NLZAW-DTSEmrPr.js} +1 -1
  27. package/web/dist/assets/{diagram-NH7WQ7WH-DxOZ99XW.js → diagram-NH7WQ7WH-OqbzzquA.js} +1 -1
  28. package/web/dist/assets/{diagram-OA4YK3LP-DOacm091.js → diagram-OA4YK3LP-BMVG6A8I.js} +1 -1
  29. package/web/dist/assets/{diagram-WEI45ONY-BahZjEvH.js → diagram-WEI45ONY-Rn2Q5xaz.js} +1 -1
  30. package/web/dist/assets/{ebnfDiagram-CCIWWBDH-B6ECkTWL.js → ebnfDiagram-CCIWWBDH-aL32_v5y.js} +1 -1
  31. package/web/dist/assets/{erDiagram-Q63AITRT-mVD6I-vf.js → erDiagram-Q63AITRT-DKCpyczx.js} +1 -1
  32. package/web/dist/assets/{flowDiagram-23GEKE2U-C4aUdoJ_.js → flowDiagram-23GEKE2U-CrZTPgR_.js} +1 -1
  33. package/web/dist/assets/{ganttDiagram-NO4QXBWP-BtlpZbzc.js → ganttDiagram-NO4QXBWP-DnSE1OtC.js} +1 -1
  34. package/web/dist/assets/{gitGraphDiagram-IHSO6WYX-BhFyRrAD.js → gitGraphDiagram-IHSO6WYX-C5SeYPUR.js} +1 -1
  35. package/web/dist/assets/{index-D7XAx2Lr.js → index-B-TEKrRB.js} +2 -2
  36. package/web/dist/assets/{infoDiagram-FWYZ7A6U-BCvX64-p.js → infoDiagram-FWYZ7A6U-DDnJZp0X.js} +1 -1
  37. package/web/dist/assets/{ishikawaDiagram-FXEZZL3T-BSn6_T0C.js → ishikawaDiagram-FXEZZL3T-ewhzfFkq.js} +1 -1
  38. package/web/dist/assets/{journeyDiagram-5HDEW3XC-DQ_o7o49.js → journeyDiagram-5HDEW3XC-T0iWWkLM.js} +1 -1
  39. package/web/dist/assets/{kanban-definition-HUTT4EX6-B7_vixph.js → kanban-definition-HUTT4EX6-D1MFQZjb.js} +1 -1
  40. package/web/dist/assets/{linear-s_NWXV09.js → linear-BKfPK9wE.js} +1 -1
  41. package/web/dist/assets/{mermaid.core-DfKXu_iO.js → mermaid.core-CyzD7dTc.js} +4 -4
  42. package/web/dist/assets/{mindmap-definition-LN4V7U3C-CnPoIj_9.js → mindmap-definition-LN4V7U3C-CWXtcTlP.js} +1 -1
  43. package/web/dist/assets/{papaparse.min-D0bEfQ6q.js → papaparse.min-DLUoV5k5.js} +1 -1
  44. package/web/dist/assets/{pegDiagram-2B236MQR-95e7M-Gf.js → pegDiagram-2B236MQR-BFjZun-r.js} +1 -1
  45. package/web/dist/assets/{pieDiagram-ENE6RG2P-BBupPpGy.js → pieDiagram-ENE6RG2P-DMDtW4g7.js} +1 -1
  46. package/web/dist/assets/{pilotswarm-CrkuNMdN.js → pilotswarm-DA0u7Cq_.js} +39 -39
  47. package/web/dist/assets/{quadrantDiagram-ABIIQ3AL-BtAFN6YL.js → quadrantDiagram-ABIIQ3AL-CAwPVaYL.js} +1 -1
  48. package/web/dist/assets/{railroadDiagram-RFXS5EU6-D-iiFFZP.js → railroadDiagram-RFXS5EU6-Co102PkQ.js} +1 -1
  49. package/web/dist/assets/{requirementDiagram-TGXJPOKE-D5OE9UHr.js → requirementDiagram-TGXJPOKE-D19VlRSl.js} +1 -1
  50. package/web/dist/assets/{sankeyDiagram-HTMAVEWB-gQjiHMA4.js → sankeyDiagram-HTMAVEWB-Sd_a3ukL.js} +1 -1
  51. package/web/dist/assets/{sequenceDiagram-DBY2YBRQ-CZhVnr2O.js → sequenceDiagram-DBY2YBRQ-CojDRK1c.js} +1 -1
  52. package/web/dist/assets/{sizeCapture-X5ZJPWSS-DMzYlLpq.js → sizeCapture-X5ZJPWSS-XqXcxnDo.js} +1 -1
  53. package/web/dist/assets/{stateDiagram-2N3HPSRC-DLhjleJj.js → stateDiagram-2N3HPSRC-BcN_w699.js} +1 -1
  54. package/web/dist/assets/stateDiagram-v2-6OUMAXLB-BV_w1D3C.js +1 -0
  55. package/web/dist/assets/{swimlanes-5IMT3BWC-gf8k1-EE.js → swimlanes-5IMT3BWC-BcO6ai_I.js} +2 -2
  56. package/web/dist/assets/swimlanesDiagram-G3AALYLV-BnYdP0qP.js +8 -0
  57. package/web/dist/assets/{timeline-definition-FHXFAJF6-3Eh9mWX5.js → timeline-definition-FHXFAJF6-DOPfYxUq.js} +1 -1
  58. package/web/dist/assets/{vennDiagram-L72KCM5P-CD_6s6Aw.js → vennDiagram-L72KCM5P-BSKLkEOC.js} +1 -1
  59. package/web/dist/assets/{wardleyDiagram-EHGQE667-0UHyI4So.js → wardleyDiagram-EHGQE667-BdcYAVw2.js} +1 -1
  60. package/web/dist/assets/{xychartDiagram-FW5EYKEG-UgOpbm2K.js → xychartDiagram-FW5EYKEG-C6EJT4jB.js} +1 -1
  61. package/web/dist/index.html +2 -2
  62. package/web/dist/assets/channel-B41IiEwn.js +0 -1
  63. package/web/dist/assets/classDiagram-OUVF2IWQ-DqVK0a7s.js +0 -1
  64. package/web/dist/assets/classDiagram-v2-EOCWNBFH-DqVK0a7s.js +0 -1
  65. package/web/dist/assets/stateDiagram-v2-6OUMAXLB-C1XyS16K.js +0 -1
  66. package/web/dist/assets/swimlanesDiagram-G3AALYLV-COGrmqEf.js +0 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pilotswarm",
3
- "version": "0.5.31",
3
+ "version": "0.5.32",
4
4
  "description": "PilotSwarm application package: terminal UI, browser portal + Web API server, and MCP server — one install, three bins.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -81,7 +81,7 @@
81
81
  "ink": "^6.8.0",
82
82
  "jose": "^6.2.2",
83
83
  "mermaid": "^11.16.0",
84
- "pilotswarm-sdk": "0.5.31",
84
+ "pilotswarm-sdk": "0.5.32",
85
85
  "react": "^19.2.4",
86
86
  "react-dom": "^19.2.4",
87
87
  "ws": "^8.18.2"
@@ -53,8 +53,38 @@ function isPinnableSession(session) {
53
53
  );
54
54
  }
55
55
 
56
+ /**
57
+ * Keep a pin unless the row is loaded AND demonstrably no longer pinnable.
58
+ *
59
+ * Same rule, and the same reasoning, as pruneCollapsedIds below: a row missing
60
+ * from the current listing has NOT been unpinned. Not-loaded, filtered out,
61
+ * on another page, or simply slower to arrive are indistinguishable from here,
62
+ * and none of them is the user changing their mind.
63
+ *
64
+ * This ran unguarded on every `sessions/loaded`, so any listing that did not
65
+ * happen to contain the pinned row dropped the pin — and because pinnedIds is
66
+ * a dependency of the profile-save effect, the emptied list was then written
67
+ * back to the server as the user's preference. That is a one-way ratchet: the
68
+ * pin did not survive a restart, and the destroyed preference propagated to
69
+ * every other device, which is why a pin set on the desktop never reached the
70
+ * phone.
71
+ *
72
+ * A session that is genuinely present and NOT pinnable (moved into a group or
73
+ * under a parent, or a system row) is a real signal, so that still drops.
74
+ */
56
75
  function prunePinnedIds(ids, byId) {
57
- return pruneIdList(ids, byId).filter((sessionId) => isPinnableSession(byId[sessionId]));
76
+ const out = [];
77
+ const seen = new Set();
78
+ for (const id of ids || []) {
79
+ if (!id || seen.has(id)) continue;
80
+ seen.add(id);
81
+ const session = byId?.[id];
82
+ // Absent from this listing tells us nothing — keep it. A stale id
83
+ // matches no row and hoists nothing; a wrongly dropped one costs the
84
+ // user their pin permanently.
85
+ if (!session || isPinnableSession(session)) out.push(id);
86
+ }
87
+ return out;
58
88
  }
59
89
 
60
90
 
@@ -1 +1 @@
1
- import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-DEJZZ1iz.js";import{p as f}from"./chunk-JWPE2WC7-DOZ5TNvG.js";import{_ as n,l as o}from"./mermaid.core-DfKXu_iO.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-D59sMrUm.js";import"./pilotswarm-CrkuNMdN.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
1
+ import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-BKMAzQxj.js";import{p as f}from"./chunk-JWPE2WC7-H6khJPuW.js";import{_ as n,l as o}from"./mermaid.core-CyzD7dTc.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-DqE-xib2.js";import"./pilotswarm-DA0u7Cq_.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
@@ -1 +1 @@
1
- import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-DfKXu_iO.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,z,a){var O=I-l,i=D-h,n=z-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*J(on(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,B=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<an)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(fn((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-CyzD7dTc.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,z,a){var O=I-l,i=D-h,n=z-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*J(on(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,B=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<an)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(fn((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};