kennel 0.2.11 → 0.2.13

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 (173) hide show
  1. package/dist/cli/src/plugins/external.js +19 -7
  2. package/dist/cli/src/site/server-plugins.d.ts +1 -4
  3. package/dist/core/api-client.js +3 -11
  4. package/dist/core/runtime.js +84 -695
  5. package/dist/package/preview.js +99 -729
  6. package/dist/plugins/external.js +19 -7
  7. package/dist/site/server-plugins.d.ts +1 -4
  8. package/dist/site/server-plugins.js +28 -537
  9. package/kernel/apps/web/package.json +0 -1
  10. package/kernel/apps/web/src/app.css +0 -1
  11. package/kernel/apps/web/src/app.tsx +7 -24
  12. package/kernel/apps/web/src/folder-plugin-view.tsx +6 -3
  13. package/kernel/apps/web/src/plugins.ts +2 -14
  14. package/kernel/apps/web/vite.config.ts +22 -20
  15. package/kernel/packages/api/openapi.json +85 -224
  16. package/kernel/packages/api/package.json +0 -1
  17. package/kernel/packages/api/src/contracts/schemas.ts +1 -9
  18. package/kernel/packages/api/src/server/folder-metadata-plugin.ts +9 -151
  19. package/kernel/packages/api/src/server/plugins.ts +11 -26
  20. package/kernel/packages/api/src/shared/viewer-route.ts +3 -5
  21. package/kernel/packages/api-client/src/generated.d.ts +16 -53
  22. package/kernel/packages/markdown/README.md +2 -2
  23. package/kernel/packages/notes/package.json +1 -0
  24. package/kernel/packages/notes/src/client.tsx +0 -1
  25. package/kernel/packages/notes/src/manifest.ts +7 -0
  26. package/kernel/packages/notes/src/pages/notes-page.tsx +1 -1
  27. package/kernel/packages/notes/src/ui/folder-notes-list.tsx +52 -7
  28. package/kernel/packages/plugins/SKILL.md +3 -2
  29. package/kernel/packages/plugins/package.json +5 -1
  30. package/kernel/packages/plugins/src/hooks.ts +24 -0
  31. package/kernel/packages/plugins/src/index.ts +1 -7
  32. package/kernel/packages/plugins/src/page.ts +0 -7
  33. package/kernel/packages/plugins/src/types.ts +8 -0
  34. package/kernel/packages/plugins/tsconfig.json +1 -1
  35. package/kernel/packages/plugins/tsup.config.ts +1 -0
  36. package/kernel/packages/ui/src/components/folder-activity.tsx +16 -98
  37. package/kernel/packages/ui/src/components/folder-landing.tsx +4 -0
  38. package/kernel/packages/ui/src/components/markdown-copy-block.tsx +78 -0
  39. package/kernel/packages/ui/src/components/pagination.tsx +88 -2
  40. package/kernel/packages/ui/src/components/plugin-icon.tsx +19 -0
  41. package/kernel/packages/ui/src/lib/folder-activity.ts +4 -17
  42. package/kernel/packages/ui/src/lib/source-components.tsx +12 -6
  43. package/kernel/packages/ui/src/styles/folder-activity.css +1 -31
  44. package/package.json +2 -2
  45. package/web/assets/{abnfDiagram-VRR7QNED-CSaxgLw6.js → abnfDiagram-VRR7QNED-Dt7QEF5H.js} +1 -1
  46. package/web/assets/app-C1j063QX.js +2 -0
  47. package/web/assets/app-options-98-a6ivv.js +25 -0
  48. package/web/assets/{app-view-header-Cpx74SQs.js → app-view-header-BJ9CWTE1.js} +1 -1
  49. package/web/assets/{arc-DOrTJz--.js → arc-PFB0H7oD.js} +1 -1
  50. package/web/assets/{architectureDiagram-ZJ3FMSHR-EjOjwlGK.js → architectureDiagram-ZJ3FMSHR-BHLqEXlZ.js} +1 -1
  51. package/web/assets/{ask-tray-DLEoRbpV.js → ask-tray-C3gBesHJ.js} +1 -1
  52. package/web/assets/{blockDiagram-677ZJIJ3-Dg2LWLOW.js → blockDiagram-677ZJIJ3-UbnYoYDg.js} +1 -1
  53. package/web/assets/{button-C6arH7zt.js → button-CuuAtS1I.js} +1 -1
  54. package/web/assets/{c4Diagram-LMCZKHZV-CWHqGPk8.js → c4Diagram-LMCZKHZV-4OSx1V4W.js} +1 -1
  55. package/web/assets/channel-BuvY5cQN.js +1 -0
  56. package/web/assets/{chunk-2Q5K7J3B-Dzz0QWV_.js → chunk-2Q5K7J3B-CgxJ1aJb.js} +1 -1
  57. package/web/assets/{chunk-32BRIVSS-BocStooX.js → chunk-32BRIVSS-Bfwxg2LM.js} +1 -1
  58. package/web/assets/{chunk-5VM5RSS4-D8BF5Y5h.js → chunk-5VM5RSS4-BZN9a2hI.js} +1 -1
  59. package/web/assets/{chunk-EX3LRPZG-CWMl9KkL.js → chunk-EX3LRPZG-CrH6hhqq.js} +1 -1
  60. package/web/assets/{chunk-JWPE2WC7-BZEr7iFk.js → chunk-JWPE2WC7-Ddn7ZSp8.js} +1 -1
  61. package/web/assets/{chunk-MOJQB5TN-DbKnLJ33.js → chunk-MOJQB5TN-9lJ7f_hI.js} +1 -1
  62. package/web/assets/{chunk-RYQCIY6F-BF9KWoi2.js → chunk-RYQCIY6F-QrFo_00s.js} +1 -1
  63. package/web/assets/{chunk-V7JOEXUC-e88zamUH.js → chunk-V7JOEXUC-Dn0lQjVf.js} +1 -1
  64. package/web/assets/{chunk-VR4S4FIN-NDHM58HJ.js → chunk-VR4S4FIN-DXVPySkB.js} +1 -1
  65. package/web/assets/{chunk-XXDRQBXY-BtzSzNoD.js → chunk-XXDRQBXY-CBiFDOdZ.js} +1 -1
  66. package/web/assets/classDiagram-OUVF2IWQ-DCYNCJhe.js +1 -0
  67. package/web/assets/classDiagram-v2-EOCWNBFH-DCYNCJhe.js +1 -0
  68. package/web/assets/client-DBJY3XDL.js +43 -0
  69. package/web/assets/client-DKJs0w4y.js +6 -0
  70. package/web/assets/{command-BWtewOrt.js → command-onjTnuXT.js} +1 -1
  71. package/web/assets/{copy-context-YESgZ_hu.js → copy-context-CciRaLNN.js} +1 -1
  72. package/web/assets/{cose-bilkent-JH36ORCC-i7x8jZ9M.js → cose-bilkent-JH36ORCC-CGRic2um.js} +1 -1
  73. package/web/assets/{cynefin-VYW2F7L2-D8HPrHMt.js → cynefin-VYW2F7L2-Blk0Lu0l.js} +1 -1
  74. package/web/assets/{cynefinDiagram-TSTJHNR4-BtkeCNXb.js → cynefinDiagram-TSTJHNR4-DpnnHRDK.js} +1 -1
  75. package/web/assets/{dagre-VKFMJZFB-oIThwshO.js → dagre-VKFMJZFB-llzMokKp.js} +1 -1
  76. package/web/assets/{diagram-FQU43EPY-DTuhEo03.js → diagram-FQU43EPY-DC6xHovR.js} +1 -1
  77. package/web/assets/{diagram-G47NLZAW-BcQ_4_fE.js → diagram-G47NLZAW-B8GVS3EA.js} +1 -1
  78. package/web/assets/{diagram-NH7WQ7WH-BA4VC8Du.js → diagram-NH7WQ7WH-DWUaARfh.js} +1 -1
  79. package/web/assets/{diagram-OA4YK3LP-BOpyrmty.js → diagram-OA4YK3LP-9Uaes_Yi.js} +1 -1
  80. package/web/assets/{diagram-WEI45ONY-BzrSPDJ7.js → diagram-WEI45ONY-DPPTBWud.js} +1 -1
  81. package/web/assets/document-D23WzFsW.js +23 -0
  82. package/web/assets/{ebnfDiagram-CCIWWBDH-BNV_4xDp.js → ebnfDiagram-CCIWWBDH-BPrKneNw.js} +1 -1
  83. package/web/assets/{entities-D0qpC3B9.js → entities-DPg0B8vd.js} +1 -1
  84. package/web/assets/{erDiagram-Q63AITRT-NT1La9pi.js → erDiagram-Q63AITRT-CFqYBcnb.js} +1 -1
  85. package/web/assets/{file-viewer-C1N6vaip.js → file-viewer-Ck73SsLA.js} +1 -1
  86. package/web/assets/{flowDiagram-23GEKE2U-CIYWUYkz.js → flowDiagram-23GEKE2U-C7RpYqaT.js} +1 -1
  87. package/web/assets/folder-filter-bar-DzejUj87.js +4 -0
  88. package/web/assets/{folder-image-Bz0xznQT.js → folder-image-BjIicmQ6.js} +1 -1
  89. package/web/assets/folder-landing-CCIXZfkp.js +55 -0
  90. package/web/assets/folder-list-TuRwuTss.js +1 -0
  91. package/web/assets/folder-mobile-bar-Bqnfwi-z.js +1 -0
  92. package/web/assets/folder-plugin-view-CrinCX1o.js +2 -0
  93. package/web/assets/{ganttDiagram-NO4QXBWP-DeUfoXQA.js → ganttDiagram-NO4QXBWP-Cz2sxU8F.js} +1 -1
  94. package/web/assets/{gitGraphDiagram-IHSO6WYX-DMeTgUPh.js → gitGraphDiagram-IHSO6WYX-BSuz0yF-.js} +1 -1
  95. package/web/assets/{index-CCXE8zc9.js → index-BVyeNcuc.js} +1 -1
  96. package/web/assets/{index-CegvVQ1C.js → index-Cg-gtBkw.js} +1 -1
  97. package/web/assets/index-DLn_2LPp.js +2 -0
  98. package/web/assets/{index-DY0VGBht.js → index-DbVDdnzL.js} +1 -1
  99. package/web/assets/index-uY9jLiL5.css +1 -0
  100. package/web/assets/{infoDiagram-FWYZ7A6U-DI_P8Ghi.js → infoDiagram-FWYZ7A6U-CpeKgqoS.js} +1 -1
  101. package/web/assets/input-Bz_puamS.js +9 -0
  102. package/web/assets/{ishikawaDiagram-FXEZZL3T-B8bM-8CD.js → ishikawaDiagram-FXEZZL3T-5c2Tmknb.js} +1 -1
  103. package/web/assets/{journeyDiagram-5HDEW3XC-pviYejXU.js → journeyDiagram-5HDEW3XC-Cu-wRkR4.js} +1 -1
  104. package/web/assets/{kanban-definition-HUTT4EX6-DfvdDvpU.js → kanban-definition-HUTT4EX6-BunSqkPe.js} +1 -1
  105. package/web/assets/{linear-DNOuKTk_.js → linear-C8e8bGVv.js} +1 -1
  106. package/web/assets/{mermaid.core-CisVJ_Cs.js → mermaid.core-DLgjY1g2.js} +4 -4
  107. package/web/assets/{metadata-C7E_6HIN.js → metadata-DEfJKlnd.js} +1 -1
  108. package/web/assets/{mindmap-definition-LN4V7U3C-DzdcaduN.js → mindmap-definition-LN4V7U3C-W9ENYFOD.js} +1 -1
  109. package/web/assets/{pegDiagram-2B236MQR-D_7xhlXd.js → pegDiagram-2B236MQR-0vPlHCFp.js} +1 -1
  110. package/web/assets/{pieDiagram-ENE6RG2P-CisikHMW.js → pieDiagram-ENE6RG2P-CakaveRV.js} +1 -1
  111. package/web/assets/{popover-D7MTK-sz.js → popover-3AMcPJpt.js} +1 -1
  112. package/web/assets/{project-search-dialog-BsHc39D0.js → project-search-dialog-BSKA4peX.js} +1 -1
  113. package/web/assets/{quadrantDiagram-ABIIQ3AL-D6adg-7z.js → quadrantDiagram-ABIIQ3AL-jxHw_egj.js} +1 -1
  114. package/web/assets/{railroadDiagram-RFXS5EU6-CyPAHeJ-.js → railroadDiagram-RFXS5EU6-lIjDXPZt.js} +1 -1
  115. package/web/assets/{requirementDiagram-TGXJPOKE-CgpSiPTv.js → requirementDiagram-TGXJPOKE-C-JiT4bc.js} +1 -1
  116. package/web/assets/{sankeyDiagram-HTMAVEWB-BxvReW6S.js → sankeyDiagram-HTMAVEWB-SuLPAw9X.js} +1 -1
  117. package/web/assets/{search-DEgwpq-P.js → search-CKujW14f.js} +1 -1
  118. package/web/assets/{selection-popup-d94JnDPy.js → selection-popup-CtxT9SWn.js} +3 -3
  119. package/web/assets/{sequenceDiagram-DBY2YBRQ-uuplzETI.js → sequenceDiagram-DBY2YBRQ-o9UwTkZR.js} +1 -1
  120. package/web/assets/{sizeCapture-X5ZJPWSS-Bi3F7nOa.js → sizeCapture-X5ZJPWSS-ClbWGybF.js} +1 -1
  121. package/web/assets/{stateDiagram-2N3HPSRC-DqypF7lE.js → stateDiagram-2N3HPSRC-Ce4avoWx.js} +1 -1
  122. package/web/assets/stateDiagram-v2-6OUMAXLB-CsrPTZoJ.js +1 -0
  123. package/web/assets/{swimlanes-5IMT3BWC-CGD9YT1l.js → swimlanes-5IMT3BWC-DMZI4XZT.js} +2 -2
  124. package/web/assets/swimlanesDiagram-G3AALYLV-pShSVcTd.js +8 -0
  125. package/web/assets/{timeline-definition-FHXFAJF6-DCjNS9Ol.js → timeline-definition-FHXFAJF6-CPIpIgPN.js} +1 -1
  126. package/web/assets/{utils-DCaHk0Gm.js → utils-Cg80pk1W.js} +1 -1
  127. package/web/assets/{vennDiagram-L72KCM5P-BJ58yQgD.js → vennDiagram-L72KCM5P-_rha8uDZ.js} +1 -1
  128. package/web/assets/view-context-BDtIUHQy.js +229 -0
  129. package/web/assets/{viewer-capabilities-DCuJdf64.js → viewer-capabilities-YYZqMs56.js} +1 -1
  130. package/web/assets/{wardleyDiagram-EHGQE667-BiLuq9mr.js → wardleyDiagram-EHGQE667-D4EAOS35.js} +1 -1
  131. package/web/assets/{xychartDiagram-FW5EYKEG-DzAZpIRG.js → xychartDiagram-FW5EYKEG-DR8PwXpe.js} +1 -1
  132. package/web/index.html +2 -2
  133. package/kernel/packages/agents/eslint.config.js +0 -10
  134. package/kernel/packages/agents/package.json +0 -75
  135. package/kernel/packages/agents/src/agent-card.tsx +0 -334
  136. package/kernel/packages/agents/src/client.tsx +0 -13
  137. package/kernel/packages/agents/src/index.ts +0 -18
  138. package/kernel/packages/agents/src/manifest.ts +0 -7
  139. package/kernel/packages/agents/src/node.ts +0 -447
  140. package/kernel/packages/agents/src/profiles.ts +0 -137
  141. package/kernel/packages/agents/src/resolve.ts +0 -69
  142. package/kernel/packages/agents/src/server.ts +0 -60
  143. package/kernel/packages/agents/src/types.ts +0 -82
  144. package/kernel/packages/agents/src/viewer.tsx +0 -370
  145. package/kernel/packages/agents/test/profiles.test.mjs +0 -88
  146. package/kernel/packages/agents/test/resolve.test.mjs +0 -729
  147. package/kernel/packages/agents/tsconfig.json +0 -17
  148. package/kernel/packages/api/test/agents-loading.test.ts +0 -94
  149. package/kernel/packages/ui/src/components/folder-skill-list.tsx +0 -62
  150. package/web/assets/app-DoXXGPMx.js +0 -2
  151. package/web/assets/app-options-jTBHy0A7.js +0 -25
  152. package/web/assets/channel-54w4vQjC.js +0 -1
  153. package/web/assets/classDiagram-OUVF2IWQ-Bh9Ib2pw.js +0 -1
  154. package/web/assets/classDiagram-v2-EOCWNBFH-Bh9Ib2pw.js +0 -1
  155. package/web/assets/client-BgUDusrU.js +0 -5
  156. package/web/assets/client-COaHUqSC.js +0 -17
  157. package/web/assets/client-UC06V2VL.js +0 -22
  158. package/web/assets/document-BDtU3CbX.js +0 -19
  159. package/web/assets/folder-filter-bar-C_2Mobfq.js +0 -4
  160. package/web/assets/folder-landing-3gqbGaYS.js +0 -54
  161. package/web/assets/folder-list-DDI0TF2e.js +0 -1
  162. package/web/assets/folder-metadata-DjV3ZUra.js +0 -2
  163. package/web/assets/folder-mobile-bar-CF4CpJXL.js +0 -1
  164. package/web/assets/folder-plugin-view-C48J0HKe.js +0 -3
  165. package/web/assets/index-Bp9DidgD.js +0 -1
  166. package/web/assets/index-CXhBn-ar.js +0 -1
  167. package/web/assets/index-CtuOSBHa.js +0 -2
  168. package/web/assets/index-Dwhf8F_U.css +0 -1
  169. package/web/assets/select-DGaccqVB.js +0 -30
  170. package/web/assets/stateDiagram-v2-6OUMAXLB-EsEb0a5Q.js +0 -1
  171. package/web/assets/swimlanesDiagram-G3AALYLV-DKIYuN5l.js +0 -8
  172. package/web/assets/use-folder-filter-hA6fa7nm.js +0 -1
  173. package/web/assets/view-context-BrzQ7WBV.js +0 -229
@@ -1,6 +1,9 @@
1
1
  import type { ComponentProps } from "react"
2
2
  import { createElement } from "react"
3
3
 
4
+ import type { MarkdownSourceNode } from "@raggle-ai/ui/components/markdown-copy-block"
5
+ import { MarkdownCopyBlock } from "@raggle-ai/ui/components/markdown-copy-block"
6
+
4
7
  export type SelectionLines = { end: number; start: number }
5
8
 
6
9
  function sourceLine(node: Node, which: "end" | "start") {
@@ -54,12 +57,15 @@ export function sourceComponents(offset: number) {
54
57
  return Object.fromEntries(tags.map((tag) => [tag, lineStamper(tag, offset)]))
55
58
  }
56
59
 
57
- /**
58
- * Non-heading source stamps merged with Barkdown heading copy behavior in
59
- * `file-renderer`. Heading tags stay unstamped so Barkdown's heading-copy
60
- * wrapper (hashtag path:line button) keeps rendering them.
61
- */
60
+ /** Plain-text copy buttons for body blocks; BarkDown owns heading references. */
62
61
  export function sourceBlockComponents(offset: number) {
63
62
  const tags = ["p", "li", "blockquote", "td", "th"] as const
64
- return Object.fromEntries(tags.map((tag) => [tag, lineStamper(tag, offset)]))
63
+ return Object.fromEntries(
64
+ tags.map((tag) => [
65
+ tag,
66
+ (props: ComponentProps<"p"> & { node?: MarkdownSourceNode }) => (
67
+ <MarkdownCopyBlock {...props} tag={tag} offset={offset} />
68
+ ),
69
+ ]),
70
+ )
65
71
  }
@@ -965,8 +965,7 @@
965
965
  color: #747c75;
966
966
  }
967
967
 
968
- .landing-sessions li,
969
- .landing-skills li {
968
+ .landing-sessions li {
970
969
  display: grid;
971
970
  grid-template-columns: minmax(0, 1fr) 36px;
972
971
  }
@@ -975,35 +974,6 @@
975
974
  grid-template-columns: 24px auto minmax(0, 1fr) auto;
976
975
  }
977
976
 
978
- .landing-skills .landing-list-row {
979
- grid-template-columns: minmax(100px, 190px) minmax(0, 1fr) auto;
980
- min-height: 32px;
981
- padding-block: 6px;
982
- }
983
-
984
- .landing-skills strong {
985
- min-width: 0;
986
- color: #363d37;
987
- font-size: 13px;
988
- font-weight: 450;
989
- }
990
-
991
- .landing-skills span {
992
- overflow: hidden;
993
- min-width: 0;
994
- color: #9aa09a;
995
- font-size: 12px;
996
- text-overflow: ellipsis;
997
- white-space: nowrap;
998
- }
999
-
1000
- .landing-skills small {
1001
- margin-top: 0;
1002
- color: #8d948e;
1003
- font-size: 12px;
1004
- text-align: right;
1005
- }
1006
-
1007
977
  .landing-sessions li.is-resumable {
1008
978
  grid-template-columns: minmax(0, 1fr) 44px;
1009
979
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kennel",
3
- "version": "0.2.11",
3
+ "version": "0.2.13",
4
4
  "description": "Open-source pop-up previews for AI output: markdown, HTML artifacts, email, images, code, tables, notes, and calendars, from the terminal or your agent session.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -116,7 +116,7 @@
116
116
  },
117
117
  "devDependencies": {
118
118
  "@raggle-ai/kennel-preview": "0.1.0",
119
- "kennel-plugins": "0.1.2",
119
+ "kennel-plugins": "0.1.4",
120
120
  "@types/node": "^22.13.4",
121
121
  "typescript": "^5.9.3"
122
122
  },
@@ -1 +1 @@
1
- import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-DbKnLJ33.js";import{p as f}from"./chunk-JWPE2WC7-BZEr7iFk.js";import{_ as n,l as o}from"./mermaid.core-CisVJ_Cs.js";import{b as c,M as d}from"./cynefin-VYW2F7L2-D8HPrHMt.js";import"./index-CtuOSBHa.js";import"./react-B9jn2M18.js";import"./markdown-Bw9RgUGR.js";var v=c().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 d(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}},I={parser:R,db:a,renderer:u,styles:p};export{I as diagram};
1
+ import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-9lJ7f_hI.js";import{p as f}from"./chunk-JWPE2WC7-Ddn7ZSp8.js";import{_ as n,l as o}from"./mermaid.core-DLgjY1g2.js";import{b as c,M as d}from"./cynefin-VYW2F7L2-Blk0Lu0l.js";import"./index-DLn_2LPp.js";import"./react-B9jn2M18.js";import"./markdown-Bw9RgUGR.js";var v=c().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 d(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}},I={parser:R,db:a,renderer:u,styles:p};export{I as diagram};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ask-tray-C3gBesHJ.js","assets/react-B9jn2M18.js","assets/markdown-Bw9RgUGR.js","assets/view-context-BDtIUHQy.js","assets/index-DLn_2LPp.js","assets/index-uY9jLiL5.css","assets/tanstack-YzX_Mi37.js","assets/button-CuuAtS1I.js","assets/utils-Cg80pk1W.js","assets/folder-plugin-view-CrinCX1o.js","assets/folder-filter-bar-DzejUj87.js","assets/command-onjTnuXT.js","assets/index-BVyeNcuc.js","assets/index-Cg-gtBkw.js","assets/popover-3AMcPJpt.js","assets/index-DbVDdnzL.js","assets/folder-image-BjIicmQ6.js","assets/viewer-capabilities-YYZqMs56.js","assets/entities-DPg0B8vd.js","assets/search-CKujW14f.js","assets/search-BOHZTLC-.css","assets/folder-landing-CCIXZfkp.js","assets/copy-context-CciRaLNN.js","assets/folder-list-TuRwuTss.js","assets/app-options-98-a6ivv.js","assets/folder-activity-Cv1X2ezj.js","assets/folder-mobile-bar-Bqnfwi-z.js","assets/app-view-header-BJ9CWTE1.js","assets/file-viewer-Ck73SsLA.js","assets/metadata-DEfJKlnd.js","assets/project-search-dialog-BSKA4peX.js","assets/client-DBJY3XDL.js","assets/input-Bz_puamS.js","assets/client-DKJs0w4y.js"])))=>i.map(i=>d[i]);
2
+ import{_ as g,i as ne,f as S,c as re,e as ae,p as T,l as be,g as je,r as _e,b as Re}from"./index-DLn_2LPp.js";import{c as s,j as n}from"./react-B9jn2M18.js";import{m as j,c as f}from"./tanstack-YzX_Mi37.js";import{u as Ee,b as Ie,q as ke,L as Se,T as Te,v as Q,V as De,i as se,s as ie,a as z,t as ce,e as Ae,g as Fe,h as I,j as q,k as Oe}from"./view-context-BDtIUHQy.js";async function Le(e,t,o={}){const c=new URL(e,window.location.origin),d=new URL("/api/metadata",window.location.origin),i=c.pathname.split("/").filter(Boolean),l=i[0]==="folder"?i[1]:void 0,a=c.searchParams.get("folder");if(a)d.searchParams.set("path",a);else if(l){const m=l.replaceAll("-","+").replaceAll("_","/"),P=m.padEnd(Math.ceil(m.length/4)*4,"="),y=atob(P),L=Uint8Array.from(y,N=>N.charCodeAt(0));d.searchParams.set("path",new TextDecoder().decode(L))}d.searchParams.set("part",t),o.notesScope&&d.searchParams.set("notesScope",o.notesScope);const u=await fetch(d,{headers:o.headers,signal:o.signal});if(!u.ok)throw new Error(await u.text());return await u.json()}function O(e){const t=new TextEncoder().encode(e);let o="";for(const c of t)o+=String.fromCharCode(c);return btoa(o).replaceAll("+","-").replaceAll("/","_").replaceAll("=","")}function Ne(e){const t=new URL(e,window.location.origin),o=t.pathname.split("/").filter(Boolean),c=o.indexOf("folder"),d=c>=0?o[c+1]:void 0;let i=t.searchParams.get("folder")??void 0;if(!i&&d){const l=d.replaceAll("-","+").replaceAll("_","/"),a=l.padEnd(Math.ceil(l.length/4)*4,"="),u=atob(a),m=Uint8Array.from(u,P=>P.charCodeAt(0));i=new TextDecoder().decode(m)}return{folder:i}}function _t(e,t){return`/folder/${O(e)}/${t}`}function Rt(e,t){return`/folder/${O(e)}/document/${O(t)}`}function Ce(e,t=!0){const o=s.useRef(!1),c=Ne(e).folder,d=c?O(c):"none",i=m=>({enabled:t&&!!c,gcTime:5*6e4,queryFn:({signal:P})=>{const y=m==="linked"&&o.current;return y&&(o.current=!1),Le(e,"notes",{headers:y?{"x-kennel-retry-linked":"1"}:void 0,notesScope:m,signal:P})},queryKey:["folder",d,"notes",m],staleTime:15e3}),l=j.useQuery(i("local")),a=j.useQuery(i("linked")),u=s.useMemo(()=>l.data||a.data?[...l.data?.files.items??[],...a.data?.files.items??[]]:void 0,[l.data,a.data]);return{local:l,linked:a,files:u,retryLinked:()=>{o.current=!0,a.refetch()}}}const Ve=s.lazy(async()=>({default:(await g(async()=>{const{AskTray:e}=await import("./ask-tray-C3gBesHJ.js");return{AskTray:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8]))).AskTray}));function $e({folder:e}){const{enabled:t}=Ee(),{draft:o}=Ie(e);return!t&&!o.comments.length&&!o.attachments.length?null:n.jsx(s.Suspense,{fallback:null,children:n.jsx(Ve,{folder:e})})}function Ke(e){const t=e.slice(e.lastIndexOf(".")).toLowerCase();if(t===".htm"||t===".html")return"html";if(t===".md"||t===".markdown")return"markdown";if(t===".text"||t===".txt")return"text"}async function le(e,t=""){const o=[];for await(const c of e.values()){const d=t?`${t}/${c.name}`:c.name;if(c.kind==="directory"){o.push(...await le(c,d));continue}const i=Ke(c.name);if(!i)continue;const l=await c.getFile();o.push({path:d,content:await l.text(),kind:i})}return o}async function He(e){const t=await le(e);return t.sort((o,c)=>o.path.localeCompare(c.path)),{root:e.name,documents:t}}async function qe(e){for(const t of e){if(t.kind!=="file")continue;const o=t.getAsFileSystemHandle;if(!o)throw new Error("This browser cannot read dropped folders.");const c=await o.call(t);if(c?.kind==="directory")return c}throw new Error("Drop one folder to open it.")}const Me="kennel-folder-query-cache",B="queries",Y=1,Qe=10080*60*1e3;function ze(){return new Promise((e,t)=>{const o=indexedDB.open(Me,Y);o.onupgradeneeded=()=>{o.result.createObjectStore(B)},o.onerror=()=>t(o.error),o.onsuccess=()=>e(o.result)})}async function de(e,t){const o=await ze();return new Promise((c,d)=>{const i=o.transaction(B,e),l=t(i.objectStore(B));l.onerror=()=>d(l.error),l.onsuccess=()=>c(l.result),i.oncomplete=()=>o.close(),i.onerror=()=>{o.close(),d(i.error)}})}async function ee(e){const t=await de("readonly",o=>o.get(JSON.stringify(e))).catch(()=>{});if(t?.version===Y&&!(Date.now()-t.savedAt>Qe))return t.data}async function te(e,t){t&&await de("readwrite",o=>o.put({data:t,savedAt:Date.now(),version:Y},JSON.stringify(e))).catch(()=>{})}const Be=[],Ue=[...Be],Ye=new Map(Ue.map(e=>[e.id,e]));function Je(e){return e?Ye.get(e):void 0}const ue=s.lazy(async()=>({default:(await g(async()=>{const{FolderPluginPage:e}=await import("./folder-plugin-view-CrinCX1o.js");return{FolderPluginPage:e}},__vite__mapDeps([9,1,2,6,3,4,5,10,7,8,11,12,13,14,15,16,17]))).FolderPluginPage})),We=s.lazy(async()=>({default:(await g(async()=>{const{EntitySearchPage:e}=await import("./entities-DPg0B8vd.js");return{EntitySearchPage:e}},__vite__mapDeps([18,1,2,6,3,4,5]))).EntitySearchPage})),Ge=s.lazy(async()=>({default:(await g(async()=>{const{ProjectSearchPage:e}=await import("./search-CKujW14f.js");return{ProjectSearchPage:e}},__vite__mapDeps([19,1,2,6,3,4,5,20]))).ProjectSearchPage}));function k(){return n.jsx("p",{role:"status",className:"text-muted-foreground p-4 text-sm",children:"Loading page…"})}const D=f.createRootRoute({component:f.Outlet}),oe=s.lazy(async()=>({default:(await g(()=>import("./folder-landing-CCIXZfkp.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,22,12,13,15,23,24,25,16]))).FolderLanding})),Xe=s.lazy(async()=>({default:(await g(()=>import("./folder-mobile-bar-Bqnfwi-z.js"),__vite__mapDeps([26,1,2,24,3,4,5,6,22,7,8,12,15,27,16,14]))).FolderMobileBar})),Ze=s.lazy(async()=>({default:(await g(()=>import("./file-viewer-Ck73SsLA.js"),__vite__mapDeps([28,1,2,3,4,5,6,29]))).FileViewer})),et=s.lazy(async()=>({default:(await g(()=>import("./project-search-dialog-BSKA4peX.js"),__vite__mapDeps([30,1,2,6,3,4,5,11,12,8,13]))).ProjectSearchDialog})),tt=s.lazy(async()=>{const e=await g(()=>import("./client-DBJY3XDL.js"),__vite__mapDeps([31,1,2,6,24,3,4,5,22,7,8,12,15,27,16,14,23,32]));return{default:function(){const o=f.useLocation(),c=`${window.location.origin}${o.href}`;return n.jsx(e.CollectionPage,{href:c,request:(d,i,l)=>z.metadata(d,i,l),subscribeApiEvent:ie,parseRoute:T,collectionHref:ae,documentHref:re,folderHref:U,homeHref:d=>S(d,"notes"),openFolder:d=>{z.openPath(d).catch(i=>ce.error(i instanceof Error?i.message:"Could not open the default app."))}})}}}),ot=s.lazy(async()=>({default:(await g(()=>import("./client-DKJs0w4y.js"),__vite__mapDeps([33,1,2,10,3,4,5,6,7,8,11,12,13,14,15,32,22,25]))).NotesPage})),nt=f.createRoute({getParentRoute:()=>D,path:"/",component:fe}),E=f.createRoute({getParentRoute:()=>D,path:"folder/$folderId",component:fe}),rt=f.createRoute({getParentRoute:()=>E,path:"views/$pluginId",component:ue}),at=f.createRoute({getParentRoute:()=>E,path:"views/$pluginId/$subpath",component:ue}),st=f.createRoute({getParentRoute:()=>E,path:"collections/$collectionId",component:()=>n.jsx(s.Suspense,{fallback:n.jsx("p",{role:"status",children:"Loading collection…"}),children:n.jsx(tt,{})})}),it=f.createRoute({getParentRoute:()=>E,path:"notes",component:ot}),ct=f.createRoute({getParentRoute:()=>E,path:"projects"}),lt=f.createRoute({getParentRoute:()=>D,path:"entities",component:We}),dt=f.createRoute({getParentRoute:()=>D,path:"search",component:Ge}),ut=D.addChildren([nt,lt,dt,E.addChildren([it,st,rt,at,ct])]),ft=f.createRouter({routeTree:ut});function pt(){const e=T(window.location.href).folder;return e?S(e,"notes"):"/"}function U(e){return S(e,"notes")}function mt(e){const t=T(window.location.href).folder;return t?re(t,e):e}function ht(e){const t=T(window.location.href).folder;return t?e==="files"?S(t,"notes"):S(t,e):"/"}function yt(e){const t=T(window.location.href).folder;return t?Re(t,e):"/"}function gt({href:e,...t}){return!e?.startsWith("/")||ne(e)?n.jsx("a",{href:e,...t}):n.jsx(f.Link,{to:e,...t})}function wt(){return n.jsx(j.QueryClientProvider,{client:ke,children:n.jsxs(Se,{component:gt,children:[n.jsx(s.Suspense,{fallback:n.jsx(k,{}),children:n.jsx(f.RouterProvider,{router:ft})}),n.jsx(Te,{})]})})}const M={discovery:Number.POSITIVE_INFINITY,identity:Number.POSITIVE_INFINITY,plugins:Number.POSITIVE_INFINITY};function b(e,t){return["folder",e,t]}function fe(){const e=f.useLocation(),t=`${window.location.origin}${e.href}`,o=Q(t);return n.jsx(De,{kind:"folder",folder:se(t)?void 0:o.folder,children:n.jsx(vt,{})})}function vt(){const e=Ae(),t=be(window.location.href);t&&window.history.replaceState(null,"",t);const o=j.useQueryClient(),c=f.useNavigate(),d=f.useLocation(),i=`${window.location.origin}${d.href}`,l=se(i),a=Q(i),u=a.folder?je(a.folder):"none",[m,P]=s.useState(()=>window.matchMedia("(max-width: 767px)").matches),[y,L]=s.useState(),[N,C]=s.useState(!1),[J,W]=s.useState(!1),[pe,me]=s.useState(!1),G=pe&&!a.document,A=s.useRef(0),_=!l&&!y,R=_&&!!a.folder,he=b(u,"identity"),ye=b(u,"discovery");Fe(i,_);const ge=s.useMemo(()=>y?{read:async()=>y}:l?{read:I.read}:{...I},[y,l]),v=j.useQuery({enabled:!!R,gcTime:Number.POSITIVE_INFINITY,queryFn:({signal:r})=>q(i,"identity",{signal:r}),queryKey:he,staleTime:M.identity}),h=j.useQuery({enabled:!!(R&&a.section==="projects"),gcTime:Number.POSITIVE_INFINITY,queryFn:({signal:r})=>q(i,"discovery",{signal:r}),queryKey:ye,staleTime:M.discovery}),X=j.useQuery({enabled:!!R,gcTime:Number.POSITIVE_INFINITY,queryFn:({signal:r})=>q(i,"plugins",{signal:r}),queryKey:b(u,"plugins"),staleTime:M.plugins}),Z=Ce(i,R&&a.section==="notes"),x=s.useMemo(()=>{if(v.data)return{assets:{...h.data?.assets,...v.data.assets},files:{items:Z.files??[]},folder:v.data.folder,iconAssetKey:v.data.iconAssetKey,plugins:X.data?.plugins??{items:[]},projects:h.data?.projects??{items:[]},workspace:e.workspace??h.data?.workspace,sessions:{items:[]}}},[h.data,v.data,Z.files,X.data,e.workspace]),V=v.error??(a.section==="projects"?h.error:void 0)??void 0,we=V?V instanceof Error?V.message:"Could not load folder activity.":"",ve=(x?.folder??y?.root??a.folder??"Kennel").replace(/\/+$/,"").split("/").pop()??"Kennel",Pe=x?.iconAssetKey?x.assets[x.iconAssetKey]:void 0;s.useEffect(()=>{const r=window.matchMedia("(max-width: 767px)"),p=()=>P(r.matches);return r.addEventListener("change",p),()=>r.removeEventListener("change",p)},[]),s.useEffect(()=>ie("kennel:metadata-changed",()=>{o.invalidateQueries({queryKey:["folder",u]})}),[u,o]),s.useEffect(()=>Oe("kennel:linked-folders-changed",a.folder,()=>{for(const r of[["notes","linked"],["plugins"]])o.invalidateQueries({queryKey:["folder",u,...r]},{cancelRefetch:!1})}),[u,a.folder,o]),s.useEffect(()=>{if(!R)return;const r=b(u,"identity"),p=b(u,"discovery");ee(r).then(w=>{w&&!o.getQueryData(r)&&o.setQueryData(r,w)}),ee(p).then(w=>{w&&!o.getQueryData(p)&&o.setQueryData(p,w)})},[u,R,o]),s.useEffect(()=>{te(b(u,"identity"),v.data)},[u,v.data]),s.useEffect(()=>{te(b(u,"discovery"),h.data)},[h.data,u]);const xe=r=>{const p=new URL(r,window.location.origin);Q(p.href),c({to:`${p.pathname}${p.search}`})},$=a.view||a.collectionId||a.section==="notes"?n.jsx(s.Suspense,{fallback:n.jsx(k,{}),children:n.jsx(f.Outlet,{})}):a.section==="projects"&&!h.data&&(h.isPending||h.error)?n.jsx("div",{className:"p-4",role:h.error?"alert":"status",children:h.error?n.jsxs(n.Fragment,{children:["Projects could not load."," ",n.jsx("button",{onClick:()=>{h.refetch()},children:"Retry projects"})]}):"Loading projects…"}):null,F=!!a.collectionId,K=Je(a.view?.pluginId),H={data:x,collectionId:a.collectionId,collectionHref:r=>a.folder?ae(a.folder,r):"/",documentHref:mt,error:we,folder:a.folder,folderHref:U,onFindProject:()=>W(!0),onOpenFolder:()=>{I.openRoot?.()},onOpenPath:r=>{z.openPath(r).catch(p=>ce.error(p instanceof Error?p.message:"Could not open the default app."))},pluginHref:yt,tab:_e(a),tabHref:ht,view:a.view,viewNavigation:K?{icon:K.icon,label:K.label}:void 0};return n.jsxs("div",{className:"folder-drop-zone","data-mobile-landing":_&&m?"true":void 0,onClickCapture:r=>{if(r.defaultPrevented||r.button!==0||r.metaKey||r.ctrlKey||r.shiftKey||r.altKey||!(r.target instanceof Element))return;const w=r.target.closest("a[href]")?.getAttribute("href");if(w?.startsWith("/folder/")&&!ne(w)){r.preventDefault(),xe(w);return}},onDragEnter:r=>{l||[...r.dataTransfer.items].some(p=>p.kind==="file")&&(r.preventDefault(),A.current+=1,C(!0))},onDragLeave:()=>{A.current-=1,A.current<=0&&C(!1)},onDragOver:r=>{l||(r.preventDefault(),r.dataTransfer.dropEffect="copy")},onDrop:r=>{l||(r.preventDefault(),A.current=0,C(!1),qe(r.dataTransfer.items).then(He).then(p=>{window.history.replaceState(null,"",window.location.pathname),L(p)}))},children:[F?null:n.jsx(s.Suspense,{fallback:null,children:n.jsx(Xe,{canOpen:!l&&!y,homeHref:pt(),icon:Pe,name:ve,folder:x?.folder??a.folder,folderHref:U,collectionHref:H.collectionHref,workspace:e.workspace??x?.workspace,onOpen:()=>{if(m){me(!0);return}I.openRoot?.()},onOpenFolder:()=>{I.openRoot?.()}})}),_&&F?n.jsx(s.Suspense,{fallback:n.jsx(k,{}),children:$}):null,_&&!F&&!m?n.jsx(s.Suspense,{fallback:n.jsx(k,{}),children:n.jsx(oe,{...H,children:$})}):null,_&&!F&&m?n.jsx("div",{className:"mobile-landing-content",children:n.jsx(s.Suspense,{fallback:n.jsx(k,{}),children:n.jsx(oe,{...H,children:$})})}):null,G?n.jsx(s.Suspense,{fallback:null,children:n.jsx(Ze,{source:ge})}):null,a.folder&&!G?n.jsx($e,{folder:a.folder},a.folder):null,N?n.jsx("div",{className:"folder-drop-overlay",children:"Drop folder to open"}):null,J?n.jsx(s.Suspense,{fallback:null,children:n.jsx(et,{open:J,onOpenChange:W})}):null]})}const Et=Object.freeze(Object.defineProperty({__proto__:null,App:wt},Symbol.toStringTag,{value:"Module"}));export{_t as a,Rt as b,Et as c,O as f,Je as g,Ne as p,Ce as u};
@@ -0,0 +1,25 @@
1
+ var Ae=o=>{throw TypeError(o)};var Fe=(o,e,t)=>e.has(o)||Ae("Cannot "+t);var T=(o,e,t)=>(Fe(o,e,"read from private field"),t?t.call(o):e.get(o)),Ne=(o,e,t)=>e.has(o)?Ae("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,t),me=(o,e,t,n)=>(Fe(o,e,"write to private field"),n?n.call(o,t):e.set(o,t),t);import{c as i,j as c,R as Ct}from"./react-B9jn2M18.js";import{l as z}from"./view-context-BDtIUHQy.js";import{c as It}from"./copy-context-CciRaLNN.js";import{u as K,c as re,a as Y}from"./utils-Cg80pk1W.js";import{c as ce,g as $e,j as ze,P as q,b as y,i as ge,u as wt,a as be,h as Mt,f as bt,R as Rt,F as yt,D as St,d as _t,k as Dt}from"./index-BVyeNcuc.js";import{c as Ue,C as Et,A as Pt,R as jt}from"./index-DbVDdnzL.js";var Ot=Object.defineProperty,j=(o,e)=>Ot(o,"name",{value:e,configurable:!0});function Re(o){const e=o+"CollectionProvider",[t,n]=ce(e),[s,r]=t(e,{collectionRef:{current:null},itemMap:new Map}),a=j(h=>{const{scope:R,children:D}=h,C=i.useRef(null),g=i.useRef(new Map).current;return c.jsx(s,{scope:R,itemMap:g,collectionRef:C,children:D})},"CollectionProvider");a.displayName=e;const u=o+"CollectionSlot",p=re(u),l=i.forwardRef((h,R)=>{const{scope:D,children:C}=h,g=r(u,D),b=K(R,g.collectionRef);return c.jsx(p,{ref:b,children:C})});l.displayName=u;const v=o+"CollectionItemSlot",d="data-radix-collection-item",f=re(v),w=i.forwardRef((h,R)=>{const{scope:D,children:C,...g}=h,b=i.useRef(null),_=K(R,b),S=r(v,D);return i.useEffect(()=>(S.itemMap.set(b,{ref:b,...g}),()=>{S.itemMap.delete(b)})),c.jsx(f,{[d]:"",ref:_,children:C})});w.displayName=v;function x(h){const R=r(o+"CollectionConsumer",h);return i.useCallback(()=>{const C=R.collectionRef.current;if(!C)return[];const g=Array.from(C.querySelectorAll(`[${d}]`));return Array.from(R.itemMap.values()).sort((S,k)=>g.indexOf(S.ref.current)-g.indexOf(k.ref.current))},[R.collectionRef,R.itemMap])}return j(x,"useCollection"),[{Provider:a,Slot:l,ItemSlot:w},x,n]}j(Re,"createCollection");var Le=new WeakMap,P,F,he=(F=class extends Map{constructor(t){super(t);Ne(this,P);me(this,P,[...super.keys()]),Le.set(this,!0)}set(t,n){return Le.get(this)&&(this.has(t)?T(this,P)[T(this,P).indexOf(t)]=t:T(this,P).push(t)),super.set(t,n),this}insert(t,n,s){const r=this.has(n),a=T(this,P).length,u=ye(t);let p=u>=0?u:a+u;const l=p<0||p>=a?-1:p;if(l===this.size||r&&l===this.size-1||l===-1)return this.set(n,s),this;const v=this.size+(r?0:1);u<0&&p++;const d=[...T(this,P)];let f,w=!1;for(let x=p;x<v;x++)if(p===x){let h=d[x];d[x]===n&&(h=d[x+1]),r&&this.delete(n),f=this.get(h),this.set(n,s)}else{!w&&d[x-1]===n&&(w=!0);const h=d[w?x:x-1],R=f;f=this.get(h),this.delete(h),this.set(h,R)}return this}with(t,n,s){const r=new F(this);return r.insert(t,n,s),r}before(t){const n=T(this,P).indexOf(t)-1;if(!(n<0))return this.entryAt(n)}setBefore(t,n,s){const r=T(this,P).indexOf(t);return r===-1?this:this.insert(r,n,s)}after(t){let n=T(this,P).indexOf(t);if(n=n===-1||n===this.size-1?-1:n+1,n!==-1)return this.entryAt(n)}setAfter(t,n,s){const r=T(this,P).indexOf(t);return r===-1?this:this.insert(r+1,n,s)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return me(this,P,[]),super.clear()}delete(t){const n=super.delete(t);return n&&T(this,P).splice(T(this,P).indexOf(t),1),n}deleteAt(t){const n=this.keyAt(t);return n!==void 0?this.delete(n):!1}at(t){const n=ae(T(this,P),t);if(n!==void 0)return this.get(n)}entryAt(t){const n=ae(T(this,P),t);if(n!==void 0)return[n,this.get(n)]}indexOf(t){return T(this,P).indexOf(t)}keyAt(t){return ae(T(this,P),t)}from(t,n){const s=this.indexOf(t);if(s===-1)return;let r=s+n;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(t,n){const s=this.indexOf(t);if(s===-1)return;let r=s+n;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(t,n){let s=0;for(const r of this){if(Reflect.apply(t,n,[r,s,this]))return r;s++}}findIndex(t,n){let s=0;for(const r of this){if(Reflect.apply(t,n,[r,s,this]))return s;s++}return-1}filter(t,n){const s=[];let r=0;for(const a of this)Reflect.apply(t,n,[a,r,this])&&s.push(a),r++;return new F(s)}map(t,n){const s=[];let r=0;for(const a of this)s.push([a[0],Reflect.apply(t,n,[a,r,this])]),r++;return new F(s)}reduce(...t){const[n,s]=t;let r=0,a=s??this.at(0);for(const u of this)r===0&&t.length===1?a=u:a=Reflect.apply(n,this,[a,u,r,this]),r++;return a}reduceRight(...t){const[n,s]=t;let r=s??this.at(-1);for(let a=this.size-1;a>=0;a--){const u=this.at(a);a===this.size-1&&t.length===1?r=u:r=Reflect.apply(n,this,[r,u,a,this])}return r}toSorted(t){const n=[...this.entries()].sort(t);return new F(n)}toReversed(){const t=new F;for(let n=this.size-1;n>=0;n--){const s=this.keyAt(n),r=this.get(s);t.set(s,r)}return t}toSpliced(...t){const n=[...this.entries()];return n.splice(...t),new F(n)}slice(t,n){const s=new F;let r=this.size-1;if(t===void 0)return s;t<0&&(t=t+this.size),n!==void 0&&n>0&&(r=n-1);for(let a=t;a<=r;a++){const u=this.keyAt(a),p=this.get(u);s.set(u,p)}return s}every(t,n){let s=0;for(const r of this){if(!Reflect.apply(t,n,[r,s,this]))return!1;s++}return!0}some(t,n){let s=0;for(const r of this){if(Reflect.apply(t,n,[r,s,this]))return!0;s++}return!1}},P=new WeakMap,j(F,"OrderedDict"),F);function ae(o,e){if("at"in Array.prototype)return Array.prototype.at.call(o,e);const t=Be(o,e);return t===-1?void 0:o[t]}j(ae,"at");function Be(o,e){const t=o.length,n=ye(e),s=n>=0?n:t+n;return s<0||s>=t?-1:s}j(Be,"toSafeIndex");function ye(o){return o!==o||o===0?0:Math.trunc(o)}j(ye,"toSafeInteger");function Tt(o){const e=o+"CollectionProvider",[t,n]=ce(e),[s,r]=t(e,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new he,setItemMap:j(()=>{},"setItemMap")}),a=j(({state:g,...b})=>g?c.jsx(p,{...b,state:g}):c.jsx(u,{...b}),"CollectionProvider");a.displayName=e;const u=j(g=>{const b=R();return c.jsx(p,{...g,state:b})},"CollectionInit");u.displayName=e+"Init";const p=j(g=>{const{scope:b,children:_,state:S}=g,k=i.useRef(null),[O,M]=i.useState(null),G=K(k,M),[L,$]=S;return i.useEffect(()=>{if(!O)return;const N=Ye(()=>{});return N.observe(O,{childList:!0,subtree:!0}),()=>{N.disconnect()}},[O]),c.jsx(s,{scope:b,itemMap:L,setItemMap:$,collectionRef:G,collectionRefObject:k,collectionElement:O,children:_})},"CollectionProviderImpl");p.displayName=e+"Impl";const l=o+"CollectionSlot",v=re(l),d=i.forwardRef((g,b)=>{const{scope:_,children:S}=g,k=r(l,_),O=K(b,k.collectionRef);return c.jsx(v,{ref:O,children:S})});d.displayName=l;const f=o+"CollectionItemSlot",w="data-radix-collection-item",x=re(f),h=i.forwardRef((g,b)=>{const{scope:_,children:S,...k}=g,O=i.useRef(null),[M,G]=i.useState(null),L=K(b,O,G),$=r(f,_),{setItemMap:N}=$,V=i.useRef(k);Ve(V.current,k)||(V.current=k);const X=V.current;return i.useEffect(()=>{const Q=X;return N(E=>M?E.has(M)?E.set(M,{...Q,element:M}).toSorted(Ce):(E.set(M,{...Q,element:M}),E.toSorted(Ce)):E),()=>{N(E=>!M||!E.has(M)?E:(E.delete(M),new he(E)))}},[M,X,N]),c.jsx(x,{[w]:"",ref:L,children:S})});h.displayName=f;function R(){return i.useState(new he)}j(R,"useInitCollection");function D(g){const{itemMap:b}=r(o+"CollectionConsumer",g);return b}return j(D,"useCollection"),[{Provider:a,Slot:d,ItemSlot:h},{createCollectionScope:n,useCollection:D,useInitCollection:R}]}j(Tt,"createCollection");function Ve(o,e){if(o===e)return!0;if(typeof o!="object"||typeof e!="object"||o==null||e==null)return!1;const t=Object.keys(o),n=Object.keys(e);if(t.length!==n.length)return!1;for(const s of t)if(!Object.prototype.hasOwnProperty.call(e,s)||o[s]!==e[s])return!1;return!0}j(Ve,"shallowEqual");function He(o,e){return!!(e.compareDocumentPosition(o)&Node.DOCUMENT_POSITION_PRECEDING)}j(He,"isElementPreceding");function Ce(o,e){return!o[1].element||!e[1].element?0:He(o[1].element,e[1].element)?-1:1}j(Ce,"sortByDocumentPosition");function Ye(o){return new MutationObserver(t=>{for(const n of t)if(n.type==="childList"){o();return}})}j(Ye,"getChildListObserver");var kt=Object.defineProperty,At=(o,e)=>kt(o,"name",{value:e,configurable:!0}),Ft=i.createContext(void 0);function Se(o){const e=i.useContext(Ft);return o||e||"ltr"}At(Se,"useDirection");var Nt=Object.defineProperty,_e=(o,e)=>Nt(o,"name",{value:e,configurable:!0}),ve=!1;function Xe(){const[o,e]=i.useState(ve);return i.useEffect(()=>{ve||(ve=!0,e(!0))},[]),o}_e(Xe,"useIsHydrated");var We=Ct[" useSyncExternalStore ".trim().toString()];function qe(){return()=>{}}_e(qe,"subscribe");function Ze(){return We(qe,()=>!0,()=>!1)}_e(Ze,"useIsHydratedModern");var Lt=typeof We=="function"?Ze:Xe,Kt=Object.defineProperty,Z=(o,e)=>Kt(o,"name",{value:e,configurable:!0}),xe="rovingFocusGroup.onEntryFocus",Gt={bubbles:!1,cancelable:!0},le="RovingFocusGroup",[Ie,Je,$t]=Re(le),[zt,Qe]=ce(le,[$t]),[Ut,Bt]=zt(le),Vt=i.forwardRef(Z(function(e,t){return c.jsx(Ie.Provider,{scope:e.__scopeRovingFocusGroup,children:c.jsx(Ie.Slot,{scope:e.__scopeRovingFocusGroup,children:c.jsx(Ht,{...e,ref:t})})})},"RovingFocusGroup")),Ht=i.forwardRef(Z(function(e,t){const{__scopeRovingFocusGroup:n,orientation:s,loop:r=!1,dir:a,currentTabStopId:u,defaultCurrentTabStopId:p,onCurrentTabStopIdChange:l,onEntryFocus:v,preventScrollOnEntryFocus:d=!1,...f}=e,w=i.useRef(null),x=K(t,w),h=Se(a),[R,D]=$e({prop:u,defaultProp:p??null,onChange:l,caller:le}),[C,g]=i.useState(!1),b=ze(v),_=Je(n),S=i.useRef(!1),[k,O]=i.useState(0);return i.useEffect(()=>{const M=w.current;if(M)return M.addEventListener(xe,b),()=>M.removeEventListener(xe,b)},[b]),c.jsx(Ut,{scope:n,orientation:s,dir:h,loop:r,currentTabStopId:R,onItemFocus:i.useCallback(M=>D(M),[D]),onItemShiftTab:i.useCallback(()=>g(!0),[]),onFocusableItemAdd:i.useCallback(()=>O(M=>M+1),[]),onFocusableItemRemove:i.useCallback(()=>O(M=>M-1),[]),children:c.jsx(q.div,{tabIndex:C||k===0?-1:0,"data-orientation":s,...f,ref:x,style:{outline:"none",...e.style},onMouseDown:y(e.onMouseDown,()=>{S.current=!0}),onFocus:y(e.onFocus,M=>{const G=!S.current;if(M.target===M.currentTarget&&G&&!C){const L=new CustomEvent(xe,Gt);if(M.currentTarget.dispatchEvent(L),!L.defaultPrevented){const $=_().filter(E=>E.focusable),N=$.find(E=>E.active),V=$.find(E=>E.id===R),Q=[N,V,...$].filter(Boolean).map(E=>E.ref.current);De(Q,d)}}S.current=!1}),onBlur:y(e.onBlur,()=>g(!1))})})},"RovingFocusGroupImpl")),Yt="RovingFocusGroupItem",Xt=i.forwardRef(Z(function(e,t){const{__scopeRovingFocusGroup:n,focusable:s=!0,active:r=!1,tabStopId:a,children:u,...p}=e,l=ge(),v=a||l,d=Bt(Yt,n),f=d.currentTabStopId===v,w=Je(n),{onFocusableItemAdd:x,onFocusableItemRemove:h,currentTabStopId:R}=d,D=Lt();return wt(()=>{if(!(!D||!s))return x(),()=>h()},[D,s,x,h]),i.useEffect(()=>{if(!(D||!s))return x(),()=>h()},[D,s,x,h]),c.jsx(Ie.ItemSlot,{scope:n,id:v,focusable:s,active:r,children:c.jsx(q.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...p,ref:t,onMouseDown:y(e.onMouseDown,C=>{s?d.onItemFocus(v):C.preventDefault()}),onFocus:y(e.onFocus,()=>d.onItemFocus(v)),onKeyDown:y(e.onKeyDown,C=>{if(C.key==="Tab"&&C.shiftKey){d.onItemShiftTab();return}if(C.target!==C.currentTarget)return;const g=tt(C,d.orientation,d.dir);if(g!==void 0){if(C.metaKey||C.ctrlKey||C.altKey||C.shiftKey)return;C.preventDefault();let _=w().filter(S=>S.focusable).map(S=>S.ref.current);if(g==="last")_.reverse();else if(g==="prev"||g==="next"){g==="prev"&&_.reverse();const S=_.indexOf(C.currentTarget);_=d.loop?nt(_,S+1):_.slice(S+1)}setTimeout(()=>De(_))}}),children:typeof u=="function"?u({isCurrentTabStop:f,hasTabStop:R!=null}):u})})},"RovingFocusGroupItem")),Wt={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function et(o,e){return e!=="rtl"?o:o==="ArrowLeft"?"ArrowRight":o==="ArrowRight"?"ArrowLeft":o}Z(et,"getDirectionAwareKey");function tt(o,e,t){const n=et(o.key,t);if(!(e==="vertical"&&["ArrowLeft","ArrowRight"].includes(n))&&!(e==="horizontal"&&["ArrowUp","ArrowDown"].includes(n)))return Wt[n]}Z(tt,"getFocusIntent");function De(o,e=!1){const t=document.activeElement;for(const n of o)if(n===t||(n.focus({preventScroll:e}),document.activeElement!==t))return}Z(De,"focusFirst");function nt(o,e){return o.map((t,n)=>o[(e+n)%o.length])}Z(nt,"wrapArray");var qt=Vt,Zt=Xt,Jt=Object.defineProperty,I=(o,e)=>Jt(o,"name",{value:e,configurable:!0}),Qt=["Enter"," "],en=["ArrowDown","PageUp","Home"],ot=["ArrowUp","PageDown","End"],tn=[...en,...ot],de="Menu",[we,nn,on]=Re(de),[J,rt]=ce(de,[on,Ue,Qe]),Ee=Ue(),st=Qe(),[rn,ie]=J(de),[sn,Pe]=J(de),cn=I(o=>{const{__scopeMenu:e,open:t=!1,children:n,dir:s,onOpenChange:r,modal:a=!0}=o,u=Ee(e),[p,l]=i.useState(null),v=i.useRef(!1),d=ze(r),f=Se(s);return i.useEffect(()=>{const w=I(()=>{v.current=!0,document.addEventListener("pointerdown",x,{capture:!0,once:!0}),document.addEventListener("pointermove",x,{capture:!0,once:!0})},"handleKeyDown"),x=I(()=>v.current=!1,"handlePointer");return document.addEventListener("keydown",w,{capture:!0}),()=>{document.removeEventListener("keydown",w,{capture:!0}),document.removeEventListener("pointerdown",x,{capture:!0}),document.removeEventListener("pointermove",x,{capture:!0})}},[]),i.useEffect(()=>{if(!t)return;const w=I(()=>d(!1),"handleBlur");return window.addEventListener("blur",w),()=>window.removeEventListener("blur",w)},[t,d]),c.jsx(jt,{...u,children:c.jsx(rn,{scope:e,open:t,onOpenChange:d,content:p,onContentChange:l,children:c.jsx(sn,{scope:e,onClose:i.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:v,dir:f,modal:a,children:n})})})},"Menu"),an=i.forwardRef(I(function(e,t){const{__scopeMenu:n,...s}=e,r=Ee(n);return c.jsx(Pt,{...r,...s,ref:t})},"MenuAnchor")),ct="MenuPortal",[un,ln]=J(ct,{forceMount:void 0}),dn=I(o=>{const{__scopeMenu:e,forceMount:t,children:n,container:s}=o,r=ie(ct,e);return c.jsx(un,{scope:e,forceMount:t,children:c.jsx(be,{present:t||r.open,children:c.jsx(_t,{asChild:!0,container:s,children:n})})})},"MenuPortal"),H="MenuContent",[fn,it]=J(H),pn=i.forwardRef(I(function(e,t){const n=ln(H,e.__scopeMenu),{forceMount:s=n.forceMount,...r}=e,a=ie(H,e.__scopeMenu),u=Pe(H,e.__scopeMenu);return c.jsx(we.Provider,{scope:e.__scopeMenu,children:c.jsx(be,{present:s||a.open,children:c.jsx(we.Slot,{scope:e.__scopeMenu,children:u.modal?c.jsx(mn,{...r,ref:t}):c.jsx(hn,{...r,ref:t})})})})},"MenuContent")),mn=i.forwardRef(I(function(e,t){const n=ie(H,e.__scopeMenu),s=i.useRef(null),r=K(t,s);return i.useEffect(()=>{const a=s.current;if(a)return Mt(a)},[]),c.jsx(at,{...e,ref:r,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:y(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})},"MenuRootContentModal")),hn=i.forwardRef(I(function(e,t){const n=ie(H,e.__scopeMenu);return c.jsx(at,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})},"MenuRootContentNonModal")),vn=re("MenuContent.ScrollLock"),at=i.forwardRef(I(function(e,t){const{__scopeMenu:n,loop:s=!1,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:u,disableOutsidePointerEvents:p,onEntryFocus:l,onEscapeKeyDown:v,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:w,onDismiss:x,disableOutsideScroll:h,...R}=e,D=ie(H,n),C=Pe(H,n),g=Ee(n),b=st(n),_=nn(n),[S,k]=i.useState(null),O=i.useRef(null),M=K(t,O,D.onContentChange),G=i.useRef(0),L=i.useRef(""),$=i.useRef(0),N=i.useRef(null),V=i.useRef("right"),X=i.useRef(0),Q=h?Rt:i.Fragment,E=h?{as:vn,allowPinchZoom:!0}:void 0,gt=I(m=>{const te=L.current+m,W=_().filter(A=>!A.disabled),ne=document.activeElement,fe=W.find(A=>A.ref.current===ne)?.textValue,pe=W.map(A=>A.textValue),Te=mt(pe,te,fe),oe=W.find(A=>A.textValue===Te)?.ref.current;I((function A(ke){L.current=ke,window.clearTimeout(G.current),ke!==""&&(G.current=window.setTimeout(()=>A(""),1e3))}),"updateSearch")(te),oe&&setTimeout(()=>oe.focus())},"handleTypeaheadSearch");i.useEffect(()=>()=>window.clearTimeout(G.current),[]),bt();const ee=i.useCallback(m=>V.current===N.current?.side&&vt(m,N.current?.area),[]);return c.jsx(fn,{scope:n,searchRef:L,onItemEnter:i.useCallback(m=>{ee(m)&&m.preventDefault()},[ee]),onItemLeave:i.useCallback(m=>{ee(m)||(O.current?.focus(),k(null))},[ee]),onTriggerLeave:i.useCallback(m=>{ee(m)&&m.preventDefault()},[ee]),pointerGraceTimerRef:$,onPointerGraceIntentChange:i.useCallback(m=>{N.current=m},[]),children:c.jsx(Q,{...E,children:c.jsx(yt,{asChild:!0,trapped:r,onMountAutoFocus:y(a,m=>{m.preventDefault(),O.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:u,children:c.jsx(St,{asChild:!0,disableOutsidePointerEvents:p,onEscapeKeyDown:v,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:w,onDismiss:x,children:c.jsx(qt,{asChild:!0,...b,dir:C.dir,orientation:"vertical",loop:s,currentTabStopId:S,onCurrentTabStopIdChange:k,onEntryFocus:y(l,m=>{C.isUsingKeyboardRef.current||m.preventDefault()}),preventScrollOnEntryFocus:!0,children:c.jsx(Et,{role:"menu","aria-orientation":"vertical","data-state":dt(D.open),"data-radix-menu-content":"",dir:C.dir,...g,...R,ref:M,style:{outline:"none",...R.style},onKeyDown:y(R.onKeyDown,m=>{const W=m.target.closest("[data-radix-menu-content]")===m.currentTarget,ne=m.ctrlKey||m.altKey||m.metaKey,fe=m.key.length===1;W&&(m.key==="Tab"&&m.preventDefault(),!ne&&fe&&gt(m.key));const pe=O.current;if(m.target!==pe||!tn.includes(m.key))return;m.preventDefault();const oe=_().filter(A=>!A.disabled).map(A=>A.ref.current);ot.includes(m.key)&&oe.reverse(),ft(oe)}),onBlur:y(e.onBlur,m=>{m.currentTarget.contains(m.target)||(window.clearTimeout(G.current),L.current="")}),onPointerMove:y(e.onPointerMove,ue(m=>{const te=m.target,W=X.current!==m.clientX;if(m.currentTarget.contains(te)&&W){const ne=m.clientX>X.current?"right":"left";V.current=ne,X.current=m.clientX}}))})})})})})})},"MenuContentImpl")),xn=i.forwardRef(I(function(e,t){const{__scopeMenu:n,...s}=e;return c.jsx(q.div,{...s,ref:t})},"MenuLabel")),Me="MenuItem",Ke="menu.itemSelect",ut=i.forwardRef(I(function(e,t){const{disabled:n=!1,onSelect:s,...r}=e,a=i.useRef(null),u=Pe(Me,e.__scopeMenu),p=it(Me,e.__scopeMenu),l=K(t,a),v=i.useRef(!1),d=I(()=>{const f=a.current;if(!n&&f){const w=new CustomEvent(Ke,{bubbles:!0,cancelable:!0});f.addEventListener(Ke,x=>s?.(x),{once:!0}),Dt(f,w),w.defaultPrevented?v.current=!1:u.onClose()}},"handleSelect");return c.jsx(gn,{...r,ref:l,disabled:n,onClick:y(e.onClick,d),onPointerDown:f=>{e.onPointerDown?.(f),v.current=!0},onPointerUp:y(e.onPointerUp,f=>{v.current||f.currentTarget?.click()}),onKeyDown:y(e.onKeyDown,f=>{n||f.target!==f.currentTarget||p.searchRef.current!==""&&f.key===" "||Qt.includes(f.key)&&(f.currentTarget.click(),f.preventDefault())})})},"MenuItem")),gn=i.forwardRef(I(function(e,t){const{__scopeMenu:n,disabled:s=!1,textValue:r,...a}=e,u=it(Me,n),p=st(n),l=i.useRef(null),v=K(t,l),[d,f]=i.useState(!1),[w,x]=i.useState("");return i.useEffect(()=>{const h=l.current;h&&x((h.textContent??"").trim())},[a.children]),c.jsx(we.ItemSlot,{scope:n,disabled:s,textValue:r??w,children:c.jsx(Zt,{asChild:!0,...p,focusable:!s,children:c.jsx(q.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":s||void 0,"data-disabled":s?"":void 0,...a,ref:v,onPointerMove:y(e.onPointerMove,ue(h=>{s?u.onItemLeave(h):(u.onItemEnter(h),h.defaultPrevented||h.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:y(e.onPointerLeave,ue(h=>u.onItemLeave(h))),onFocus:y(e.onFocus,()=>f(!0)),onBlur:y(e.onBlur,()=>f(!1))})})})},"MenuItemImpl")),Cn=i.forwardRef(I(function(e,t){const{checked:n=!1,onCheckedChange:s,...r}=e;return c.jsx(wn,{scope:e.__scopeMenu,checked:n,children:c.jsx(ut,{role:"menuitemcheckbox","aria-checked":se(n)?"mixed":n,...r,ref:t,"data-state":je(n),onSelect:y(r.onSelect,()=>s?.(se(n)?!0:!n),{checkForDefaultPrevented:!1})})})},"MenuCheckboxItem")),In="MenuRadioGroup",[Io,wo]=J(In,{value:void 0,onValueChange:I(()=>{},"onValueChange")}),lt="MenuItemIndicator",[wn,Mn]=J(lt,{checked:!1}),bn=i.forwardRef(I(function(e,t){const{__scopeMenu:n,forceMount:s,...r}=e,a=Mn(lt,n);return c.jsx(be,{present:s||se(a.checked)||a.checked===!0,children:c.jsx(q.span,{...r,ref:t,"data-state":je(a.checked)})})},"MenuItemIndicator")),Rn=i.forwardRef(I(function(e,t){const{__scopeMenu:n,...s}=e;return c.jsx(q.div,{role:"separator","aria-orientation":"horizontal",...s,ref:t})},"MenuSeparator")),yn="MenuSub",[Mo,bo]=J(yn);function dt(o){return o?"open":"closed"}I(dt,"getOpenState");function se(o){return o==="indeterminate"}I(se,"isIndeterminate");function je(o){return se(o)?"indeterminate":o?"checked":"unchecked"}I(je,"getCheckedState");function ft(o){const e=document.activeElement;for(const t of o)if(t===e||(t.focus(),document.activeElement!==e))return}I(ft,"focusFirst");function pt(o,e){return o.map((t,n)=>o[(e+n)%o.length])}I(pt,"wrapArray");function mt(o,e,t){const s=e.length>1&&Array.from(e).every(l=>l===e[0])?e[0]:e,r=t?o.indexOf(t):-1;let a=pt(o,Math.max(r,0));s.length===1&&(a=a.filter(l=>l!==t));const p=a.find(l=>l.toLowerCase().startsWith(s.toLowerCase()));return p!==t?p:void 0}I(mt,"getNextMatch");function ht(o,e){const{x:t,y:n}=o;let s=!1;for(let r=0,a=e.length-1;r<e.length;a=r++){const u=e[r],p=e[a],l=u.x,v=u.y,d=p.x,f=p.y;v>n!=f>n&&t<(d-l)*(n-v)/(f-v)+l&&(s=!s)}return s}I(ht,"isPointInPolygon");function vt(o,e){if(!e)return!1;const t={x:o.clientX,y:o.clientY};return ht(t,e)}I(vt,"isPointerInGraceArea");function ue(o){return e=>e.pointerType==="mouse"?o(e):void 0}I(ue,"whenMouse");var Sn=cn,_n=an,Dn=dn,En=pn,Pn=xn,jn=ut,On=Cn,Tn=bn,kn=Rn,An=Object.defineProperty,U=(o,e)=>An(o,"name",{value:e,configurable:!0}),Oe="DropdownMenu",[Fn,Ro]=ce(Oe,[rt]),B=rt(),[Nn,xt]=Fn(Oe),Ln=U(o=>{const{__scopeDropdownMenu:e,children:t,dir:n,open:s,defaultOpen:r,onOpenChange:a,modal:u=!0}=o,p=B(e),l=i.useRef(null),[v,d]=$e({prop:s,defaultProp:r??!1,onChange:a,caller:Oe});return c.jsx(Nn,{scope:e,triggerId:ge(),triggerRef:l,contentId:ge(),open:v,onOpenChange:d,onOpenToggle:i.useCallback(()=>d(f=>!f),[d]),modal:u,children:c.jsx(Sn,{...p,open:v,onOpenChange:d,dir:n,modal:u,children:t})})},"DropdownMenu"),Kn="DropdownMenuTrigger",Gn=i.forwardRef(U(function(e,t){const{__scopeDropdownMenu:n,disabled:s=!1,...r}=e,a=xt(Kn,n),u=B(n),p=K(t,a.triggerRef);return c.jsx(_n,{asChild:!0,...u,children:c.jsx(q.button,{type:"button",id:a.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?"open":"closed","data-disabled":s?"":void 0,disabled:s,...r,ref:p,onPointerDown:y(e.onPointerDown,l=>{!s&&l.button===0&&l.ctrlKey===!1&&(a.onOpenToggle(),a.open||l.preventDefault())}),onKeyDown:y(e.onKeyDown,l=>{s||(["Enter"," "].includes(l.key)&&a.onOpenToggle(),l.key==="ArrowDown"&&a.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(l.key)&&l.preventDefault())})})})},"DropdownMenuTrigger")),$n=U(o=>{const{__scopeDropdownMenu:e,...t}=o,n=B(e);return c.jsx(Dn,{...n,...t})},"DropdownMenuPortal"),zn="DropdownMenuContent",Un=i.forwardRef(U(function(e,t){const{__scopeDropdownMenu:n,...s}=e,r=xt(zn,n),a=B(n),u=i.useRef(!1);return c.jsx(En,{id:r.contentId,"aria-labelledby":r.triggerId,...a,...s,ref:t,onCloseAutoFocus:y(e.onCloseAutoFocus,p=>{u.current||r.triggerRef.current?.focus(),u.current=!1,p.preventDefault()}),onInteractOutside:y(e.onInteractOutside,p=>{const l=p.detail.originalEvent,v=l.button===0&&l.ctrlKey===!0,d=l.button===2||v;(!r.modal||d)&&(u.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})},"DropdownMenuContent")),Bn=i.forwardRef(U(function(e,t){const{__scopeDropdownMenu:n,...s}=e,r=B(n);return c.jsx(Pn,{...r,...s,ref:t})},"DropdownMenuLabel")),Vn=i.forwardRef(U(function(e,t){const{__scopeDropdownMenu:n,...s}=e,r=B(n);return c.jsx(jn,{...r,...s,ref:t})},"DropdownMenuItem")),Hn=i.forwardRef(U(function(e,t){const{__scopeDropdownMenu:n,...s}=e,r=B(n);return c.jsx(On,{...r,...s,ref:t})},"DropdownMenuCheckboxItem")),Yn=i.forwardRef(U(function(e,t){const{__scopeDropdownMenu:n,...s}=e,r=B(n);return c.jsx(Tn,{...r,...s,ref:t})},"DropdownMenuItemIndicator")),Xn=i.forwardRef(U(function(e,t){const{__scopeDropdownMenu:n,...s}=e,r=B(n);return c.jsx(kn,{...r,...s,ref:t})},"DropdownMenuSeparator")),Wn=Ln,qn=Gn,Zn=$n,Jn=Un,Qn=Bn,eo=Vn,to=Hn,no=Yn,oo=Xn;function ro({...o}){return c.jsx(Wn,{"data-slot":"dropdown-menu",...o})}function so({...o}){return c.jsx(qn,{"data-slot":"dropdown-menu-trigger",...o})}function co({className:o,sideOffset:e=4,...t}){return c.jsx(Zn,{children:c.jsx(Jn,{"data-slot":"dropdown-menu-content",sideOffset:e,className:Y(`bg-popover text-popover-foreground data-[state=open]:animate-in
2
+ data-[state=closed]:animate-out data-[state=closed]:fade-out-0
3
+ data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95
4
+ data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2
5
+ data-[side=left]:slide-in-from-right-2
6
+ data-[side=right]:slide-in-from-left-2
7
+ data-[side=top]:slide-in-from-bottom-2 z-50
8
+ max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem]
9
+ origin-(--radix-dropdown-menu-content-transform-origin)
10
+ overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md`,o),...t})})}function io({className:o,inset:e,variant:t="default",...n}){return c.jsx(eo,{"data-slot":"dropdown-menu-item","data-inset":e,"data-variant":t,className:Y(`focus:bg-accent focus:text-accent-foreground
11
+ data-[variant=destructive]:text-destructive
12
+ data-[variant=destructive]:focus:bg-destructive/10
13
+ dark:data-[variant=destructive]:focus:bg-destructive/20
14
+ data-[variant=destructive]:focus:text-destructive
15
+ data-[variant=destructive]:*:[svg]:!text-destructive
16
+ [&_svg:not([class*='text-'])]:text-muted-foreground relative flex
17
+ cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm
18
+ outline-hidden select-none data-[disabled]:pointer-events-none
19
+ data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none
20
+ [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,o),...n})}function ao({className:o,children:e,checked:t,...n}){return c.jsxs(to,{"data-slot":"dropdown-menu-checkbox-item",className:Y(`focus:bg-accent focus:text-accent-foreground relative flex
21
+ cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm
22
+ outline-hidden select-none data-[disabled]:pointer-events-none
23
+ data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0
24
+ [&_svg:not([class*='size-'])]:size-4`,o),checked:t,...n,children:[c.jsx("span",{className:`pointer-events-none absolute left-2 flex size-3.5
25
+ items-center justify-center`,children:c.jsx(no,{children:c.jsx(z.CheckIcon,{className:"size-4"})})}),e]})}function uo({className:o,inset:e,...t}){return c.jsx(Qn,{"data-slot":"dropdown-menu-label","data-inset":e,className:Y("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",o),...t})}function lo({className:o,...e}){return c.jsx(oo,{"data-slot":"dropdown-menu-separator",className:Y("bg-border -mx-1 my-1 h-px",o),...e})}function Ge({className:o,...e}){return c.jsx("span",{"data-slot":"dropdown-menu-shortcut",className:Y("text-muted-foreground ml-auto text-xs tracking-widest",o),...e})}function fo({actions:o=[],label:e="View options",align:t="end",className:n,contentClassName:s}){return o.length?c.jsxs(ro,{children:[c.jsx(so,{asChild:!0,children:c.jsx("button",{type:"button","aria-label":e,"aria-haspopup":"menu",className:Y("app-options-trigger",n),children:c.jsx(z.Ellipsis,{"aria-hidden":"true"})})}),c.jsx(co,{align:t,className:Y("app-folder-popover min-w-56",s),children:o.map((r,a)=>r.kind==="separator"?c.jsx(lo,{},`separator-${a}`):r.kind==="label"?c.jsx(uo,{children:r.label},r.label):r.kind==="checkbox"?c.jsxs(ao,{checked:r.checked,disabled:r.disabled,onCheckedChange:r.run,title:r.disabledReason,children:[r.icon,c.jsxs("span",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[c.jsxs("span",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"truncate",children:r.label}),r.shortcut?c.jsx(Ge,{children:r.shortcut}):null]}),r.description?c.jsx("span",{className:"text-muted-foreground text-xs font-normal",children:r.description}):null]})]},r.id):c.jsxs(io,{disabled:r.disabled,variant:r.variant,onSelect:r.run,title:r.disabledReason,children:[r.icon,c.jsxs("span",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[c.jsxs("span",{className:"flex items-center gap-2",children:[c.jsx("span",{className:"truncate",children:r.label}),r.shortcut?c.jsx(Ge,{children:r.shortcut}):null]}),r.description?c.jsx("span",{className:"text-muted-foreground text-xs font-normal",children:r.description}):null]})]},r.id))})]}):null}function yo({name:o}){const e=o==="rocket"?z.Rocket:o==="calendar-days"?z.CalendarDays:o==="building-2"?z.Building2:o==="users"?z.Users:o==="briefcase"?z.Briefcase:o==="file-text"?z.FileText:z.Folder;return c.jsx(e,{"aria-hidden":"true"})}function So({backHref:o,backLabel:e="Back",canBrowse:t,folderPath:n,onBrowse:s,onOpenFolder:r}){return[...n?[{id:"copy-path",label:"Copy folder path",run:()=>{It(n)}}]:[],...t&&s?[{id:"browse",label:"Browse folder…",run:s}]:[],...r?[{id:"open",label:"Open folder",run:r}]:[],{id:"back",label:e,run:()=>o?window.location.assign(o):window.history.back()},{id:"forward",label:"Forward",run:()=>window.history.forward()}]}function _o({actions:o=[]}){const e=o.map(t=>t.checked===void 0?{kind:"item",id:t.id,label:t.label,run:t.run,disabled:t.disabled}:{kind:"checkbox",id:t.id,label:t.label,checked:t.checked,run:t.run,disabled:t.disabled});return c.jsx(fo,{actions:e})}export{_o as A,yo as C,fo as V,Re as c,So as f,Se as u};
@@ -1 +1 @@
1
- import{c as b,j as e}from"./react-B9jn2M18.js";import{l as g}from"./view-context-BrzQ7WBV.js";import{C as F,A as O}from"./app-options-jTBHy0A7.js";import{F as v}from"./folder-image-Bz0xznQT.js";import{P as E,a as I,b as N}from"./popover-D7MTK-sz.js";function P({className:s,children:d,page:n,folder:l,folderHref:a,collectionHref:h,homeHref:f,icon:A,name:c=l?.replace(/[\\/]+$/,"").split(/[\\/]/).at(-1)??"Folder",workspace:t}){const[C,i]=b.useState(!1),u=b.useRef(null),y=r=>{if(r.key!=="ArrowDown"&&r.key!=="ArrowUp")return;const j=u.current;if(!j)return;const o=Array.from(j.querySelectorAll("a[href]"));if(!o.length)return;const m=o.indexOf(document.activeElement),w=m===-1?r.key==="ArrowDown"?-1:o.length:m,D=r.key==="ArrowDown"?1:-1;r.preventDefault(),o[(w+D+o.length)%o.length]?.focus()},x=t?.breadcrumbs.at(-1)?.icon,p=e.jsxs(e.Fragment,{children:[A??(x?e.jsx(v,{icon:x}):e.jsx(g.Folder,{"aria-hidden":"true"})),e.jsx("span",{children:c})]});return!a||!t||!n&&t.breadcrumbs.length<=1&&!t.schemas?.length?f?e.jsx("a",{className:s,href:f,"aria-label":`Open ${c} folder home`,children:p}):e.jsx("div",{className:s,children:p}):e.jsxs(E,{open:C,onOpenChange:i,children:[e.jsx(I,{asChild:!0,children:e.jsxs("button",{className:s,type:"button","aria-label":`Show ${c} ${n?"file":"folder"} path`,children:[p,e.jsx(g.ChevronDown,{"aria-hidden":"true",className:"size-3.5"})]})}),e.jsx(N,{align:"start",className:"app-folder-popover",onKeyDown:y,children:e.jsxs("nav",{"aria-label":"Folder breadcrumbs",className:"app-folder-path",ref:u,children:[[...t.breadcrumbs].reverse().map(r=>e.jsxs("a",{href:a(r.path),"aria-current":!n&&r.path===l?"page":void 0,onClick:()=>i(!1),children:[e.jsx(v,{icon:r.icon}),r.title]},r.path)),n?e.jsx("a",{href:n.href,"aria-current":"page",onClick:()=>i(!1),children:n.title}):null,t.schemas?.length?e.jsx("small",{className:"app-folder-group-label",children:"Core folders"}):null,t.schemas?.map(r=>e.jsxs("a",{href:h&&r.id?h(r.id):a(r.folder),"aria-current":!n&&r.folder===l?"page":void 0,onClick:()=>i(!1),children:[e.jsx(F,{name:r.icon}),r.navLabel??r.title]},r.folder)),d]})})]})}function k({className:s,actions:d,accessory:n,options:l,...a}){return e.jsxs("header",{className:["app-view-header",s].filter(Boolean).join(" "),children:[e.jsx(P,{...a,className:"app-folder-title"}),n,l??e.jsx(O,{actions:d})]})}export{k as A};
1
+ import{c as b,j as e}from"./react-B9jn2M18.js";import{l as g}from"./view-context-BDtIUHQy.js";import{C as F,A as O}from"./app-options-98-a6ivv.js";import{F as v}from"./folder-image-BjIicmQ6.js";import{P as E,a as I,b as N}from"./popover-3AMcPJpt.js";function P({className:s,children:d,page:n,folder:l,folderHref:a,collectionHref:h,homeHref:f,icon:A,name:c=l?.replace(/[\\/]+$/,"").split(/[\\/]/).at(-1)??"Folder",workspace:t}){const[C,i]=b.useState(!1),u=b.useRef(null),y=r=>{if(r.key!=="ArrowDown"&&r.key!=="ArrowUp")return;const j=u.current;if(!j)return;const o=Array.from(j.querySelectorAll("a[href]"));if(!o.length)return;const m=o.indexOf(document.activeElement),w=m===-1?r.key==="ArrowDown"?-1:o.length:m,D=r.key==="ArrowDown"?1:-1;r.preventDefault(),o[(w+D+o.length)%o.length]?.focus()},x=t?.breadcrumbs.at(-1)?.icon,p=e.jsxs(e.Fragment,{children:[A??(x?e.jsx(v,{icon:x}):e.jsx(g.Folder,{"aria-hidden":"true"})),e.jsx("span",{children:c})]});return!a||!t||!n&&t.breadcrumbs.length<=1&&!t.schemas?.length?f?e.jsx("a",{className:s,href:f,"aria-label":`Open ${c} folder home`,children:p}):e.jsx("div",{className:s,children:p}):e.jsxs(E,{open:C,onOpenChange:i,children:[e.jsx(I,{asChild:!0,children:e.jsxs("button",{className:s,type:"button","aria-label":`Show ${c} ${n?"file":"folder"} path`,children:[p,e.jsx(g.ChevronDown,{"aria-hidden":"true",className:"size-3.5"})]})}),e.jsx(N,{align:"start",className:"app-folder-popover",onKeyDown:y,children:e.jsxs("nav",{"aria-label":"Folder breadcrumbs",className:"app-folder-path",ref:u,children:[[...t.breadcrumbs].reverse().map(r=>e.jsxs("a",{href:a(r.path),"aria-current":!n&&r.path===l?"page":void 0,onClick:()=>i(!1),children:[e.jsx(v,{icon:r.icon}),r.title]},r.path)),n?e.jsx("a",{href:n.href,"aria-current":"page",onClick:()=>i(!1),children:n.title}):null,t.schemas?.length?e.jsx("small",{className:"app-folder-group-label",children:"Core folders"}):null,t.schemas?.map(r=>e.jsxs("a",{href:h&&r.id?h(r.id):a(r.folder),"aria-current":!n&&r.folder===l?"page":void 0,onClick:()=>i(!1),children:[e.jsx(F,{name:r.icon}),r.navLabel??r.title]},r.folder)),d]})})]})}function k({className:s,actions:d,accessory:n,options:l,...a}){return e.jsxs("header",{className:["app-view-header",s].filter(Boolean).join(" "),children:[e.jsx(P,{...a,className:"app-folder-title"}),n,l??e.jsx(O,{actions:d})]})}export{k as A};
@@ -1 +1 @@
1
- import{V as ln,W as an,X as z,Y as q,$ as X,a0 as un,a1 as y,a2 as tn,a3 as F,a4 as _,a5 as rn,a6 as o,a7 as sn,a8 as on,a9 as fn}from"./mermaid.core-CisVJ_Cs.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,Y,a){var O=I-l,i=D-h,n=Y-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 M(l,h,I,D,v,A,Y){var a=l-I,O=h-D,i=(Y?A:-A)/F(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,$=(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)*F(on(0,T*T*R-P*P)),V=(P*g-m*S)/R,W=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=V-$,e=W-t,r=w-$,j=p-t;return x*x+e*e>r*r+j*j&&(V=w,W=p),{cx:V,cy:W,x01:-n,y01:-d,x11:V*(v/T-1),y11:W*(v/T-1)}}function hn(){var l=cn,h=yn,I=X(0),D=null,v=gn,A=dn,Y=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,$=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($>tn-y)a.moveTo(s*z(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*z(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=$,S=$,V=Y.apply(this,arguments)/2,W=V>y&&(D?+D.apply(this,arguments):F(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(W>y){var j=sn(W/u*q(V)),G=sn(W/s*q(V));(P-=j*2)>y?(j*=t?1:-1,R+=j,T-=j):(P=0,R=T=(f+c)/2),(S-=G*2)>y?(G*=t?1:-1,m+=G,g-=G):(S=0,m=g=(f+c)/2)}var B=s*z(m),C=s*q(m),H=u*z(T),J=u*q(T);if(w>y){var K=s*z(g),L=s*q(g),N=u*z(R),Q=u*q(R),E;if($<an)if(E=pn(B,C,N,Q,K,L,H,J)){var U=B-E[0],Z=C-E[1],k=K-E[0],b=L-E[1],nn=1/q(fn((U*k+Z*b)/(F(U*U+Z*Z)*F(k*k+b*b)))/2),en=F(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=M(N,Q,B,C,s,x,t),r=M(K,L,H,J,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(B,C),a.arc(0,0,s,m,g,!t)):a.moveTo(B,C),!(u>y)||!(P>y)?a.lineTo(H,J):p>y?(e=M(H,J,K,L,u,-p,t),r=M(B,C,N,Q,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[z(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:X(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:X(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:X(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:X(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:X(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:X(+n),i):A},i.padAngle=function(n){return arguments.length?(Y=typeof n=="function"?n:X(+n),i):Y},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{V as ln,W as an,X as z,Y as q,$ as X,a0 as un,a1 as y,a2 as tn,a3 as F,a4 as _,a5 as rn,a6 as o,a7 as sn,a8 as on,a9 as fn}from"./mermaid.core-DLgjY1g2.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,Y,a){var O=I-l,i=D-h,n=Y-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 M(l,h,I,D,v,A,Y){var a=l-I,O=h-D,i=(Y?A:-A)/F(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,$=(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)*F(on(0,T*T*R-P*P)),V=(P*g-m*S)/R,W=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=V-$,e=W-t,r=w-$,j=p-t;return x*x+e*e>r*r+j*j&&(V=w,W=p),{cx:V,cy:W,x01:-n,y01:-d,x11:V*(v/T-1),y11:W*(v/T-1)}}function hn(){var l=cn,h=yn,I=X(0),D=null,v=gn,A=dn,Y=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,$=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($>tn-y)a.moveTo(s*z(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*z(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=$,S=$,V=Y.apply(this,arguments)/2,W=V>y&&(D?+D.apply(this,arguments):F(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(W>y){var j=sn(W/u*q(V)),G=sn(W/s*q(V));(P-=j*2)>y?(j*=t?1:-1,R+=j,T-=j):(P=0,R=T=(f+c)/2),(S-=G*2)>y?(G*=t?1:-1,m+=G,g-=G):(S=0,m=g=(f+c)/2)}var B=s*z(m),C=s*q(m),H=u*z(T),J=u*q(T);if(w>y){var K=s*z(g),L=s*q(g),N=u*z(R),Q=u*q(R),E;if($<an)if(E=pn(B,C,N,Q,K,L,H,J)){var U=B-E[0],Z=C-E[1],k=K-E[0],b=L-E[1],nn=1/q(fn((U*k+Z*b)/(F(U*U+Z*Z)*F(k*k+b*b)))/2),en=F(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=M(N,Q,B,C,s,x,t),r=M(K,L,H,J,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(B,C),a.arc(0,0,s,m,g,!t)):a.moveTo(B,C),!(u>y)||!(P>y)?a.lineTo(H,J):p>y?(e=M(H,J,K,L,u,-p,t),r=M(B,C,N,Q,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[z(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:X(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:X(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:X(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:X(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:X(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:X(+n),i):A},i.padAngle=function(n){return arguments.length?(Y=typeof n=="function"?n:X(+n),i):Y},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};