@inharness-ai/claude4spec 1.0.7 → 1.0.9

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 (118) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/client/assets/{arc-BaZhf2Hh.js → arc-BbQk3YNU.js} +1 -1
  3. package/dist/client/assets/{architectureDiagram-3BPJPVTR-CSSQUdKD.js → architectureDiagram-3BPJPVTR-DTNs5kv9.js} +1 -1
  4. package/dist/client/assets/{blockDiagram-GPEHLZMM-BlmKwjoI.js → blockDiagram-GPEHLZMM-BR8Pfqtq.js} +1 -1
  5. package/dist/client/assets/{c4Diagram-AAUBKEIU-C7helt0Z.js → c4Diagram-AAUBKEIU-CQ7-XtOM.js} +1 -1
  6. package/dist/client/assets/channel-DohotR4X.js +1 -0
  7. package/dist/client/assets/{chunk-2J33WTMH-CC-e13sC.js → chunk-2J33WTMH-3Mu_Omdr.js} +1 -1
  8. package/dist/client/assets/{chunk-4BX2VUAB-D-HpWY8q.js → chunk-4BX2VUAB-Be8xsUyQ.js} +1 -1
  9. package/dist/client/assets/{chunk-55IACEB6-BSPwaiEp.js → chunk-55IACEB6-C3wH8L1v.js} +1 -1
  10. package/dist/client/assets/{chunk-727SXJPM-CQbEHPPO.js → chunk-727SXJPM-B8Cspzxz.js} +1 -1
  11. package/dist/client/assets/{chunk-AQP2D5EJ-BpSrKpmB.js → chunk-AQP2D5EJ-C4mIaD2I.js} +1 -1
  12. package/dist/client/assets/{chunk-FMBD7UC4-zE1R3SR8.js → chunk-FMBD7UC4-mi8e4Jpb.js} +1 -1
  13. package/dist/client/assets/{chunk-ND2GUHAM-CqN17qqH.js → chunk-ND2GUHAM-BSmIDlkx.js} +1 -1
  14. package/dist/client/assets/{chunk-QZHKN3VN-13BvG3Jp.js → chunk-QZHKN3VN-Dn_rpqMI.js} +1 -1
  15. package/dist/client/assets/classDiagram-4FO5ZUOK-BEbP0iRU.js +1 -0
  16. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BEbP0iRU.js +1 -0
  17. package/dist/client/assets/{cose-bilkent-S5V4N54A-CO574VR8.js → cose-bilkent-S5V4N54A-CaorGydk.js} +1 -1
  18. package/dist/client/assets/{dagre-BM42HDAG-BEVJuqdY.js → dagre-BM42HDAG-ByHsZOJc.js} +1 -1
  19. package/dist/client/assets/{diagram-2AECGRRQ-CGCBS-dy.js → diagram-2AECGRRQ-DDBQfr03.js} +1 -1
  20. package/dist/client/assets/{diagram-5GNKFQAL-Dyq0_Rlp.js → diagram-5GNKFQAL-C49ea1cH.js} +1 -1
  21. package/dist/client/assets/{diagram-KO2AKTUF-BpiCh3Ed.js → diagram-KO2AKTUF-BfTxVvlv.js} +1 -1
  22. package/dist/client/assets/{diagram-LMA3HP47-XJeaihzL.js → diagram-LMA3HP47-Df3uriI8.js} +1 -1
  23. package/dist/client/assets/{diagram-OG6HWLK6-Bb_LX7wz.js → diagram-OG6HWLK6-Ctgih-GF.js} +1 -1
  24. package/dist/client/assets/{erDiagram-TEJ5UH35-D-slZ-dN.js → erDiagram-TEJ5UH35-BirGQyAh.js} +1 -1
  25. package/dist/client/assets/{flowDiagram-I6XJVG4X-B_SOoctl.js → flowDiagram-I6XJVG4X-pRNvZZ3A.js} +1 -1
  26. package/dist/client/assets/{ganttDiagram-6RSMTGT7-B3UsanUx.js → ganttDiagram-6RSMTGT7-Dp74nfB8.js} +1 -1
  27. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-C9RzuImP.js → gitGraphDiagram-PVQCEYII-DpQvPYeS.js} +1 -1
  28. package/dist/client/assets/{index-BnYPnnod.js → index-BhoTrwkr.js} +1 -1
  29. package/dist/client/assets/index-CmCv_a_L.js +760 -0
  30. package/dist/client/assets/{index-CQBB3Uf4.js → index-DfRr1BnL.js} +1 -1
  31. package/dist/client/assets/{index-yeyi8oQf.css → index-jLEIT-VL.css} +1 -1
  32. package/dist/client/assets/{infoDiagram-5YYISTIA-CcaL3dnH.js → infoDiagram-5YYISTIA-DYDzOj3P.js} +1 -1
  33. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-Drl0TLDq.js → ishikawaDiagram-YF4QCWOH-Cy5vPrcI.js} +1 -1
  34. package/dist/client/assets/{journeyDiagram-JHISSGLW-Ia46_5df.js → journeyDiagram-JHISSGLW-CwZS2YNP.js} +1 -1
  35. package/dist/client/assets/{kanban-definition-UN3LZRKU-CkDPRy8x.js → kanban-definition-UN3LZRKU-CYcLDOOm.js} +1 -1
  36. package/dist/client/assets/{linear-BJ5HYD7N.js → linear-MgxFADSW.js} +1 -1
  37. package/dist/client/assets/{mermaid.core-DohfSRYI.js → mermaid.core-BLh1mA7k.js} +4 -4
  38. package/dist/client/assets/{mindmap-definition-RKZ34NQL-CN1i3cXM.js → mindmap-definition-RKZ34NQL-Du5qeSLp.js} +1 -1
  39. package/dist/client/assets/{pieDiagram-4H26LBE5-Boz7UISz.js → pieDiagram-4H26LBE5-BZfSSy7P.js} +1 -1
  40. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DOBPTFZq.js → quadrantDiagram-W4KKPZXB-BpnU4ra9.js} +1 -1
  41. package/dist/client/assets/{requirementDiagram-4Y6WPE33-c0jMOQGX.js → requirementDiagram-4Y6WPE33-BXPdIVmR.js} +1 -1
  42. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-D-AwIne0.js → sankeyDiagram-5OEKKPKP-xv3-AxfK.js} +1 -1
  43. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BgMjP-Q1.js → sequenceDiagram-3UESZ5HK-BlC7_u7W.js} +1 -1
  44. package/dist/client/assets/{stateDiagram-AJRCARHV-8qvFMuv5.js → stateDiagram-AJRCARHV-DBK7X-jZ.js} +1 -1
  45. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-D4ERKDfK.js +1 -0
  46. package/dist/client/assets/{timeline-definition-PNZ67QCA-Q1t7Xr5L.js → timeline-definition-PNZ67QCA-BncS_dqm.js} +1 -1
  47. package/dist/client/assets/{vennDiagram-CIIHVFJN-atIUY_uM.js → vennDiagram-CIIHVFJN-DhSN1hIy.js} +1 -1
  48. package/dist/client/assets/{wardley-L42UT6IY-Dg8nGqpF.js → wardley-L42UT6IY-Chwqk3uY.js} +1 -1
  49. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-B26t7Hde.js → wardleyDiagram-YWT4CUSO-BRAeZzQx.js} +1 -1
  50. package/dist/client/assets/{xychartDiagram-2RQKCTM6-uz4jM4Hi.js → xychartDiagram-2RQKCTM6-DRHJB-Md.js} +1 -1
  51. package/dist/client/index.html +16 -2
  52. package/dist/server/config.d.ts +7 -0
  53. package/dist/server/config.js +8 -0
  54. package/dist/server/config.js.map +1 -1
  55. package/dist/server/db/migrations/031_release_push.sql +39 -0
  56. package/dist/server/index.js +107 -2
  57. package/dist/server/index.js.map +1 -1
  58. package/dist/server/mcp/reference-tools.js +3 -3
  59. package/dist/server/mcp/reference-tools.js.map +1 -1
  60. package/dist/server/routes/errors.js +7 -0
  61. package/dist/server/routes/errors.js.map +1 -1
  62. package/dist/server/routes/release-pushes.d.ts +10 -0
  63. package/dist/server/routes/release-pushes.js +68 -0
  64. package/dist/server/routes/release-pushes.js.map +1 -0
  65. package/dist/server/routes/releases.js +9 -0
  66. package/dist/server/routes/releases.js.map +1 -1
  67. package/dist/server/routes/remote-project.d.ts +16 -0
  68. package/dist/server/routes/remote-project.js +85 -0
  69. package/dist/server/routes/remote-project.js.map +1 -0
  70. package/dist/server/serialization/resolve-page.js +2 -2
  71. package/dist/server/serialization/resolve-page.js.map +1 -1
  72. package/dist/server/services/brief.d.ts +2 -0
  73. package/dist/server/services/brief.js +10 -0
  74. package/dist/server/services/brief.js.map +1 -1
  75. package/dist/server/services/page-serializer.js +2 -2
  76. package/dist/server/services/page-serializer.js.map +1 -1
  77. package/dist/server/services/references.js +4 -4
  78. package/dist/server/services/references.js.map +1 -1
  79. package/dist/server/services/release-bundle.d.ts +92 -0
  80. package/dist/server/services/release-bundle.js +183 -0
  81. package/dist/server/services/release-bundle.js.map +1 -0
  82. package/dist/server/services/release-push.d.ts +38 -0
  83. package/dist/server/services/release-push.js +179 -0
  84. package/dist/server/services/release-push.js.map +1 -0
  85. package/dist/server/services/release.d.ts +39 -1
  86. package/dist/server/services/release.js +53 -1
  87. package/dist/server/services/release.js.map +1 -1
  88. package/dist/server/services/remote-auth.d.ts +46 -1
  89. package/dist/server/services/remote-auth.js +71 -1
  90. package/dist/server/services/remote-auth.js.map +1 -1
  91. package/dist/server/services/remote-http-client.d.ts +69 -0
  92. package/dist/server/services/remote-http-client.js +83 -0
  93. package/dist/server/services/remote-http-client.js.map +1 -1
  94. package/dist/server/services/section-indexer.js +2 -2
  95. package/dist/server/services/section-indexer.js.map +1 -1
  96. package/dist/server/services/sections.js +2 -2
  97. package/dist/server/services/sections.js.map +1 -1
  98. package/dist/server/services/todos-indexer.js +2 -2
  99. package/dist/server/services/todos-indexer.js.map +1 -1
  100. package/dist/shared/code-ranges.d.ts +46 -0
  101. package/dist/shared/code-ranges.js +123 -0
  102. package/dist/shared/code-ranges.js.map +1 -0
  103. package/dist/shared/release-push.d.ts +49 -0
  104. package/dist/shared/release-push.js +9 -0
  105. package/dist/shared/release-push.js.map +1 -0
  106. package/dist/shared/remote-project.d.ts +27 -0
  107. package/dist/shared/remote-project.js +2 -0
  108. package/dist/shared/remote-project.js.map +1 -0
  109. package/dist/shared/types.d.ts +1 -0
  110. package/dist/shared/xml-tags.d.ts +13 -0
  111. package/dist/shared/xml-tags.js +20 -0
  112. package/dist/shared/xml-tags.js.map +1 -1
  113. package/package.json +3 -2
  114. package/dist/client/assets/channel-CHGfOh3d.js +0 -1
  115. package/dist/client/assets/classDiagram-4FO5ZUOK-DxbfnZUt.js +0 -1
  116. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DxbfnZUt.js +0 -1
  117. package/dist/client/assets/index-DamovIDe.js +0 -752
  118. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-Doe04F42.js +0 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.0.9] - 2026-05-28
9
+
10
+ ### Added
11
+ - `SettingsPage` — centralized settings UI with dedicated sections (`AppearanceSection`, `AgentSection`, `EntitiesSection`, `ProjectSection`, `RemoteProjectSection`, `ServerSection`, `UserSettingsSection`, `AboutSection`) wrapped in a shared `SettingsCard`. The `Sidebar` and `UserSection` now navigate to it, and a new `RestartRequiredBanner` surfaces when settings changes require a server restart.
12
+ - Remote project plumbing — `/api/remote-project` route, `useRemoteProject` hook, and `shared/remote-project.ts` types, plus `RemoteAuthService` / `RemoteHttpClient` extensions.
13
+ - `shared/code-ranges.ts` and `shared/xml-tags.ts` helpers, and a `usePagesIndex` hook.
14
+
15
+ ### Changed
16
+ - Rewrote `xml-chip-preprocess` and tightened `Editor` / `PlanEditor` around the new code-range helpers.
17
+ - `UserSection` and `Sidebar` simplified — settings navigation replaces inline controls.
18
+
19
+ ### Removed
20
+ - `WritingStyleSelector` component (UI cleanup).
21
+
22
+ ## [1.0.8] - 2026-05-26
23
+
24
+ ### Added
25
+ - Push to remote — bundle a release into a tarball and push it to the remote claude4spec API. Adds the `/api/release-pushes` route, `ReleasePushService` and `ReleaseBundleService` (tarball packaging via `tar`), and migration `031_release_push`, with `RemoteHttpClient` / `RemoteAuthService` support for the authenticated upload. Client side: a "Push to remote" release action, the `ReleasePushesList` panel, the `useReleasePushes` hook, and `releasePushesApi`. Includes a `verify-bundle` script for validating produced tarballs.
26
+
8
27
  ## [1.0.7] - 2026-05-25
9
28
 
10
29
  ### Added
@@ -89,6 +108,8 @@ Initial public release.
89
108
  - Acceptance Criteria entity and tooling.
90
109
  - Briefs and patches workflow for spec-driven implementation.
91
110
 
111
+ [1.0.9]: https://github.com/InHarness/claude4spec/compare/v1.0.8...v1.0.9
112
+ [1.0.8]: https://github.com/InHarness/claude4spec/compare/v1.0.7...v1.0.8
92
113
  [1.0.7]: https://github.com/InHarness/claude4spec/compare/v1.0.6...v1.0.7
93
114
  [1.0.6]: https://github.com/InHarness/claude4spec/compare/v1.0.5...v1.0.6
94
115
  [1.0.5]: https://github.com/InHarness/claude4spec/compare/v1.0.4...v1.0.5
@@ -1 +1 @@
1
- import{a0 as ln,a1 as an,a2 as H,a3 as q,a4 as B,a5 as un,a6 as y,a7 as tn,a8 as L,a9 as _,aa as rn,ab as o,ac as on,ad as sn,ae as fn}from"./mermaid.core-DohfSRYI.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,C,a){var O=I-l,i=D-h,n=C-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 W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(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)*L(on(0,T*T*R-P*P)),j=(P*g-m*S)/R,z=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=yn,I=B(0),D=null,v=gn,A=dn,C=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,F=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(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>y&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>y){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(S=0,m=g=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>y){var U=s*H(g),V=s*q(g),X=u*H(R),Y=u*q(R),E;if(F<an)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(fn((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(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=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,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(J,K),a.arc(0,0,s,m,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,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[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{a0 as ln,a1 as an,a2 as H,a3 as q,a4 as B,a5 as un,a6 as y,a7 as tn,a8 as L,a9 as _,aa as rn,ab as o,ac as on,ad as sn,ae as fn}from"./mermaid.core-BLh1mA7k.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,C,a){var O=I-l,i=D-h,n=C-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 W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(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)*L(on(0,T*T*R-P*P)),j=(P*g-m*S)/R,z=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=yn,I=B(0),D=null,v=gn,A=dn,C=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,F=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(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>y&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>y){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(S=0,m=g=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>y){var U=s*H(g),V=s*q(g),X=u*H(R),Y=u*q(R),E;if(F<an)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(fn((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(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=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,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(J,K),a.arc(0,0,s,m,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,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[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};