@starlove/orbit 1.4.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/Dockerfile +10 -8
  2. package/README.md +146 -164
  3. package/dist/full/csp.txt +1 -0
  4. package/dist/full/fonts/JetBrains_Mono/JetBrainsMono-subset.woff2 +0 -0
  5. package/dist/full/fonts/JetBrains_Mono/README.txt +5 -0
  6. package/dist/full/fonts/Mona_Sans/MonaSans-subset.woff2 +0 -0
  7. package/{public/fonts/Open_Sans → dist/full/fonts/Mona_Sans}/OFL.txt +93 -93
  8. package/dist/full/fonts/Mona_Sans/README.txt +10 -0
  9. package/{public/fonts/JetBrains_Mono → dist/full/fonts/Newsreader}/OFL.txt +93 -93
  10. package/dist/full/fonts/Newsreader/README.txt +8 -0
  11. package/dist/full/fonts/Newsreader/newsreader.woff2 +0 -0
  12. package/dist/full/index.html +36 -653
  13. package/dist/full/js/app.BmuponPJ.js +32 -0
  14. package/dist/full/js/app.BmuponPJ.js.map +1 -0
  15. package/dist/full/js/chunk.1fJGQGbW.js +2 -0
  16. package/dist/full/js/chunk.1fJGQGbW.js.map +1 -0
  17. package/dist/full/js/chunk.5D7JO2zp.js +2 -0
  18. package/dist/full/js/chunk.5D7JO2zp.js.map +1 -0
  19. package/dist/full/js/chunk.BrNn_D79.js +2 -0
  20. package/dist/full/js/chunk.BrNn_D79.js.map +1 -0
  21. package/dist/full/js/chunk.CokJXIqM.js +2 -0
  22. package/dist/full/js/chunk.CokJXIqM.js.map +1 -0
  23. package/dist/full/js/chunk.D_Haqy6R.js +2 -0
  24. package/dist/full/js/chunk.D_Haqy6R.js.map +1 -0
  25. package/dist/full/js/chunk.RO0jsH6I.js +15 -0
  26. package/dist/full/js/chunk.RO0jsH6I.js.map +1 -0
  27. package/dist/full/js/chunk.dqWOEtBM.js +2 -0
  28. package/dist/full/js/chunk.dqWOEtBM.js.map +1 -0
  29. package/dist/full/js/warm.f260bbbc.js +15 -0
  30. package/dist/full/orbits-favicon.png +0 -0
  31. package/dist/full/orbits-logo-bg-wide.png +0 -0
  32. package/dist/full/orbits-logo-bg.png +0 -0
  33. package/dist/full/orbits-logo.png +0 -0
  34. package/dist/full/styles.2b154ffe.css +1 -0
  35. package/dist/full/vendor/starlove-ui/theme-init.js +66 -0
  36. package/dist/full/version.json +2 -2
  37. package/docs/AGENT_GUIDE.md +114 -0
  38. package/docs/UPDATING.md +249 -64
  39. package/lib/adapters/indexeddb/blobs.d.ts +3 -0
  40. package/lib/adapters/indexeddb/blobs.js +54 -0
  41. package/lib/adapters/indexeddb/database.d.ts +60 -0
  42. package/lib/adapters/indexeddb/database.js +126 -0
  43. package/lib/adapters/indexeddb/index.d.ts +5 -0
  44. package/lib/adapters/indexeddb/index.js +3 -0
  45. package/lib/adapters/indexeddb/locks.d.ts +14 -0
  46. package/lib/adapters/indexeddb/locks.js +40 -0
  47. package/lib/adapters/indexeddb/store.d.ts +40 -0
  48. package/lib/adapters/indexeddb/store.js +424 -0
  49. package/lib/adapters/indexeddb/tables.d.ts +43 -0
  50. package/lib/adapters/indexeddb/tables.js +127 -0
  51. package/lib/adapters/memory/blobs.d.ts +3 -0
  52. package/lib/adapters/memory/blobs.js +44 -0
  53. package/lib/adapters/memory/board.d.ts +41 -0
  54. package/lib/adapters/memory/board.js +521 -0
  55. package/lib/adapters/memory/index.d.ts +2 -0
  56. package/lib/adapters/memory/index.js +2 -0
  57. package/lib/adapters/memory/search.d.ts +6 -0
  58. package/lib/adapters/memory/search.js +30 -0
  59. package/lib/adapters/memory/store.d.ts +34 -0
  60. package/lib/adapters/memory/store.js +266 -0
  61. package/lib/adapters/sqlite/backups.d.ts +53 -0
  62. package/lib/adapters/sqlite/backups.js +232 -0
  63. package/lib/adapters/sqlite/blobs.d.ts +14 -0
  64. package/lib/adapters/sqlite/blobs.js +109 -0
  65. package/lib/adapters/sqlite/board.d.ts +77 -0
  66. package/lib/adapters/sqlite/board.js +328 -0
  67. package/lib/adapters/sqlite/database.d.ts +67 -0
  68. package/lib/adapters/sqlite/database.js +285 -0
  69. package/lib/adapters/sqlite/index.d.ts +3 -0
  70. package/lib/adapters/sqlite/index.js +2 -0
  71. package/lib/adapters/sqlite/lock.d.ts +11 -0
  72. package/lib/adapters/sqlite/lock.js +34 -0
  73. package/lib/adapters/sqlite/records.d.ts +54 -0
  74. package/lib/adapters/sqlite/records.js +546 -0
  75. package/lib/adapters/sqlite/schema.d.ts +54 -0
  76. package/lib/adapters/sqlite/schema.js +276 -0
  77. package/lib/adapters/sqlite/store.d.ts +39 -0
  78. package/lib/adapters/sqlite/store.js +385 -0
  79. package/lib/browser/in-page.d.ts +31 -0
  80. package/lib/browser/in-page.js +46 -0
  81. package/lib/browser/old-preview.d.ts +13 -0
  82. package/lib/browser/old-preview.js +80 -0
  83. package/lib/browser/preview-board.d.ts +8 -0
  84. package/lib/browser/preview-board.js +69 -0
  85. package/lib/cli/main.d.ts +7 -0
  86. package/lib/cli/main.js +343 -0
  87. package/lib/cli/orbit.d.ts +8 -0
  88. package/lib/cli/orbit.js +25 -0
  89. package/lib/client/http.d.ts +38 -0
  90. package/lib/client/http.js +334 -0
  91. package/lib/client/local.d.ts +26 -0
  92. package/lib/client/local.js +190 -0
  93. package/lib/client/object-url.d.ts +8 -0
  94. package/lib/client/object-url.js +21 -0
  95. package/lib/client/types.d.ts +268 -0
  96. package/lib/client/types.js +8 -0
  97. package/lib/commands/agent-tools.d.ts +31 -0
  98. package/lib/commands/agent-tools.js +100 -0
  99. package/lib/commands/index.d.ts +56 -0
  100. package/lib/commands/index.js +298 -0
  101. package/lib/commands/parse.d.ts +73 -0
  102. package/lib/commands/parse.js +231 -0
  103. package/lib/commands/present.d.ts +134 -0
  104. package/lib/commands/present.js +198 -0
  105. package/lib/commands/session.d.ts +85 -0
  106. package/lib/commands/session.js +138 -0
  107. package/lib/commands/verbs.d.ts +35 -0
  108. package/lib/commands/verbs.js +842 -0
  109. package/lib/core/actors.d.ts +18 -0
  110. package/lib/core/actors.js +45 -0
  111. package/lib/core/agent.d.ts +128 -0
  112. package/lib/core/agent.js +323 -0
  113. package/lib/core/boards.d.ts +113 -0
  114. package/lib/core/boards.js +288 -0
  115. package/lib/core/bootstrap.d.ts +47 -0
  116. package/lib/core/bootstrap.js +100 -0
  117. package/lib/core/bytes.d.ts +10 -0
  118. package/lib/core/bytes.js +52 -0
  119. package/lib/core/card-paths.d.ts +25 -0
  120. package/lib/core/card-paths.js +44 -0
  121. package/lib/core/context.d.ts +60 -0
  122. package/lib/core/context.js +42 -0
  123. package/lib/core/cross-board.d.ts +81 -0
  124. package/lib/core/cross-board.js +228 -0
  125. package/lib/core/describe.d.ts +21 -0
  126. package/lib/core/describe.js +81 -0
  127. package/lib/core/errors.d.ts +159 -0
  128. package/lib/core/errors.js +160 -0
  129. package/lib/core/files.d.ts +79 -0
  130. package/lib/core/files.js +262 -0
  131. package/lib/core/history.d.ts +20 -0
  132. package/lib/core/history.js +53 -0
  133. package/lib/core/image-types.d.ts +16 -0
  134. package/lib/core/image-types.js +36 -0
  135. package/lib/core/model.d.ts +263 -0
  136. package/lib/core/model.js +34 -0
  137. package/lib/core/nebula-link.d.ts +14 -0
  138. package/lib/core/nebula-link.js +39 -0
  139. package/lib/core/relations.d.ts +58 -0
  140. package/lib/core/relations.js +112 -0
  141. package/lib/core/search.d.ts +38 -0
  142. package/lib/core/search.js +92 -0
  143. package/lib/core/sessions.d.ts +44 -0
  144. package/lib/core/sessions.js +158 -0
  145. package/lib/core/snapshot-schema.d.ts +295 -0
  146. package/lib/core/snapshot-schema.js +82 -0
  147. package/lib/core/snapshots.d.ts +75 -0
  148. package/lib/core/snapshots.js +409 -0
  149. package/lib/core/states.d.ts +25 -0
  150. package/lib/core/states.js +126 -0
  151. package/lib/core/text.d.ts +40 -0
  152. package/lib/core/text.js +113 -0
  153. package/lib/core/tickets.d.ts +69 -0
  154. package/lib/core/tickets.js +311 -0
  155. package/lib/core/trello.d.ts +17 -0
  156. package/lib/core/trello.js +269 -0
  157. package/lib/core/verdicts.d.ts +28 -0
  158. package/lib/core/verdicts.js +92 -0
  159. package/lib/core/views.d.ts +95 -0
  160. package/lib/core/views.js +186 -0
  161. package/lib/http/app.d.ts +46 -0
  162. package/lib/http/app.js +491 -0
  163. package/lib/mcp-server.d.ts +10 -0
  164. package/lib/mcp-server.js +120 -0
  165. package/lib/node/assets.d.ts +7 -0
  166. package/lib/node/assets.js +68 -0
  167. package/lib/node/data-folder.d.ts +21 -0
  168. package/lib/node/data-folder.js +34 -0
  169. package/lib/node/env.d.ts +38 -0
  170. package/lib/node/env.js +49 -0
  171. package/lib/node/host-check.d.ts +24 -0
  172. package/lib/node/host-check.js +53 -0
  173. package/lib/node/host-services.d.ts +9 -0
  174. package/lib/node/host-services.js +150 -0
  175. package/lib/node/local.d.ts +22 -0
  176. package/lib/node/local.js +61 -0
  177. package/lib/node/migrate.d.ts +53 -0
  178. package/lib/node/migrate.js +635 -0
  179. package/lib/node/package.d.ts +7 -0
  180. package/lib/node/package.js +14 -0
  181. package/lib/node/repo-board.d.ts +49 -0
  182. package/lib/node/repo-board.js +245 -0
  183. package/lib/node/serve.d.ts +8 -0
  184. package/lib/node/serve.js +106 -0
  185. package/lib/orbit.d.ts +47 -0
  186. package/lib/orbit.js +44 -0
  187. package/lib/quiet-sqlite-warning.d.ts +1 -0
  188. package/lib/quiet-sqlite-warning.js +18 -0
  189. package/lib/store/blob-path.d.ts +6 -0
  190. package/lib/store/blob-path.js +12 -0
  191. package/lib/store/conformance.d.ts +52 -0
  192. package/lib/store/conformance.js +1449 -0
  193. package/lib/store/search-words.d.ts +10 -0
  194. package/lib/store/search-words.js +19 -0
  195. package/lib/store/types.d.ts +452 -0
  196. package/lib/store/types.js +34 -0
  197. package/llms.txt +63 -0
  198. package/package.json +109 -25
  199. package/src/cli/orbit.js +11 -658
  200. package/src/mcp-server.js +16 -876
  201. package/SKILL-ORBIT.md +0 -151
  202. package/build.mjs +0 -210
  203. package/dist/full/js/app.62905fcb.js +0 -952
  204. package/dist/full/js/app.62905fcb.js.map +0 -7
  205. package/dist/full/styles.4e60d824.css +0 -1
  206. package/docs/AGENT_PROTOCOL.md +0 -424
  207. package/docs/MCP_SETUP.md +0 -54
  208. package/docs/ORBIT_DISPATCH.md +0 -280
  209. package/docs/SS-Orbit-Dark.png +0 -0
  210. package/docs/SS-Orbit-Light.png +0 -0
  211. package/docs/mcp-client.example.json +0 -13
  212. package/docs/setup/orbit-init-wizard.md +0 -174
  213. package/public/apple-touch-icon.png +0 -0
  214. package/public/cursors/live_arrow.cur +0 -0
  215. package/public/cursors/live_link.cur +0 -0
  216. package/public/cursors/live_move.cur +0 -0
  217. package/public/cursors/live_select.cur +0 -0
  218. package/public/cursors/live_unavail.cur +0 -0
  219. package/public/favicon-32x32.png +0 -0
  220. package/public/fonts/Chakra_Petch/ChakraPetch-Bold.ttf +0 -0
  221. package/public/fonts/Chakra_Petch/ChakraPetch-BoldItalic.ttf +0 -0
  222. package/public/fonts/Chakra_Petch/ChakraPetch-Italic.ttf +0 -0
  223. package/public/fonts/Chakra_Petch/ChakraPetch-Light.ttf +0 -0
  224. package/public/fonts/Chakra_Petch/ChakraPetch-LightItalic.ttf +0 -0
  225. package/public/fonts/Chakra_Petch/ChakraPetch-Medium.ttf +0 -0
  226. package/public/fonts/Chakra_Petch/ChakraPetch-MediumItalic.ttf +0 -0
  227. package/public/fonts/Chakra_Petch/ChakraPetch-Regular.ttf +0 -0
  228. package/public/fonts/Chakra_Petch/ChakraPetch-SemiBold.ttf +0 -0
  229. package/public/fonts/Chakra_Petch/ChakraPetch-SemiBoldItalic.ttf +0 -0
  230. package/public/fonts/Chakra_Petch/OFL.txt +0 -93
  231. package/public/fonts/Inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
  232. package/public/fonts/Inter/Inter-VariableFont_opsz,wght.ttf +0 -0
  233. package/public/fonts/Inter/OFL.txt +0 -93
  234. package/public/fonts/Inter/README.txt +0 -118
  235. package/public/fonts/JetBrains_Mono/JetBrainsMono-Italic-VariableFont_wght.ttf +0 -0
  236. package/public/fonts/JetBrains_Mono/JetBrainsMono-VariableFont_wght.ttf +0 -0
  237. package/public/fonts/JetBrains_Mono/README.txt +0 -79
  238. package/public/fonts/OpenRing-Regular.ttf +0 -0
  239. package/public/fonts/Open_Sans/OpenSans-Italic-VariableFont_wdth,wght.ttf +0 -0
  240. package/public/fonts/Open_Sans/OpenSans-VariableFont_wdth,wght.ttf +0 -0
  241. package/public/fonts/Open_Sans/README.txt +0 -100
  242. package/public/fonts/Orbitron/OFL.txt +0 -93
  243. package/public/fonts/Orbitron/Orbitron-VariableFont_wght.ttf +0 -0
  244. package/public/fonts/Orbitron/README.txt +0 -68
  245. package/public/fonts/Rajdhani/OFL.txt +0 -93
  246. package/public/fonts/Rajdhani/Rajdhani-Bold.ttf +0 -0
  247. package/public/fonts/Rajdhani/Rajdhani-Light.ttf +0 -0
  248. package/public/fonts/Rajdhani/Rajdhani-Medium.ttf +0 -0
  249. package/public/fonts/Rajdhani/Rajdhani-Regular.ttf +0 -0
  250. package/public/fonts/Rajdhani/Rajdhani-SemiBold.ttf +0 -0
  251. package/public/fonts/runescape-uf.ttf +0 -0
  252. package/public/index.html +0 -769
  253. package/public/js/actor-labels.js +0 -65
  254. package/public/js/api.js +0 -39
  255. package/public/js/app.js +0 -45
  256. package/public/js/artifact-drawer.js +0 -79
  257. package/public/js/board-export.js +0 -161
  258. package/public/js/board-menu.js +0 -374
  259. package/public/js/card-actions.js +0 -545
  260. package/public/js/config.js +0 -20
  261. package/public/js/create-card.js +0 -190
  262. package/public/js/dom.js +0 -19
  263. package/public/js/drawer.js +0 -273
  264. package/public/js/font-preference.js +0 -229
  265. package/public/js/format.js +0 -433
  266. package/public/js/help-menu.js +0 -31
  267. package/public/js/icons.js +0 -16
  268. package/public/js/kanban.js +0 -694
  269. package/public/js/local-backend.js +0 -1015
  270. package/public/js/main.js +0 -161
  271. package/public/js/modal.js +0 -33
  272. package/public/js/motion-preference.js +0 -64
  273. package/public/js/panel.js +0 -58
  274. package/public/js/router.js +0 -134
  275. package/public/js/search.js +0 -56
  276. package/public/js/settings-tabs.js +0 -7
  277. package/public/js/settings.js +0 -1634
  278. package/public/js/sse.js +0 -159
  279. package/public/js/starscape.js +0 -332
  280. package/public/js/state.js +0 -129
  281. package/public/js/text-editing.js +0 -128
  282. package/public/js/theme-preference.js +0 -95
  283. package/public/js/ticket-detail.js +0 -1516
  284. package/public/js/ticket-typeahead.js +0 -49
  285. package/public/js/toast.js +0 -89
  286. package/public/js/topbar-notes.js +0 -155
  287. package/public/js/transport.js +0 -22
  288. package/public/js/typeahead.js +0 -206
  289. package/public/js/unread.js +0 -121
  290. package/public/js/update-check.js +0 -58
  291. package/public/js/url-routes.js +0 -94
  292. package/public/orbits-favicon.png +0 -0
  293. package/public/orbits-logo-bg-wide.png +0 -0
  294. package/public/orbits-logo-bg.png +0 -0
  295. package/public/orbits-logo.png +0 -0
  296. package/public/styles.css +0 -7709
  297. package/src/core/agent.js +0 -387
  298. package/src/core/agents-md.js +0 -109
  299. package/src/core/artifacts.js +0 -149
  300. package/src/core/attachments.js +0 -238
  301. package/src/core/auth.js +0 -85
  302. package/src/core/backups.js +0 -142
  303. package/src/core/board.js +0 -148
  304. package/src/core/boards.js +0 -409
  305. package/src/core/bootstrap.js +0 -170
  306. package/src/core/css-bundle.js +0 -30
  307. package/src/core/db.js +0 -315
  308. package/src/core/delete-board.js +0 -163
  309. package/src/core/dispatch.js +0 -1007
  310. package/src/core/events.js +0 -314
  311. package/src/core/http.js +0 -115
  312. package/src/core/migrate.js +0 -198
  313. package/src/core/paths.js +0 -55
  314. package/src/core/provision-repo-board.js +0 -119
  315. package/src/core/queries.js +0 -246
  316. package/src/core/registry.js +0 -211
  317. package/src/core/relations.js +0 -163
  318. package/src/core/review-verdicts.js +0 -138
  319. package/src/core/router.js +0 -556
  320. package/src/core/search.js +0 -183
  321. package/src/core/seed.js +0 -234
  322. package/src/core/snapshots.js +0 -692
  323. package/src/core/states.js +0 -167
  324. package/src/core/system-picker.js +0 -109
  325. package/src/core/tickets.js +0 -400
  326. package/src/core/util.js +0 -106
  327. package/src/core/version-check.js +0 -154
  328. package/src/mcp/orbit-client.js +0 -287
  329. package/src/server.js +0 -115
@@ -0,0 +1,2 @@
1
+ import{a as e,n as t,r as n,t as r}from"./chunk.D_Haqy6R.js";import{A as i,C as a,S as o,T as s}from"./app.BmuponPJ.js";import{i as c,n as l,r as u}from"./chunk.1fJGQGbW.js";var d=t(),f=e(n(),1),p=r();function m(){let e=(0,d.c)(39),t=i(),n=s(_),[r,a]=(0,f.useState)(!1),[o,c]=(0,f.useState)(!1),[u,m]=(0,f.useState)(!1),y=(0,f.useRef)(null),b;e[0]!==t||e[1]!==r?(b=()=>{c(!0),l(t,{includeAttachments:r}).catch(g).finally(()=>c(!1))},e[0]=t,e[1]=r,e[2]=b):b=e[2];let x=b,S;e[3]===t?S=e[4]:(S=e=>{m(!0),v(t,e).catch(h).finally(()=>{y.current&&(y.current.value=``),m(!1)})},e[3]=t,e[4]=S);let C=S,w;e[5]===n.length?w=e[6]:(w=n.length?(0,p.jsx)(`p`,{className:`menu-flyout-copy`,children:`Export every board as Orbit snapshots in a ZIP archive.`}):null,e[5]=n.length,e[6]=w);let T;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(T=e=>a(e.currentTarget.checked),e[7]=T):T=e[7];let E;e[8]===r?E=e[9]:(E=(0,p.jsx)(`input`,{type:`checkbox`,id:`exportAllBoardImages`,checked:r,onChange:T}),e[8]=r,e[9]=E);let D,O;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,p.jsx)(`span`,{className:`orbit-check-box`,"aria-hidden":`true`,children:(0,p.jsx)(`svg`,{viewBox:`0 0 16 16`,className:`orbit-check-tick`,children:(0,p.jsx)(`path`,{d:`M3.5 8.5l3 3 6-7`})})}),O=(0,p.jsx)(`span`,{className:`menu-flyout-toggle-text`,children:`Include attached images`}),e[10]=D,e[11]=O):(D=e[10],O=e[11]);let k;e[12]===E?k=e[13]:(k=(0,p.jsxs)(`label`,{className:`orbit-check menu-flyout-toggle`,children:[E,D,O]}),e[12]=E,e[13]=k);let A;e[14]!==n.length||e[15]!==x||e[16]!==o?(A=n.length?(0,p.jsx)(`div`,{className:`menu-flyout-actions-row`,children:(0,p.jsx)(`button`,{type:`button`,id:`exportAllBoards`,disabled:o,onClick:x,children:o?`Exporting...`:`Export All`})}):null,e[14]=n.length,e[15]=x,e[16]=o,e[17]=A):A=e[17];let j;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,p.jsx)(`div`,{className:`menu-flyout-divider`,"aria-hidden":`true`}),e[18]=j):j=e[18];let M;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,p.jsx)(`h3`,{className:`menu-flyout-danger-heading`,children:`Import boards`}),e[19]=M):M=e[19];let N=n.length?` Matching slugs replace existing boards; back them up first.`:` Your boards will be created here.`,P;e[20]===N?P=e[21]:(P=(0,p.jsxs)(`p`,{className:`menu-flyout-danger-copy`,children:[`Choose an Orbit .orbit.json snapshot or an Export All ZIP.`,N]}),e[20]=N,e[21]=P);let F;e[22]===C?F=e[23]:(F=(0,p.jsx)(`input`,{ref:y,type:`file`,id:`importAllBoardsFile`,className:`import-file-input`,accept:`.zip,.orbit.json,application/zip`,"aria-label":`Choose an export to import`,onChange:e=>{let t=e.currentTarget.files?.[0];t&&C(t)}}),e[22]=C,e[23]=F);let I;e[24]===Symbol.for(`react.memo_cache_sentinel`)?(I=()=>y.current?.click(),e[24]=I):I=e[24];let L=u?`Importing...`:`Choose export…`,R;e[25]!==u||e[26]!==L?(R=(0,p.jsx)(`button`,{type:`button`,id:`importAllBoards`,disabled:u,onClick:I,children:L}),e[25]=u,e[26]=L,e[27]=R):R=e[27];let z;e[28]!==F||e[29]!==R?(z=(0,p.jsxs)(`div`,{className:`menu-flyout-actions-row`,children:[F,R]}),e[28]=F,e[29]=R,e[30]=z):z=e[30];let B;e[31]!==P||e[32]!==z?(B=(0,p.jsxs)(`section`,{className:`menu-flyout-danger-section`,"aria-label":`Import All`,children:[M,P,z]}),e[31]=P,e[32]=z,e[33]=B):B=e[33];let V;return e[34]!==B||e[35]!==w||e[36]!==k||e[37]!==A?(V=(0,p.jsxs)(`div`,{className:`menu-flyout-section menu-flyout-section--export`,children:[w,k,A,j,B]}),e[34]=B,e[35]=w,e[36]=k,e[37]=A,e[38]=V):V=e[38],V}function h(e){return a.error(`Import failed: ${o(e)}`)}function g(e){return a.error(`Export failed: ${o(e)}`)}function _(e){return e.data?.boards??[]}async function v(e,t){let n=await c(t),r=e.board.getState().data?.boards??[],i=new Map(r.map(e=>[e.id,e.id])),o=new Map(r.map(e=>[e.slug,e.id])),s=0,l=0,d=[];for(let t of n){let n=(t.board.slug?o.get(t.board.slug):void 0)??(t.board.id?i.get(t.board.id):void 0);if(n){d.push(await e.client.boards.import({board_id:n,replace_existing:!0,snapshot:t})),s+=1;continue}let r=e.board.getState().boardId,a=await e.client.boards.import({...r?{board_id:r}:{},create_new:!0,snapshot:t});l+=1,d.push(a),a.imported_board_id&&i.set(a.imported_board_id,a.imported_board_id),a.imported_board_slug&&a.imported_board_id&&o.set(a.imported_board_slug,a.imported_board_id)}await e.load(),a.success(`Imported ${n.length} board${n.length===1?``:`s`} (${s} replaced, ${l} created)${u(d)}`),e.closePopover(`board-menu`),await e.navigate({view:`board`},{replace:!0})}export{m as ExportPane};
2
+ //# sourceMappingURL=chunk.CokJXIqM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk.CokJXIqM.js","names":["images","exporting","exportAll","file","event","chosen","importing","error","_c","useState","useRef","__toESM","require_compiler_runtime","require_react","require_jsx_runtime","useOrbit","toast","errorMessage","useBoard","readImportSnapshots","exportAllBoards","importNotes","import_compiler_runtime","import_react","import_jsx_runtime","ExportPane","$","app","boards","_temp","images","setImages","exporting","setExporting","importing","setImporting","file","t0","_temp2","exportAll","t1","importBoards","chosen","_temp3","importFile","t2","t3","event","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","chosen_0","event_0","t14","t15","t16","t17","t18","t19","error_0","error","s","snapshots","known","byId","b","bySlug","replaced","created","results","snapshot","match","current","result"],"sources":["../../../web/src/topbar/BoardExportPane.tsx"],"sourcesContent":["// The board menu's Export pane: every board as one ZIP of snapshots, and\n// Import from such a ZIP or one snapshot (a board with the same slug, or id,\n// is replaced; any other is created).\n\nimport { useRef, useState } from \"react\";\nimport { exportAllBoards, importNotes, readImportSnapshots } from \"../lib/board-export.ts\";\nimport type { ImportResult } from \"../../../src/core/snapshots.ts\";\nimport type { OrbitApp } from \"../orbit/app.ts\";\nimport { useBoard, useOrbit } from \"../orbit/context.tsx\";\nimport { errorMessage, toast } from \"../ui/toast.ts\";\n\nexport function ExportPane() {\n const app = useOrbit();\n const boards = useBoard((s) => s.data?.boards ?? []);\n const [images, setImages] = useState(false);\n const [exporting, setExporting] = useState(false);\n const [importing, setImporting] = useState(false);\n const file = useRef<HTMLInputElement>(null);\n\n const exportAll = (): void => {\n setExporting(true);\n exportAllBoards(app, { includeAttachments: images })\n .catch((error: unknown) => toast.error(`Export failed: ${errorMessage(error)}`))\n .finally(() => setExporting(false));\n };\n\n const importFile = (chosen: File): void => {\n setImporting(true);\n importBoards(app, chosen)\n .catch((error: unknown) => toast.error(`Import failed: ${errorMessage(error)}`))\n .finally(() => {\n if (file.current) file.current.value = \"\";\n setImporting(false);\n });\n };\n\n return (\n <div className=\"menu-flyout-section menu-flyout-section--export\">\n {boards.length ? <p className=\"menu-flyout-copy\">Export every board as Orbit snapshots in a ZIP archive.</p> : null}\n <label className=\"orbit-check menu-flyout-toggle\">\n <input type=\"checkbox\" id=\"exportAllBoardImages\" checked={images} onChange={(event) => setImages(event.currentTarget.checked)} />\n <span className=\"orbit-check-box\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 16 16\" className=\"orbit-check-tick\">\n <path d=\"M3.5 8.5l3 3 6-7\" />\n </svg>\n </span>\n <span className=\"menu-flyout-toggle-text\">Include attached images</span>\n </label>\n {boards.length ? (\n <div className=\"menu-flyout-actions-row\">\n <button type=\"button\" id=\"exportAllBoards\" disabled={exporting} onClick={exportAll}>\n {exporting ? \"Exporting...\" : \"Export All\"}\n </button>\n </div>\n ) : null}\n <div className=\"menu-flyout-divider\" aria-hidden=\"true\" />\n <section className=\"menu-flyout-danger-section\" aria-label=\"Import All\">\n <h3 className=\"menu-flyout-danger-heading\">Import boards</h3>\n <p className=\"menu-flyout-danger-copy\">\n Choose an Orbit .orbit.json snapshot or an Export All ZIP.{boards.length ? \" Matching slugs replace existing boards; back them up first.\" : \" Your boards will be created here.\"}\n </p>\n <div className=\"menu-flyout-actions-row\">\n <input\n ref={file}\n type=\"file\"\n id=\"importAllBoardsFile\"\n className=\"import-file-input\"\n accept=\".zip,.orbit.json,application/zip\"\n aria-label=\"Choose an export to import\"\n onChange={(event) => {\n const chosen = event.currentTarget.files?.[0];\n if (chosen) importFile(chosen);\n }}\n />\n <button type=\"button\" id=\"importAllBoards\" disabled={importing} onClick={() => file.current?.click()}>\n {importing ? \"Importing...\" : \"Choose export…\"}\n </button>\n </div>\n </section>\n </div>\n );\n}\n\n/** Imports each snapshot of a file: a board with the same slug (or id) is replaced, any other is created. */\nasync function importBoards(app: OrbitApp, chosen: File): Promise<void> {\n const snapshots = await readImportSnapshots(chosen);\n const known = app.board.getState().data?.boards ?? [];\n const byId = new Map(known.map((b) => [b.id, b.id]));\n const bySlug = new Map(known.map((b) => [b.slug, b.id]));\n let replaced = 0;\n let created = 0;\n const results: ImportResult[] = [];\n for (const snapshot of snapshots) {\n const match = (snapshot.board.slug ? bySlug.get(snapshot.board.slug) : undefined) ?? (snapshot.board.id ? byId.get(snapshot.board.id) : undefined);\n if (match) {\n results.push(await app.client.boards.import({ board_id: match, replace_existing: true, snapshot }));\n replaced += 1;\n continue;\n }\n const current = app.board.getState().boardId;\n const result = await app.client.boards.import({ ...(current ? { board_id: current } : {}), create_new: true, snapshot });\n created += 1;\n results.push(result);\n if (result.imported_board_id) byId.set(result.imported_board_id, result.imported_board_id);\n if (result.imported_board_slug && result.imported_board_id) bySlug.set(result.imported_board_slug, result.imported_board_id);\n }\n await app.load();\n toast.success(`Imported ${snapshots.length} board${snapshots.length === 1 ? \"\" : \"s\"} (${replaced} replaced, ${created} created)${importNotes(results)}`);\n app.closePopover(\"board-menu\");\n await app.navigate({ view: \"board\" }, { replace: true });\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var C=Array.isArray;function w(){}var T={H:null,A:null,T:null,S:null},E=Object.prototype.hasOwnProperty;function D(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function O(e,t){return D(e.type,t,e.props)}function k(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function A(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var j=/\/+/g;function M(e,t){return typeof e==`object`&&e&&e.key!=null?A(``+e.key):t.toString(36)}function N(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(w,w):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function P(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,P(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+M(e,0):a,C(o)?(i=``,c!=null&&(i=c.replace(j,`$&/`)+`/`),P(o,r,i,``,function(e){return e})):o!=null&&(k(o)&&(o=O(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(j,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(C(e))for(var u=0;u<e.length;u++)a=e[u],s=l+M(a,u),c+=P(a,r,i,s,o);else if(u=h(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+M(a,u++),c+=P(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return P(N(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function F(e,t,n){if(e==null)return e;var r=[],i=0;return P(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function I(e){if(e._status===-1){var t=e._result,n=t();n.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t,n.status===void 0&&(n.status=`fulfilled`,n.value=t))},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t,n.status===void 0&&(n.status=`rejected`,n.reason=t))}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var L=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)};function R(e){var t=T.T,n={};n.types=t===null?null:t.types,T.T=n;try{var r=e(),i=T.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(w,L)}catch(e){L(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),T.T=t}}function z(e){var t=T.T;if(t!==null){var n=t.types;n===null?t.types=[e]:n.indexOf(e)===-1&&n.push(e)}else R(z.bind(null,e))}var B={map:F,forEach:function(e,t,n){F(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return F(e,function(){t++}),t},toArray:function(e){return F(e,function(e){return e})||[]},only:function(e){if(!k(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=B,e.Component=y,e.Fragment=r,e.Profiler=a,e.PureComponent=x,e.StrictMode=i,e.Suspense=l,e.ViewTransition=p,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return T.H.useMemoCache(e)}},e.addTransitionType=z,e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=_({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!E.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return D(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)E.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return D(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=k,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:I}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=R,e.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},e.use=function(e){return T.H.use(e)},e.useActionState=function(e,t,n){return T.H.useActionState(e,t,n)},e.useCallback=function(e,t){return T.H.useCallback(e,t)},e.useContext=function(e){return T.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return T.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return T.H.useEffect(e,t)},e.useEffectEvent=function(e){return T.H.useEffectEvent(e)},e.useId=function(){return T.H.useId()},e.useImperativeHandle=function(e,t,n){return T.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return T.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return T.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return T.H.useMemo(e,t)},e.useOptimistic=function(e,t){return T.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return T.H.useReducer(e,t,n)},e.useRef=function(e){return T.H.useRef(e)},e.useState=function(e){return T.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return T.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return T.H.useTransition()},e.version=`19.3.1`})),u=o(((e,t)=>{t.exports=l()})),d=o((e=>{var t=u().__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;e.c=function(e){return t.H.useMemoCache(e)}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),m=o(((e,t)=>{t.exports=p()}));export{c as a,o as i,f as n,u as r,m as t};
2
+ //# sourceMappingURL=chunk.D_Haqy6R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk.D_Haqy6R.js","names":["__create","__defProp","__getOwnPropDesc","__getOwnPropNames","__getProtoOf","__hasOwnProp","__commonJSMin","mod","cb","__copyProps","from","keys","i","n","key","to","except","k","desc","__toESM","isNodeMode","target","require_react_production","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_ACTIVITY_TYPE","REACT_VIEW_TRANSITION_TYPE","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","ReactNoopUpdateQueue","assign","emptyObject","Component","props","context","updater","partialState","callback","ComponentDummy","PureComponent","pureComponentPrototype","isArrayImpl","noop","ReactSharedInternals","hasOwnProperty","ReactElement","refProp","cloneAndReplaceKey","oldElement","newKey","isValidElement","object","escape","escaperLookup","match","userProvidedKeyEscapeRegex","getElementKey","element","index","resolveThenable","thenable","fulfilledValue","error","mapIntoArray","type","children","invokeCallback","array","escapedPrefix","nameSoFar","c","nextNamePrefix","mapChildren","result","count","func","child","lazyInitializer","payload","ctor","moduleObject","reportGlobalError","event","startTransition","prevTransition","currentTransition","returnValue","scope","onStartTransitionFinish","addTransitionType","transition","transitionTypes","Children","forEachFunc","forEachContext","size","fn","config","propName","childArray","defaultValue","childrenLength","compare","usable","action","initialState","permalink","deps","Context","value","initialValue","create","ref","passthrough","reducer","initialArg","init","subscribe","getSnapshot","getServerSnapshot","require_react","require_react_compiler_runtime_production","require_compiler_runtime","require_react_jsx_runtime_production","jsxProd","maybeKey","require_jsx_runtime"],"sources":["../../../node_modules/.pnpm/react@19.3.1/node_modules/react/cjs/react.production.js","../../../node_modules/.pnpm/react@19.3.1/node_modules/react/index.js","../../../node_modules/.pnpm/react@19.3.1/node_modules/react/cjs/react-compiler-runtime.production.js","../../../node_modules/.pnpm/react@19.3.1/node_modules/react/compiler-runtime.js","../../../node_modules/.pnpm/react@19.3.1/node_modules/react/cjs/react-jsx-runtime.production.js","../../../node_modules/.pnpm/react@19.3.1/node_modules/react/jsx-runtime.js"],"sourcesContent":["/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result,\n thenable = ctor();\n thenable.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1),\n (payload._result = moduleObject),\n void 0 === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = moduleObject));\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2),\n (payload._result = error),\n void 0 === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n );\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = thenable));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\nfunction startTransition(scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition.types =\n null !== prevTransition ? prevTransition.types : null;\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction addTransitionType(type) {\n var transition = ReactSharedInternals.T;\n if (null !== transition) {\n var transitionTypes = transition.types;\n null === transitionTypes\n ? (transition.types = [type])\n : -1 === transitionTypes.indexOf(type) && transitionTypes.push(type);\n } else startTransition(addTransitionType.bind(null, type));\n}\nvar Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n};\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.ViewTransition = REACT_VIEW_TRANSITION_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.addTransitionType = addTransitionType;\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = startTransition;\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react-compiler-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar ReactSharedInternals =\n require(\"react\").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nexports.c = function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-compiler-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-compiler-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n"],"ignoreList":[0,1,2,3,4,5],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import{a as e,n as t,r as n,t as r}from"./chunk.D_Haqy6R.js";import{$ as i,A as a,C as o,D as s,F as c,I as l,J as u,K as d,L as f,M as p,N as m,O as h,Q as g,T as _,V as v,X as y,Y as b,Z as x,c as S,et as C,h as w,k as T,l as E,n as D,p as O,q as k,t as A,u as j,x as M}from"./app.BmuponPJ.js";import{t as N}from"./chunk.5D7JO2zp.js";import{r as P,t as F}from"./chunk.1fJGQGbW.js";var I=e(n(),1),L=t(),R=e=>/^[A-Za-z0-9._=@/:-]+$/.test(e)?e:`"${e.replace(/(["\\$`])/g,`\\$1`)}"`,z=e=>`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`,B=e=>JSON.stringify(e),V=e=>e.command[0]??`orbit`,H=e=>e.command.slice(1),ee=e=>Object.entries(e.env).map(([e,t])=>`${e}=${t}`);function U(e){return e.map(R).join(` `)}function te(e,t){return ee(e).flatMap(e=>[t,e])}function W(e,t={},n){return{...n?{type:n}:{},command:V(e),args:H(e),env:e.env,...t}}function ne(e){return JSON.stringify(e,null,2)}function G(e,t){return ne({[e]:{orbit:t}})}function re(e){let t=``;for(let n of new TextEncoder().encode(e))t+=String.fromCharCode(n);return btoa(t)}function ie(e,t){return e.map(e=>`${` `.repeat(t)}${e}`)}function ae(e){return e.map(e=>`- ${B(e)}`)}function oe(e){return Object.entries(e).map(([e,t])=>`${e}: ${B(t)}`)}var se=`both show the same agent name`,ce={id:`generic`,label:`Other MCP app`,agentName:`agent`,format:`json`,group:`other`,where:`Most apps take this shape: a server named orbit, command orbit, argument mcp, and ORBIT_AGENT_NAME. Look for MCP or Tools in your app's settings. The key is usually mcpServers; a few apps use servers, mcp or context_servers. If the app can't find orbit, use the full-path version below. If your app only accepts a web address (https://...), it can't reach Orbit yet.`,setup:e=>G(`mcpServers`,W(e))},le=[{id:`claude-code`,label:`Claude Code`,agentName:`claude`,format:`command`,group:`main`,where:`Run this once in a terminal. It works in every project, unless a project adds its own server named orbit. Start a new session to see it.`,setup:e=>U([`claude`,`mcp`,`add`,`--scope`,`user`,`orbit`,...te(e,`--env`),`--`,...e.command])},{id:`codex`,label:`Codex (CLI and IDE extension)`,agentName:`codex`,format:`command`,group:`main`,where:`Run this once in a terminal. It writes ~/.codex/config.toml, which the Codex CLI, its IDE extension and the ChatGPT desktop app all read, so one setup covers them and they show the same agent name.`,setup:e=>U([`codex`,`mcp`,`add`,`orbit`,...te(e,`--env`),`--`,...e.command])},{id:`chatgpt-desktop`,label:`ChatGPT desktop app`,agentName:`codex`,format:`toml`,group:`main`,where:`Add this to ~/.codex/config.toml, then restart the app (or add it in Settings, MCP servers). The Codex CLI and IDE extension read the same file, so one setup covers them and ${se}.`,setup:e=>[`[mcp_servers.orbit]`,`command = ${z(V(e))}`,`args = [${H(e).map(z).join(`, `)}]`,``,`[mcp_servers.orbit.env]`,...Object.entries(e.env).map(([e,t])=>`${e} = ${z(t)}`)].join(`
2
+ `)},{id:`cursor`,label:`Cursor (editor and CLI)`,agentName:`cursor`,format:`json`,group:`main`,where:`Add this to ~/.cursor/mcp.json, then restart Cursor. The Cursor CLI reads the same file (run agent mcp enable orbit once), so one setup covers both and ${se}.`,setup:e=>G(`mcpServers`,W(e,{},`stdio`)),install:{label:`Add to Cursor`,href:e=>`cursor://anysphere.cursor-deeplink/mcp/install?name=orbit&config=${encodeURIComponent(re(JSON.stringify(W(e,{},`stdio`))))}`}},{id:`vscode-copilot`,label:`VS Code (GitHub Copilot) and Copilot CLI`,agentName:`copilot`,format:`json`,group:`main`,where:`Add this to ~/.copilot/mcp-config.json. VS Code's Copilot and Copilot CLI both read it, so one setup covers both and ${se}.`,setup:e=>G(`mcpServers`,W(e,{tools:[`*`]},`stdio`))},{id:`claude-desktop`,label:`Claude Desktop`,agentName:`claude-desktop`,format:`json`,group:`main`,where:`Add this to claude_desktop_config.json, in ~/Library/Application Support/Claude on a Mac or ~/.config/Claude on Linux, then quit Claude completely and open it again.`,setup:e=>G(`mcpServers`,W(e))},{id:`openclaw`,label:`OpenClaw`,agentName:`openclaw`,format:`command`,group:`main`,where:`Run this once in a terminal while the Gateway is stopped. OpenClaw starts Orbit to check it, then saves it in ~/.openclaw/openclaw.json.`,setup:e=>U([`openclaw`,`mcp`,`add`,`orbit`,`--command`,V(e),...H(e).flatMap(e=>[`--arg`,e]),...te(e,`--env`)])},{id:`hermes-agent`,label:`Hermes Agent`,agentName:`hermes`,format:`command`,group:`main`,where:`Run this once in a terminal. Hermes connects to Orbit first and asks which tools to keep, then writes the server to the active Hermes profile; add it to each profile you use.`,setup:e=>U([`hermes`,`mcp`,`add`,`orbit`,`--command`,V(e),`--env`,...ee(e),`--args`,...H(e)])},{id:`opencode`,label:`OpenCode`,agentName:`opencode`,format:`json`,group:`main`,where:`Add this to ~/.config/opencode/opencode.json, or to opencode.jsonc there if you have that file. Every current version of OpenCode reads this shape.`,setup:e=>ne({$schema:`https://opencode.ai/config.json`,mcp:{orbit:{type:`local`,command:e.command,environment:e.env}}})},{id:`pi`,label:`Pi`,agentName:`pi`,format:`command`,group:`main`,where:`Run this once in a terminal, then pi mcp list to check it, or /reload in an open session. It gives Orbit's two tools to the model directly.`,setup:e=>U([`pi`,`mcp`,`add`,`orbit`,`--exposure`,`direct`,...te(e,`--env`),`--`,...e.command])},{id:`google-antigravity`,label:`Google Antigravity`,agentName:`antigravity`,format:`json`,group:`main`,where:`Add this to ~/.gemini/config/mcp_config.json, then refresh Antigravity's MCP servers. Its app, IDE and CLI read the same file, so one setup covers them and they show the same agent name.`,setup:e=>G(`mcpServers`,W(e))},{id:`gemini-cli`,label:`Gemini CLI`,agentName:`gemini`,format:`command`,group:`main`,where:`Run this once in a terminal, then restart Gemini CLI. It connects servers only in folders you trust.`,setup:e=>U([`gemini`,`mcp`,`add`,`-s`,`user`,...te(e,`-e`),`orbit`,...e.command])},{id:`devin-desktop`,label:`Devin Desktop (formerly Windsurf)`,agentName:`devin`,format:`json`,group:`main`,where:`Add this to ~/.config/devin/mcp_config.json (Customize, MCPs opens it). Devin CLI reads the same file, so one setup covers both and ${se}.`,setup:e=>G(`mcpServers`,W(e))},{id:`jetbrains`,label:`JetBrains (Junie, AI Assistant)`,agentName:`junie`,format:`json`,group:`main`,where:`Add this to ~/.junie/mcp/mcp.json (Settings, Tools, Junie, MCP Settings opens it). For AI Assistant, paste it in Settings, Tools, AI Assistant, Model Context Protocol, at the Global level. One setup covers both, and ${se}.`,setup:e=>G(`mcpServers`,W(e))},{id:`zed`,label:`Zed`,agentName:`zed`,format:`json`,group:`main`,where:`Add this to Zed's settings.json, in ~/.config/zed (the zed: open settings file command opens it). Zed's key is context_servers.`,setup:e=>G(`context_servers`,W(e))},{id:`cline`,label:`Cline`,agentName:`cline`,format:`json`,group:`main`,where:`Add this to ~/.cline/data/settings/cline_mcp_settings.json (in Cline, MCP Servers, Configure opens it).`,setup:e=>G(`mcpServers`,W(e,{disabled:!1}))},{id:`goose`,label:`goose`,agentName:`goose`,format:`yaml`,group:`main`,where:`Add this under extensions in ~/.config/goose/config.yaml, then restart goose.`,setup:e=>[`extensions:`,...ie([`orbit:`,...ie([`type: stdio`,`name: orbit`,`enabled: true`,`cmd: ${B(V(e))}`,`args:`,...ie(ae(H(e)),1),`envs:`,...ie(oe(e.env),1),`timeout: 300`],1)],1)].join(`
3
+ `)},{id:`amp`,label:`Amp`,agentName:`amp`,format:`command`,group:`more`,where:`Run this once in a terminal. It writes ~/.config/amp/settings.json.`,setup:e=>U([`amp`,`mcp`,`add`,`orbit`,...te(e,`--env`),`--`,...e.command])},{id:`anythingllm`,label:`AnythingLLM`,agentName:`anythingllm`,format:`json`,group:`more`,where:`Add this to anythingllm_mcp_servers.json, in ~/Library/Application Support/anythingllm-desktop/storage/plugins on a Mac or ~/.config/anythingllm-desktop/storage/plugins on Linux, then press Refresh in Settings, Agent Skills.`,setup:e=>G(`mcpServers`,W(e))},{id:`auggie`,label:`Auggie CLI`,agentName:`auggie`,format:`json`,group:`more`,where:`Add this to ~/.augment/settings.json, then start a new Auggie session.`,setup:e=>G(`mcpServers`,W(e,{},`stdio`))},{id:`augment`,label:`Augment Code (VS Code and JetBrains)`,agentName:`augment`,format:`json`,group:`more`,where:`In the Augment panel, open Settings, then the MCP section's Import from JSON, paste this and save.`,setup:e=>G(`mcpServers`,W(e))},{id:`cherry-studio`,label:`Cherry Studio`,agentName:`cherry`,format:`json`,group:`more`,where:`In Settings, MCP, MCP Servers, choose Add, then Import from JSON and paste this. Turn it on, then give it to an agent.`,setup:e=>G(`mcpServers`,W(e))},{id:`droid`,label:`Droid (Factory)`,agentName:`droid`,format:`json`,group:`more`,where:`Add this to ~/.factory/mcp.json. Droid picks it up when the file changes.`,setup:e=>G(`mcpServers`,W(e,{},`stdio`))},{id:`jan`,label:`Jan`,agentName:`jan`,format:`json`,group:`more`,where:`In Settings, MCP Servers, use Edit All Servers JSON to add this. Or add it to mcp_config.json in Jan's data folder (~/Library/Application Support/Jan/data on a Mac, ~/.local/share/Jan/data on Linux) and restart Jan.`,setup:e=>G(`mcpServers`,W(e,{active:!0}))},{id:`kilo-code`,label:`Kilo Code`,agentName:`kilo`,format:`command`,group:`more`,where:`Run this once in a terminal. It writes Kilo's global config, which its CLI and editor extensions share.`,setup:e=>U([`kilo`,`mcp`,`add`,`orbit`,...te(e,`--env`),`--`,...e.command])},{id:`kiro`,label:`Kiro`,agentName:`kiro`,format:`json`,group:`more`,where:`Add this to ~/.kiro/settings/mcp.json. Kiro's IDE and CLI read the same file, so one setup covers both and ${se}.`,setup:e=>G(`mcpServers`,W(e)),install:{label:`Add to Kiro`,href:e=>`https://kiro.dev/launch/mcp/add?name=orbit&config=${encodeURIComponent(JSON.stringify(W(e)))}`}},{id:`librechat`,label:`LibreChat`,agentName:`librechat`,format:`yaml`,group:`more`,where:`Add this to librechat.yaml in LibreChat's folder, then restart LibreChat. Orbit must be installed where LibreChat runs.`,setup:e=>[`mcpServers:`,...ie([`orbit:`,...ie([`type: stdio`,`command: ${B(V(e))}`,`args:`,...ie(ae(H(e)),1),`serverInstructions: true`,`env:`,...ie(oe(e.env),1)],1)],1)].join(`
4
+ `)},{id:`lm-studio`,label:`LM Studio`,agentName:`lmstudio`,format:`json`,group:`more`,where:`Add this to ~/.lmstudio/mcp.json (in the Program tab, Install, Edit mcp.json opens it). LM Studio loads it when you save.`,setup:e=>G(`mcpServers`,W(e)),install:{label:`Add to LM Studio`,href:e=>`lmstudio://add_mcp?name=orbit&config=${encodeURIComponent(re(JSON.stringify(W(e))))}`}},{id:`lobehub`,label:`LobeHub`,agentName:`lobehub`,format:`json`,group:`more`,where:`In the desktop app's Settings, Connectors, import this, then turn it on for an agent in its Connectors.`,setup:e=>G(`mcpServers`,W(e,{},`stdio`))},{id:`msty-studio`,label:`Msty Studio`,agentName:`msty`,format:`json`,group:`more`,where:`In Toolbox, Tools, add a tool named orbit, choose STDIO / JSON and paste this, then add it to a toolset.`,setup:e=>ne(W(e))},{id:`openhands`,label:`OpenHands`,agentName:`openhands`,format:`form`,group:`more`,where:`In Agent Canvas, open Customize, MCP Servers, Add custom server, and fill in these fields. New conversations get it.`,setup:e=>[`Server Type: STDIO`,`Name: orbit`,`Command: ${V(e)}`,`Command Arguments: ${H(e).join(` `)}`,`Environment Variables:`,...ee(e)].join(`
5
+ `)},{id:`qwen-code`,label:`Qwen Code`,agentName:`qwen`,format:`command`,group:`more`,where:`Run this once in a terminal, then restart Qwen Code.`,setup:e=>U([`qwen`,`mcp`,`add`,`-s`,`user`,...te(e,`-e`),`orbit`,...e.command])},{id:`raycast`,label:`Raycast`,agentName:`raycast`,format:`form`,group:`more`,where:`Run Raycast's Install MCP Server command and fill in these fields.`,setup:e=>[`Name: orbit`,`Transport: Standard Input/Output`,`Command: ${V(e)}`,`Arguments: ${H(e).join(` `)}`,`Environment:`,...ee(e)].join(`
6
+ `)},{id:`trae`,label:`TRAE`,agentName:`trae`,format:`json`,group:`more`,where:`In Settings, MCP, choose Add, then Create Manually, paste this and confirm.`,setup:e=>G(`mcpServers`,W(e)),install:{label:`Add to TRAE`,href:e=>`trae://trae.ai-ide/mcp-import?type=stdio&name=orbit&config=${encodeURIComponent(re(JSON.stringify(W(e))))}`}},{id:`visual-studio`,label:`Visual Studio (GitHub Copilot)`,agentName:`visualstudio`,format:`json`,group:`more`,where:`Visual Studio runs on Windows: add this to .mcp.json in your user folder (%USERPROFILE%), or in Copilot Chat's agent mode use Tools, +, Add custom MCP server.`,setup:e=>G(`servers`,W(e,{},`stdio`)),install:{label:`Add to Visual Studio`,href:e=>`https://vs-open.link/mcp-install?${encodeURIComponent(JSON.stringify({name:`orbit`,...W(e,{},`stdio`)}))}`}},{id:`warp`,label:`Warp`,agentName:`warp`,format:`json`,group:`more`,where:`Add this to ~/.warp/.mcp.json. Warp picks it up when you save.`,setup:e=>G(`mcpServers`,W(e))}],ue=[...le,ce],de=le.filter(e=>e.group===`main`),fe=le.filter(e=>e.group===`more`),pe=ce,me=`ChatGPT and Claude on the web, Le Chat and other web chat apps only connect to servers on the internet, so they can't reach Orbit yet. Use their desktop app, or an agent on this computer.`;function he(e){return ue.find(t=>t.id===e)??ce}function ge(e){return(typeof e==`string`?e:``).toLowerCase().replace(/[^a-z0-9._-]+/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``).slice(0,40)||`agent`}function _e(e,t=``){let n=`run orbit help to learn it, and name the board in commands (orbit view ${e}, ${e}#12) unless the repo's orbit.json names it.`;return t?`Use Orbit for this project's tasks, on the board ${e}. Orbit runs at ${t}: install it with npm i -g @starlove/orbit if orbit is missing, run every orbit command with ORBIT_MODE=remote ORBIT_API_URL=${t} and ORBIT_AGENT_NAME set to your name, then ${n}`:`Use Orbit for this project's tasks, on the board ${e}: ${n}`}function ve(e){return`${e.origin}${e.pathname.replace(/\/[^/]*$/,``)}`}function ye(e){let t=e.replace(/^\[|\]$/g,``).toLowerCase();return t===`localhost`||t.endsWith(`.localhost`)||t===`::1`||/^127\.\d+\.\d+\.\d+$/.test(t)}function be(e){return[`node`,e.replace(/mcp-server\.js$/,`cli/orbit.js`)]}function xe(e){let t=ge(e.agentName),n=e.remote??``,r=e.dataDir??``,i=n?{ORBIT_MODE:`remote`,ORBIT_API_URL:n,ORBIT_AGENT_NAME:t}:{ORBIT_AGENT_NAME:t,...r?{DATA_DIR:r}:{}};return{command:[...e.command??[`orbit`],`mcp`],env:i}}function Se(e,t){return he(e).setup(xe(t))}function Ce(e,t){let n=he(e).install;return n?{label:n.label,href:n.href(xe(t))}:null}function we(e,{agentName:t,fullPath:n,remote:r=``}){if(r)return{agentName:t,remote:r,command:[`orbit`]};let i=e?.data_dir??``,a=e?.mcp_server_path??``;return{agentName:t,dataDir:i&&!e?.data_dir_default?i:``,command:n&&a?be(a):[`orbit`]}}function Te(e){return!!(e?.mcp_server_path?.startsWith(`/app/`)&&e.data_dir===`/data`)}var K=r();function q(e){let t=(0,L.c)(17),{id:n,title:r,label:i,danger:a,aside:o,lead:s,children:c}=e,l=`${n}Heading`,u;t[0]!==a||t[1]!==l||t[2]!==r?(u=r?(0,K.jsx)(`h3`,{className:a?`sheet-heading sheet-heading--danger`:`sheet-heading`,id:l,children:r}):null,t[0]=a,t[1]=l,t[2]=r,t[3]=u):u=t[3];let d=u,f=a?`sheet-section sheet-section--danger`:`sheet-section`,p=r?l:void 0,m=r?void 0:i,h;t[4]!==o||t[5]!==d?(h=o?(0,K.jsxs)(`div`,{className:`sheet-heading-line`,children:[d,o]}):d,t[4]=o,t[5]=d,t[6]=h):h=t[6];let g;t[7]===s?g=t[8]:(g=s?(0,K.jsx)(`p`,{className:`sheet-lead`,children:s}):null,t[7]=s,t[8]=g);let _;return t[9]!==c||t[10]!==n||t[11]!==f||t[12]!==p||t[13]!==m||t[14]!==h||t[15]!==g?(_=(0,K.jsxs)(`section`,{className:f,id:n,"aria-labelledby":p,"aria-label":m,children:[h,g,c]}),t[9]=c,t[10]=n,t[11]=f,t[12]=p,t[13]=m,t[14]=h,t[15]=g,t[16]=_):_=t[16],_}function Ee(e){let t=(0,L.c)(15),{text:n,what:r,onCopy:i,copyAttrs:a,codeAttrs:o,extra:s}=e,c;t[0]!==o||t[1]!==n?(c=(0,K.jsx)(`pre`,{children:(0,K.jsx)(`code`,{...o,children:n})}),t[0]=o,t[1]=n,t[2]=c):c=t[2];let l;t[3]===r?l=t[4]:(l=(0,K.jsxs)(`span`,{className:`sheet-hidden`,children:[` `,r]}),t[3]=r,t[4]=l);let u;t[5]!==a||t[6]!==i||t[7]!==l?(u=(0,K.jsxs)(`button`,{type:`button`,"data-variant":`ghost`,"data-no-arc":``,className:`sheet-quiet-button`,onClick:i,...a,children:[`Copy`,l]}),t[5]=a,t[6]=i,t[7]=l,t[8]=u):u=t[8];let d;t[9]!==s||t[10]!==u?(d=(0,K.jsxs)(`div`,{className:`sheet-code-actions`,children:[s,u]}),t[9]=s,t[10]=u,t[11]=d):d=t[11];let f;return t[12]!==c||t[13]!==d?(f=(0,K.jsxs)(`div`,{className:`sheet-code`,children:[c,d]}),t[12]=c,t[13]=d,t[14]=f):f=t[14],f}function De(e){let t=(0,L.c)(8),{title:n,open:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,K.jsx)(`summary`,{children:n}),t[0]=n,t[1]=a);let o;t[2]===i?o=t[3]:(o=(0,K.jsx)(`div`,{className:`sheet-more-body`,children:i}),t[2]=i,t[3]=o);let s;return t[4]!==r||t[5]!==a||t[6]!==o?(s=(0,K.jsxs)(`details`,{className:`sheet-more`,open:r,children:[a,o]}),t[4]=r,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function Oe(e){let t=(0,L.c)(12),{id:n,checked:r,labelledBy:i,onChange:a}=e,o=r?`On`:`Off`,s;t[0]===o?s=t[1]:(s=(0,K.jsx)(`span`,{className:`sheet-switch-state`,"aria-hidden":`true`,children:o}),t[0]=o,t[1]=s);let c;t[2]!==r||t[3]!==n||t[4]!==i||t[5]!==a?(c=(0,K.jsx)(`input`,{type:`checkbox`,role:`switch`,id:n,checked:r,"aria-labelledby":i,onChange:a}),t[2]=r,t[3]=n,t[4]=i,t[5]=a,t[6]=c):c=t[6];let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,K.jsx)(`span`,{className:`switch-track`,"aria-hidden":`true`}),t[7]=l):l=t[7];let u;return t[8]!==n||t[9]!==s||t[10]!==c?(u=(0,K.jsxs)(`label`,{className:`switch sheet-switch`,htmlFor:n,children:[s,c,l]}),t[8]=n,t[9]=s,t[10]=c,t[11]=u):u=t[11],u}function ke(e){let t=(0,L.c)(21),{label:n,labelId:r,options:i,value:a,onChange:o}=e,s;t[0]!==o||t[1]!==i||t[2]!==a?(s=e=>{let t=e.key===`ArrowRight`||e.key===`ArrowDown`?1:e.key===`ArrowLeft`||e.key===`ArrowUp`?-1:0;if(!t)return;e.preventDefault();let n=(i.findIndex(e=>e.value===a)+t+i.length)%i.length,r=i[n];r&&(o(r.value),e.currentTarget.querySelectorAll(`button`)[n]?.focus())},t[0]=o,t[1]=i,t[2]=a,t[3]=s):s=t[3];let c=s,l;t[4]!==n||t[5]!==r?(l=(0,K.jsx)(`span`,{className:`sheet-choice-label`,id:r,children:n}),t[4]=n,t[5]=r,t[6]=l):l=t[6];let u;if(t[7]!==o||t[8]!==i||t[9]!==a){let e;t[11]!==o||t[12]!==a?(e=e=>(0,K.jsx)(`button`,{type:`button`,"data-variant":`ghost`,"data-no-arc":``,className:`segmented-option`,role:`radio`,"aria-checked":e.value===a,tabIndex:e.value===a?0:-1,onClick:()=>o(e.value),children:e.label},e.value),t[11]=o,t[12]=a,t[13]=e):e=t[13],u=i.map(e),t[7]=o,t[8]=i,t[9]=a,t[10]=u}else u=t[10];let d;t[14]!==r||t[15]!==c||t[16]!==u?(d=(0,K.jsx)(`div`,{className:`segmented`,role:`radiogroup`,"aria-labelledby":r,onKeyDown:c,children:u}),t[14]=r,t[15]=c,t[16]=u,t[17]=d):d=t[17];let f;return t[18]!==l||t[19]!==d?(f=(0,K.jsxs)(`div`,{className:`sheet-choice`,children:[l,d]}),t[18]=l,t[19]=d,t[20]=f):f=t[20],f}function Ae(e){let t=(0,L.c)(16),{id:n,withFor:r,checked:i,onChange:a,title:o,description:s}=e,c=r??!1?n:void 0,l;t[0]!==i||t[1]!==n||t[2]!==a?(l=(0,K.jsx)(`input`,{type:`checkbox`,id:n,checked:i,onChange:a}),t[0]=i,t[1]=n,t[2]=a,t[3]=l):l=t[3];let u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,K.jsx)(`span`,{className:`orbit-check-box`,"aria-hidden":`true`,children:(0,K.jsx)(`svg`,{viewBox:`0 0 16 16`,className:`orbit-check-tick`,children:(0,K.jsx)(`path`,{d:`M3.5 8.5l3 3 6-7`})})}),t[4]=u):u=t[4];let d;t[5]===o?d=t[6]:(d=(0,K.jsx)(`span`,{className:`settings-row-title`,children:o}),t[5]=o,t[6]=d);let f;t[7]===s?f=t[8]:(f=s?(0,K.jsx)(`span`,{className:`description`,children:s}):null,t[7]=s,t[8]=f);let p;t[9]!==d||t[10]!==f?(p=(0,K.jsxs)(`span`,{className:`settings-toggle-text`,children:[d,f]}),t[9]=d,t[10]=f,t[11]=p):p=t[11];let m;return t[12]!==c||t[13]!==l||t[14]!==p?(m=(0,K.jsxs)(`label`,{className:`orbit-check settings-toggle`,htmlFor:c,children:[l,u,p]}),t[12]=c,t[13]=l,t[14]=p,t[15]=m):m=t[15],m}async function je(e){if(navigator.clipboard?.writeText){await navigator.clipboard.writeText(e);return}let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.left=`-9999px`,document.body.append(t),t.select(),document.execCommand(`copy`),t.remove()}var Me=[{value:`shell`,label:`An agent with a shell`},{value:`mcp`,label:`An app that uses MCP`}];function Ne(e){let t=(0,L.c)(23),{board:n}=e,r=a(),[i,s]=(0,I.useState)(null),c=i??n.ai_enabled!==0,l;t[0]!==r||t[1]!==n?(l=e=>{s(e),(async()=>{await r.call(()=>r.client.boards.update(n.id,{ai_enabled:e})),await r.load(),o.success(e?`AI is on: the AI Ready, In Progress and Review lanes are ready`:`AI is off: AI Ready is hidden`)})().catch(Pe).finally(()=>s(null))},t[0]=r,t[1]=n,t[2]=l):l=t[2];let u=l,d;t[3]===u?d=t[4]:(d=e=>u(e.currentTarget.checked),t[3]=u,t[4]=d);let f;t[5]!==c||t[6]!==d?(f=(0,K.jsx)(Oe,{id:`aiEnabledToggle`,checked:c,labelledBy:`aiOnBoardHeading`,onChange:d}),t[5]=c,t[6]=d,t[7]=f):f=t[7];let p;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,K.jsx)(`strong`,{children:`AI Ready`}),t[8]=p):p=t[8];let m;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,K.jsx)(`strong`,{children:`In Progress`}),t[9]=m):m=t[9];let h;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,K.jsxs)(K.Fragment,{children:[`Adds the `,p,`, `,m,` and `,(0,K.jsx)(`strong`,{children:`Review`}),` lanes if they're missing, shows agent fields on cards, and lets agents connect. Turning it off hides AI Ready; its cards stay where they are.`]}),t[10]=h):h=t[10];let g;t[11]===f?g=t[12]:(g=(0,K.jsx)(q,{id:`aiOnBoard`,title:`AI on this board`,aside:f,lead:h}),t[11]=f,t[12]=g);let _;t[13]!==c||t[14]!==n?(_=c?(0,K.jsx)(Ie,{board:n}):null,t[13]=c,t[14]=n,t[15]=_):_=t[15];let v;t[16]!==c||t[17]!==n?(v=c?(0,K.jsx)(Be,{board:n}):null,t[16]=c,t[17]=n,t[18]=v):v=t[18];let y;return t[19]!==g||t[20]!==_||t[21]!==v?(y=(0,K.jsxs)(`div`,{className:`settings-sheet`,children:[g,_,v]}),t[19]=g,t[20]=_,t[21]=v,t[22]=y):y=t[22],y}function Pe(){}var Fe=`This project is about…
7
+
8
+ How agents should work on it: the stack, the rules, how to check their work.`;function Ie(e){let t=(0,L.c)(17),{board:n}=e,r=a(),i=n.agent_instructions,s;t[0]!==r||t[1]!==n.id?(s=async e=>{try{await r.call(()=>r.client.boards.update(n.id,{agent_instructions:c(e)})),await r.load(),o.success(`Saved`)}catch{}},t[0]=r,t[1]=n.id,t[2]=s):s=t[2];let u;t[3]!==i||t[4]!==s?(u={value:i,fieldName:`agent_instructions`,multiline:!0,ariaLabel:`Edit agent instructions`,onCommit:s},t[3]=i,t[4]=s,t[5]=u):u=t[5];let d=D(u),f;t[6]===i?f=t[7]:(f=i.trim(),t[6]=i,t[7]=f);let p=!!f,m;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,K.jsx)(`p`,{className:`sheet-lead`,children:`Agents read this whenever they work on this board's cards.`}),t[8]=m):m=t[8];let h;t[9]!==p||t[10]!==i?(h=p?v(i):l(Fe),t[9]=p,t[10]=i,t[11]=h):h=t[11];let g=`inline-md-field-body preserved-text-body editable-field settings-agent-instructions-body${p?``:` is-placeholder`}`,_;return t[12]!==d||t[13]!==p||t[14]!==h||t[15]!==g?(_=(0,K.jsx)(q,{id:`agentInstructions`,title:`Agent instructions`,children:(0,K.jsx)(`div`,{className:`inline-md-field`,children:(0,K.jsx)(A,{field:d,noun:`agent instructions`,has:p,fieldName:`agent_instructions`,lead:m,html:h,bodyClassName:g})})}),t[12]=d,t[13]=p,t[14]=h,t[15]=g,t[16]=_):_=t[16],_}function Le(e){let t=(0,L.c)(7),n=a(),[r,i]=(0,I.useState)(null),o,s;t[0]!==n||t[1]!==e?(o=()=>{let t=!0;return n.call(()=>n.client.boards.context(e)).then(n=>{t&&i({boardId:e,deployment:n.deployment})},Re),()=>{t=!1}},s=[n,e],t[0]=n,t[1]=e,t[2]=o,t[3]=s):(o=t[2],s=t[3]),(0,I.useEffect)(o,s);let c;return t[4]!==e||t[5]!==r?(c=r?.boardId===e?{loaded:!0,deployment:r.deployment}:{loaded:!1,deployment:void 0},t[4]=e,t[5]=r,t[6]=c):c=t[6],c}function Re(){}function ze(e,t){je(e).then(()=>o.success(t),()=>o.error(`Couldn't copy. Select the text and copy it yourself.`))}function Be(e){let t=(0,L.c)(12),{board:n}=e,r=n.slug||`your-board`,{loaded:i,deployment:a}=Le(n.id);if(!i)return null;if(Te(a)){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(`code`,{children:`npm i -g @starlove/orbit`}),t[0]=e):e=t[0];let n;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,K.jsx)(`code`,{children:`ORBIT_MODE=remote`}),t[1]=n):n=t[1];let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,K.jsx)(`code`,{children:`ORBIT_API_URL=<your private Orbit address>`}),t[2]=i):i=t[2];let a;t[3]===r?a=t[4]:(a=(0,K.jsxs)(`code`,{children:[`ORBIT_BOARD=`,r]}),t[3]=r,t[4]=a);let o;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,K.jsx)(`code`,{children:`orbit`}),t[5]=o):o=t[5];let s;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,K.jsx)(`code`,{children:`orbit mcp`}),t[6]=s):s=t[6];let c;return t[7]===a?c=t[8]:(c=(0,K.jsx)(q,{id:`connectAgents`,title:`Connect your agents`,children:(0,K.jsxs)(`p`,{className:`sheet-lead`,children:[`Orbit runs in a container, so its /app/lib/mcp-server.js and /data paths don't exist where your agent runs. Install Orbit there (`,e,`), then give the agent `,n,`, `,i,` and `,a,`, for `,o,` in a shell or `,s,` in an MCP app. Keep the address private: this release doesn't sign in remote clients, so anyone who reaches it owns the board.`]})}),t[7]=a,t[8]=c),c}let o;return t[9]!==a||t[10]!==r?(o=(0,K.jsx)(Ve,{slug:r,deployment:a}),t[9]=a,t[10]=r,t[11]=o):o=t[11],o}function Ve(e){let t=(0,L.c)(15),{slug:n,deployment:r}=e,[i,a]=(0,I.useState)(`shell`),[o,s]=(0,I.useState)(He),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=ve(window.location),t[0]=c):c=t[0];let l=o?c:``,u;t[1]===i?u=t[2]:(u=(0,K.jsx)(ke,{label:`Your agent is`,labelId:`agentKindLabel`,options:Me,value:i,onChange:a}),t[1]=i,t[2]=u);let d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=e=>s(e.currentTarget.checked),t[3]=d):d=t[3];let f;t[4]===o?f=t[5]:(f=(0,K.jsx)(Ae,{id:`connectElsewhereToggle`,checked:o,onChange:d,title:`My agent runs on another computer`}),t[4]=o,t[5]=f);let p;t[6]!==r||t[7]!==i||t[8]!==l||t[9]!==n?(p=i===`shell`?(0,K.jsx)(Ue,{slug:n,remote:l}):(0,K.jsx)(Ge,{deployment:r,remote:l}),t[6]=r,t[7]=i,t[8]=l,t[9]=n,t[10]=p):p=t[10];let m;return t[11]!==u||t[12]!==f||t[13]!==p?(m=(0,K.jsxs)(q,{id:`connectAgents`,title:`Connect your agents`,children:[u,f,p]}),t[11]=u,t[12]=f,t[13]=p,t[14]=m):m=t[14],m}function He(){return!ye(window.location.hostname)}function Ue(e){let t=(0,L.c)(18),{slug:n,remote:r}=e,i;t[0]!==r||t[1]!==n?(i=_e(n,r),t[0]=r,t[1]=n,t[2]=i):i=t[2];let a=i,o;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,K.jsx)(`code`,{children:`orbit`}),t[3]=o):o=t[3];let s;t[4]===r?s=t[5]:(s=r?(0,K.jsxs)(K.Fragment,{children:[`installed on their computer (`,(0,K.jsx)(`code`,{children:`npm i -g @starlove/orbit`}),`)`]}):`which came with Orbit`,t[4]=r,t[5]=s);let c;t[6]===s?c=t[7]:(c=(0,K.jsxs)(`p`,{className:`sheet-lead`,children:[`Claude Code, Codex, Cursor, Copilot CLI, Gemini CLI, OpenCode, Hermes Agent, OpenClaw, Pi, goose and most other coding agents need only the `,o,` command,`,` `,s,`. Say this to your agent once, or put it in the project's AGENTS.md or CLAUDE.md so every session knows:`]}),t[6]=s,t[7]=c);let l;t[8]===a?l=t[9]:(l=()=>ze(a,`Sentence copied`),t[8]=a,t[9]=l);let u,d;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(u={"data-copy-connect":`sentence`},d={"data-connect-sentence":``},t[10]=u,t[11]=d):(u=t[10],d=t[11]);let f;t[12]!==a||t[13]!==l?(f=(0,K.jsx)(Ee,{text:a,what:`the sentence`,onCopy:l,copyAttrs:u,codeAttrs:d}),t[12]=a,t[13]=l,t[14]=f):f=t[14];let p;return t[15]!==c||t[16]!==f?(p=(0,K.jsxs)(`div`,{className:`sheet-steps`,children:[c,f]}),t[15]=c,t[16]=f,t[17]=p):p=t[17],p}function We(e){let t=(0,L.c)(3),{app:n}=e,r;return t[0]!==n.id||t[1]!==n.label?(r=(0,K.jsx)(`option`,{value:n.id,children:n.label}),t[0]=n.id,t[1]=n.label,t[2]=r):r=t[2],r}function Ge(e){let t=(0,L.c)(50),{deployment:n,remote:r}=e,[i,a]=(0,I.useState)(de[0]?.id??pe.id),o;t[0]===i?o=t[1]:(o=he(i),t[0]=i,t[1]=o);let[s,c]=(0,I.useState)(o.agentName),[l,u]=(0,I.useState)(!1),d;t[2]===i?d=t[3]:(d=he(i),t[2]=i,t[3]=d);let f=d,p,m,h;if(t[4]!==s||t[5]!==i||t[6]!==n||t[7]!==l||t[8]!==r){let e=we(n,{agentName:ge(s),fullPath:l,remote:r});m=Se(i,e),p=Ce(i,e),h=p?.href.startsWith(`https:`)??!1,t[4]=s,t[5]=i,t[6]=n,t[7]=l,t[8]=r,t[9]=p,t[10]=m,t[11]=h}else p=t[9],m=t[10],h=t[11];let g=h,_;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,K.jsx)(`p`,{className:`sheet-lead`,children:`Add one server for your user, named orbit. Cards show the agent's name, so you can tell your agents apart.`}),t[12]=_):_=t[12];let v;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,K.jsx)(`span`,{className:`control-field-label`,children:`Agent app`}),t[13]=v):v=t[13];let y,b;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>{let t=he(e.currentTarget.value);a(t.id),c(t.agentName)},b=de.map(qe),t[14]=y,t[15]=b):(y=t[14],b=t[15]);let x,S;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,K.jsx)(`optgroup`,{label:`More apps`,children:fe.map(Ke)}),S=(0,K.jsx)(We,{app:pe}),t[16]=x,t[17]=S):(x=t[16],S=t[17]);let C;t[18]===i?C=t[19]:(C=(0,K.jsxs)(`label`,{className:`control-field`,children:[v,(0,K.jsxs)(`select`,{id:`mcpClientSelect`,className:`select-chevron-field`,value:i,onChange:y,children:[b,x,S]})]}),t[18]=i,t[19]=C);let w;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,K.jsx)(`span`,{className:`control-field-label`,children:`Agent name`}),t[20]=w):w=t[20];let T;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(T=e=>c(e.currentTarget.value),t[21]=T):T=t[21];let E;t[22]===s?E=t[23]:(E=(0,K.jsxs)(`label`,{className:`control-field`,children:[w,(0,K.jsx)(`input`,{id:`mcpAgentNameInput`,value:s,autoComplete:`off`,spellCheck:!1,onChange:T})]}),t[22]=s,t[23]=E);let D;t[24]!==C||t[25]!==E?(D=(0,K.jsxs)(`div`,{className:`control-grid sheet-fields`,children:[C,E]}),t[24]=C,t[25]=E,t[26]=D):D=t[26];let O;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,K.jsx)(`p`,{className:`sheet-note`,children:me}),t[27]=O):O=t[27];let k;t[28]===f.where?k=t[29]:(k=(0,K.jsx)(`p`,{className:`sheet-lead`,"data-mcp-helper":``,children:f.where}),t[28]=f.where,t[29]=k);let A=`the ${f.label} setup`,j;t[30]===m?j=t[31]:(j=()=>ze(m,`Setup copied`),t[30]=m,t[31]=j);let M,N;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(M={"data-copy-connect":`setup`},N={"data-mcp-config":``},t[32]=M,t[33]=N):(M=t[32],N=t[33]);let P;t[34]!==g||t[35]!==p?(P=p?(0,K.jsx)(`a`,{className:`sheet-quiet-button`,href:p.href,"data-mcp-install":``,target:g?`_blank`:void 0,rel:g?`noopener`:void 0,children:p.label}):null,t[34]=g,t[35]=p,t[36]=P):P=t[36];let F;t[37]!==m||t[38]!==A||t[39]!==j||t[40]!==P?(F=(0,K.jsx)(Ee,{text:m,what:A,onCopy:j,copyAttrs:M,codeAttrs:N,extra:P}),t[37]=m,t[38]=A,t[39]=j,t[40]=P,t[41]=F):F=t[41];let R;t[42]!==l||t[43]!==r?(R=r?null:(0,K.jsx)(Ae,{id:`mcpFullPathToggle`,checked:l,onChange:e=>u(e.currentTarget.checked),title:`The app can't find orbit`,description:`Use the full path to Orbit instead, for apps started outside your terminal.`}),t[42]=l,t[43]=r,t[44]=R):R=t[44];let z;return t[45]!==D||t[46]!==k||t[47]!==F||t[48]!==R?(z=(0,K.jsxs)(`div`,{className:`sheet-steps`,children:[_,D,O,k,F,R]}),t[45]=D,t[46]=k,t[47]=F,t[48]=R,t[49]=z):z=t[49],z}function Ke(e){return(0,K.jsx)(We,{app:e},e.id)}function qe(e){return(0,K.jsx)(We,{app:e},e.id)}var Je=new WeakMap,Ye=()=>{};function Xe(e={}){if(typeof window>`u`||typeof document>`u`)return Ye;let t=typeof e.threshold==`number`&&!Number.isNaN(e.threshold)?e.threshold:4;if(t===1/0)return Ye;let n=e.target===void 0?document.body:e.target;if(!n)return Ye;let r=e.attribute||``,i=e.className||`is-scrolled`,a=r?`attr:${r}`:`class:${i}`,o=Je.get(n);o||Je.set(n,o=new Map);let s=o.get(a);s||(s=Ze(n,r,i),o.set(a,s));let c={threshold:t};s.users.add(c),s.update();let l=!1;return()=>{if(!l){if(l=!0,s.users.delete(c),s.users.size>0)return s.update();o.delete(a),s.unbind()}}}function Ze(e,t,n){let r=t?e.getAttribute(t):e.classList.contains(n),i=null,a=new Set,o=()=>{let r=1/0;for(let e of a)r=Math.min(r,e.threshold);let o=window.scrollY>r;o!==i&&(i=o,t?e.setAttribute(t,String(o)):e.classList.toggle(n,o))};return window.addEventListener(`scroll`,o,{passive:!0}),{users:a,update:o,unbind(){window.removeEventListener(`scroll`,o),t?r===null?e.removeAttribute(t):e.setAttribute(t,r):e.classList.toggle(n,r)}}}var Qe={copied:`Copied`,done:e=>e?`Copied ${e}.`:`Copied.`,selected:e=>`Selected ${e||`the text`}. Press Ctrl+C or Cmd+C to copy it.`,failed:e=>`Couldn't copy ${e||`the text`}.`},$e=2e3,et=`button[data-copy], button[data-copy-target]`,tt=new WeakSet,nt=new Map,rt=new Map,it=0,at;function ot(e){for(let t of e.childNodes)if(t.nodeType===3&&t.data.trim())return t;return null}function st(e){let t=ot(e),n=``;for(let e=t?.nextSibling;e;e=e.nextSibling)n+=e.textContent??``;return n.replace(/\s+/g,` `).trim()}var ct=e=>e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement,lt=e=>ct(e)?e.value:e instanceof HTMLElement?e.innerText:e.textContent??``;function ut(e){let t=e.getAttribute(`data-copy-target`);if(!t)return null;let n=e.getRootNode();if(t.startsWith(`#`)){let e=t.slice(1),r=n.getElementById?.(e)??document.getElementById(e);if(r)return r}try{return n.querySelector?.(t)??null}catch{return null}}function dt(e){if(e.hasAttribute(`data-copy`))return e.getAttribute(`data-copy`);let t=ut(e);return t?lt(t):null}function ft(e,t){let n=t.trim();if(!n||!e.parentElement)return null;for(let t of e.parentElement.querySelectorAll(`*`))if(!(t===e||t.contains(e)||e.contains(t))&&lt(t).trim()===n)return t;return null}function pt(e,t){if(ct(e))return e.focus(),e.select(),!0;let n=getComputedStyle(e);(n.userSelect===`none`||n.webkitUserSelect===`none`)&&(t.set(e,[e.style.getPropertyValue(`user-select`),e.style.getPropertyValue(`-webkit-user-select`)]),e.style.setProperty(`-webkit-user-select`,`text`),e.style.setProperty(`user-select`,`text`));let r=getSelection();return r?.selectAllChildren(e),!!r?.toString().trim()}function mt(e){let t=rt.get(e);return t?.isConnected||(t=document.createElement(`div`),t.className=`visually-hidden`,t.setAttribute(`role`,`status`),t.setAttribute(`aria-live`,`polite`),t.setAttribute(`aria-atomic`,`true`),t.setAttribute(`data-copy-status`,``),Object.assign(t.style,{position:`absolute`,width:`1px`,height:`1px`,margin:`-1px`,padding:`0`,overflow:`hidden`,clip:`rect(0 0 0 0)`,whiteSpace:`nowrap`,border:`0`}),e.append(t),rt.set(e,t)),t}function ht(e,t){let n=e.closest(`dialog`),r=mt(n?.open?n:document.body);clearTimeout(at);for(let e of rt.values())e.textContent=``;at=setTimeout(()=>r.textContent=t,100)}function gt(e){let t=nt.get(e);t&&(clearTimeout(t.timer),t.node&&t.node.data===t.word&&(t.node.data=t.original),e.removeAttribute(`data-copied`),nt.delete(e))}function _t(e,t){let n=ot(e);nt.has(e)&&nt.get(e).node!==n&&gt(e);let r=nt.get(e);r||(r={node:n,original:n?.data,word:t,timer:0},nt.set(e,r)),clearTimeout(r.timer),n&&(n.data=t),e.setAttribute(`data-copied`,``),r.timer=setTimeout(()=>gt(e),$e)}function vt(e,t={}){if(typeof document>`u`)return()=>{};let n=e??document,r={...Qe,...t.labels};document.documentElement.setAttribute(`data-js`,``),it++,document.body&&mt(document.body);let i=new Set,a=new Map,o=!0;async function s(e){let t=dt(e);if(t===null)return;let n=st(e);try{if(!navigator.clipboard?.writeText)throw Error(`No clipboard here`);if(await navigator.clipboard.writeText(t),!o)return;i.add(e),_t(e,r.copied),ht(e,r.done(n))}catch{if(!o)return;let i=ut(e)??(e.hasAttribute(`data-copy`)?ft(e,t):null);ht(e,i&&pt(i,a)?r.selected(n):r.failed(n))}}let c=e=>{let t=e.target instanceof Element?e.target.closest(et):null;t&&!tt.has(e)&&(n===t||n.contains(t))&&(tt.add(e),e.preventDefault(),s(t))};return n.addEventListener(`click`,c),()=>{o&&(o=!1,n.removeEventListener(`click`,c),i.forEach(gt),a.forEach(([e,t],n)=>{n.style.setProperty(`user-select`,e),n.style.setProperty(`-webkit-user-select`,t)}),--it===0&&(clearTimeout(at),rt.forEach(e=>e.remove()),rt.clear()))}}var yt=null;function bt(e={}){if(typeof window>`u`||typeof document>`u`)return{sync:xt,stop:xt};if(yt)return yt;let t={mountTo:void 0,signatureStars:7,canvasStars:!0,meteors:!0,parallax:!0,meteorMinDelay:14e3,meteorMaxDelay:42e3,densityScale:1,...e},n=St(t.mountTo),r=!1;if(!n){n=document.createElement(`div`),n.className=`grain`,n.setAttribute(`aria-hidden`,`true`);let e=document.createElement(`div`);e.className=`milky-way`,e.setAttribute(`aria-hidden`,`true`),n.appendChild(e),document.body.insertBefore(n,document.body.firstChild),r=!0}else if(!n.querySelector(`.milky-way`)){let e=document.createElement(`div`);e.className=`milky-way`,e.setAttribute(`aria-hidden`,`true`),n.insertBefore(e,n.firstChild)}Ct(n,t.signatureStars);let i=null,a=null,o=[],s=0,c=0,l=0,u=!1,d=Math.min(window.devicePixelRatio||1,2),f={x:0,y:0,tx:0,ty:0};if(t.canvasStars){i=document.createElement(`canvas`),i.className=`starfield-canvas`,i.setAttribute(`aria-hidden`,`true`),a=i.getContext(`2d`);let e=n.querySelector(`.milky-way`);e&&e.nextSibling?n.insertBefore(i,e.nextSibling):e?n.appendChild(i):n.insertBefore(i,n.firstChild)}function p(){i&&a&&(s=window.innerWidth,c=window.innerHeight,i.width=Math.round(s*d),i.height=Math.round(c*d),i.style.width=s+`px`,i.style.height=c+`px`,a.setTransform(d,0,0,d,0,0),m())}function m(){if(!a)return;let e=s*c/1296e3*t.densityScale,n=[{count:Math.round(320*e),depth:.12,sizes:[[1,.9],[1.4,.1]],glow:0},{count:Math.round(160*e),depth:.3,sizes:[[1,.5],[1.6,.4],[2.4,.1]],glow:1.8},{count:Math.round(44*e),depth:.58,sizes:[[1.8,.5],[2.6,.38],[3.6,.12]],glow:2.4}],r=Et(12648430);o=[];for(let e of n)for(let t=0;t<e.count;t++){let t=Tt(r(),e.sizes);o.push({x:r()*s,y:r()*c,size:t,depth:e.depth,glow:t>=2?e.glow:0,rgb:wt(r()),period:2.2+r()*5.4,phase:r()*Math.PI*2,amp:.25+r()*.5,baseAlpha:t<1.5?.45+r()*.28:.55+r()*.22})}}function h(e){if(!a)return;t.parallax?(f.x+=(f.tx-f.x)*.06,f.y+=(f.ty-f.y)*.06):(f.x=0,f.y=0),a.clearRect(0,0,s,c),a.globalCompositeOperation=`lighter`;let n=e/1e3;for(let e=0;e<o.length;e++){let t=o[e],r=.5+.5*Math.sin(n*(2*Math.PI/t.period)+t.phase),i=t.baseAlpha*(1-t.amp+t.amp*r),s=t.x-f.x*t.depth*70,c=t.y-f.y*t.depth*70,[l,u,d]=t.rgb;if(t.glow>0){let e=t.size*t.glow,n=a.createRadialGradient(s,c,0,s,c,e);n.addColorStop(0,`rgba(${l},${u},${d},${i*.85})`),n.addColorStop(.35,`rgba(${l},${u},${d},${i*.3})`),n.addColorStop(1,`rgba(${l},${u},${d},0)`),a.fillStyle=n,a.beginPath(),a.arc(s,c,e,0,Math.PI*2),a.fill(),a.fillStyle=`rgba(${l},${u},${d},${i})`,a.beginPath(),a.arc(s,c,t.size/2,0,Math.PI*2),a.fill()}else{let e=t.size/2;a.fillStyle=`rgba(${l},${u},${d},${i})`,a.fillRect(s-e,c-e,t.size,t.size)}}a.globalCompositeOperation=`source-over`,u&&(l=requestAnimationFrame(h))}function g(){a&&(o.length||m(),h(0))}function _(){a&&!u&&(u=!0,l=requestAnimationFrame(h))}function v(){u=!1,l&&cancelAnimationFrame(l),l=0}function y(){let e=document.documentElement.getAttribute(`data-theme`);return e===`dark`||e!==`light`&&window.matchMedia(`(prefers-color-scheme: dark)`).matches}function b(){if(document.documentElement.hasAttribute(`data-shot`))return!0;let e=document.documentElement.getAttribute(`data-motion`);return e===`reduce`||e!==`full`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches}function x(){let e=y(),t=b();e?(o.length||p(),t||document.hidden?(v(),g()):_()):(v(),a&&a.clearRect(0,0,s,c))}function S(e){t.parallax&&s&&c&&(f.tx=e.clientX/s-.5,f.ty=e.clientY/c-.5)}function C(){p(),x()}let w=new MutationObserver(()=>x());w.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-theme`,`data-motion`,`data-shot`]});let T=window.matchMedia(`(prefers-reduced-motion: reduce)`),E=window.matchMedia(`(prefers-color-scheme: dark)`);T.addEventListener(`change`,x),E.addEventListener(`change`,x),document.addEventListener(`visibilitychange`,x),window.addEventListener(`resize`,C,{passive:!0}),window.addEventListener(`pointermove`,S,{passive:!0});let D=0;function O(){if(!t.meteors)return;let e=t.meteorMaxDelay-t.meteorMinDelay,n=t.meteorMinDelay+Math.random()*e;D=window.setTimeout(k,n)}function k(){if(D=0,!t.meteors)return;if(!y()||b()||document.hidden){O();return}let e=window.innerWidth,r=window.innerHeight,i=Math.random()*e*.6,a=Math.random()*r*.55,o=380+Math.random()*520,s=18+Math.random()*26,c=s*Math.PI/180,l=i+Math.cos(c)*o,u=a+Math.sin(c)*o,d=document.createElement(`div`);d.className=`meteor`,d.setAttribute(`aria-hidden`,`true`),d.style.setProperty(`--from-x`,i+`px`),d.style.setProperty(`--from-y`,a+`px`),d.style.setProperty(`--to-x`,l+`px`),d.style.setProperty(`--to-y`,u+`px`),d.style.setProperty(`--angle`,s+`deg`),n.appendChild(d),d.addEventListener(`animationend`,()=>d.remove(),{once:!0}),O()}i&&p(),x(),O();function A(){v(),D&&=(window.clearTimeout(D),0),w.disconnect(),T.removeEventListener(`change`,x),E.removeEventListener(`change`,x),document.removeEventListener(`visibilitychange`,x),window.removeEventListener(`resize`,C),window.removeEventListener(`pointermove`,S),i&&i.parentNode&&i.parentNode.removeChild(i),n.querySelectorAll(`.signature-star`).forEach(e=>e.remove()),n.querySelectorAll(`.meteor`).forEach(e=>e.remove()),r&&n.parentNode&&n.parentNode.removeChild(n),yt=null}return yt={sync:x,stop:A},yt}function xt(){}function St(e){return e?typeof e==`string`?document.querySelector(e):e instanceof Element?e:null:document.querySelector(`.grain`)}function Ct(e,t){e.querySelectorAll(`.signature-star`).forEach(e=>e.remove());let n=Et(6070757);for(let r=0;r<t;r++){let t=document.createElement(`div`);t.className=`signature-star`,t.setAttribute(`aria-hidden`,`true`),t.style.left=(6+n()*88).toFixed(2)+`%`,t.style.top=(8+n()*78).toFixed(2)+`%`,t.style.animationDelay=(-n()*4.8).toFixed(2)+`s`,e.appendChild(t)}}function wt(e){return e<.8?[255,255,255]:e<.93?[255,222,186]:[195,218,255]}function Tt(e,t){let n=0;for(let[r,i]of t)if(n+=i,e<=n)return r;return t[t.length-1][0]}function Et(e){let t=e>>>0;return function(){t=t+1831565813>>>0;let e=t;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}}function Dt(e,{image:t=!1}={}){if(typeof e!=`string`)return!1;let n=e.replace(/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,``).replace(/[\t\n\r]/g,``),r=/^([a-zA-Z][a-zA-Z0-9+.-]*):/.exec(n)?.[1].toLowerCase();return!r||r===`http`||r===`https`?!0:t?r===`data`&&/^data:image\//i.test(n):r===`mailto`}var Ot=(e,t,n)=>n?((e+t)%n+n)%n:0,kt=(e,t)=>`Image ${e+1} of ${t}`,At=/[\t\n\f\r ]/;function jt(e){let t=e??``,n=[],r=0;for(;r<t.length;){for(;r<t.length&&(At.test(t[r])||t[r]===`,`);)r++;if(r>=t.length)break;let e=r;for(;r<t.length&&!At.test(t[r]);)r++;let i=t.slice(e,r),a=[];if(i.endsWith(`,`))i=i.replace(/,+$/,``);else{let e=``,n=!1;for(;r<t.length;r++){let i=t[r];if(n)e+=i,i===`)`&&(n=!1);else if(i===`,`){r++;break}else At.test(i)?(e&&a.push(e),e=``):(e+=i,i===`(`&&(n=!0))}e&&a.push(e)}let o=a.length===1?/^(\d+)w$/.exec(a[0]):null;i&&o&&Number(o[1])>0&&n.push({url:i,w:Number(o[1])})}return n.sort((e,t)=>e.w-t.w)}var Mt=(e,t)=>e.find(e=>e.w>=t)??e[e.length-1]??null;function Nt(e,t,n,r,i){let a=i?Math.min(1,n/e):Math.min(1,n/e,r/t);return{width:Math.round(e*a),height:Math.round(t*a)}}function Pt(e,t,n,r){let i=Nt(e,t,n,r,!1),a=Nt(e,t,n,r,!0);return a.height>r&&i.width<a.width*.75}function Ft(e,t,n){if(![e,t,n].every(Number.isFinite))return 0;let r=Math.abs(e);return r<24||r<2*Math.abs(t)||r<48&&r/Math.max(n,1)<.4?0:e<0?1:-1}function It(e,t){let n=Number(e);return e&&Number.isFinite(n)&&n>0?n:Number.isFinite(t)&&t>0?t:1}function Lt(e=globalThis){let t=e.HTMLDialogElement;return typeof t==`function`&&typeof t.prototype?.showModal==`function`}var Rt={close:`Close`,previous:`Previous image`,next:`Next image`,fill:`Fill width`,fit:`Fit to screen`,dialog:`Images`,position:kt},zt=`galleryLightbox`,Bt=()=>!!history.state?.[zt],Vt=null,Ht=!1,Ut=0;function Wt(){let e=history.state;try{history.pushState(e&&typeof e==`object`?{...e,[zt]:1}:{[zt]:1},``)}catch{}}function Gt(){Ht?(Ht=!1,Vt?.open&&Wt()):Vt?.open?Vt.close():Kt()}function Kt(){Bt()&&!Ht&&(Ht=!0,history.back())}var qt=new WeakMap;function Jt(e=document,t={}){if(!Lt())return()=>{};let n={...Rt,...t.labels},r=[...e.querySelectorAll(`[data-gallery]`)];e instanceof HTMLElement&&e.matches(`[data-gallery]`)&&r.unshift(e);let i=[];for(let e of r){if(qt.has(e))continue;let t=Xt(e,n);qt.set(e,t),i.push(()=>{t(),qt.delete(e)})}return()=>i.splice(0).forEach(e=>e())}function J(e,t,n=``){let r=document.createElement(e);return r.className=t,n&&(r.textContent=n),r}function Yt(e,t){let n=J(`button`,`gallery-btn ${e}`);return n.type=`button`,n.append(J(`span`,`gallery-sr`,t)),n}function Xt(e,t){let n=null,r=[],i=0,a=!1,o=0,s=0,c=null,l=null,u=0,d=()=>[...e.querySelectorAll(`a[href]`)].filter(e=>Dt(e.href)),f=e=>d().forEach(t=>e?t.setAttribute(`aria-haspopup`,`dialog`):t.removeAttribute(`aria-haspopup`));function p(e){let t=e.querySelector(`img`),n=It(e.dataset.width,t?.naturalWidth??0),r=It(e.dataset.height,t?.naturalHeight??0),i=jt(e.dataset.srcset).filter(e=>Dt(e.url,{image:!0}));return{a:e,w:n,h:r,set:i.length?i:[{url:e.href,w:n}],alt:t?.alt??``,caption:e.dataset.caption??``}}function m(){let n=e.getAttribute(`aria-labelledby`),r=n&&n.split(/\s+/).map(e=>document.getElementById(e)?.textContent?.trim()).filter(Boolean).join(` `);return e.getAttribute(`aria-label`)||r||t.dialog}function h(){let e=J(`dialog`,`gallery-dialog`),n=J(`div`,`gallery-bar`),r=Yt(`gallery-fill`,``);r.setAttribute(`aria-keyshortcuts`,`F`);let i=J(`span`,``);r.replaceChildren(i,J(`kbd`,``,`F`)),r.lastElementChild.setAttribute(`aria-hidden`,`true`);let a=Yt(`gallery-close`,t.close);a.autofocus=!0,n.append(r,a);let o=Yt(`gallery-prev`,t.previous),s=Yt(`gallery-next`,t.next),c=J(`div`,`gallery-stage`),d=J(`img`,`gallery-img`);d.decoding=`async`,d.draggable=!1,c.append(d);let f=J(`div`,`gallery-foot`),p=J(`p`,`gallery-caption`),m=J(`div`,`gallery-dots`);m.setAttribute(`aria-hidden`,`true`),f.append(p,m);let h=J(`p`,`gallery-sr gallery-status`);return h.setAttribute(`aria-live`,`polite`),h.setAttribute(`aria-atomic`,`true`),e.append(n,o,c,s,f,h),document.body.append(e),a.addEventListener(`click`,()=>e.close()),o.addEventListener(`click`,()=>v(-1)),s.addEventListener(`click`,()=>v(1)),r.addEventListener(`click`,w),e.addEventListener(`close`,_),c.addEventListener(`click`,t=>{Date.now()-u<400||(t.target===d?w():t.target===c&&e.close())}),c.addEventListener(`pointerdown`,e=>{l=e.pointerType!==`mouse`&&e.isPrimary?{x:e.clientX,y:e.clientY,t:e.timeStamp}:null}),c.addEventListener(`pointercancel`,()=>l=null),c.addEventListener(`pointerup`,e=>{if(!l||!e.isPrimary)return;let t=Ft(e.clientX-l.x,e.clientY-l.y,e.timeStamp-l.t);l=null,t&&(u=Date.now(),v(t))}),{dialog:e,fill:r,fillText:i,close:a,prev:o,next:s,stage:c,img:d,caption:p,dots:m,status:h}}function g(e){r=d().map(p),f(!0),n??=h();let{dialog:t,prev:i,next:o,dots:s}=n;t.setAttribute(`aria-label`,m()),i.hidden=o.hidden=s.hidden=!(r.length>1),s.replaceChildren(...r.map(()=>document.createElement(`i`))),c=e,a=!1,t.showModal(),Vt=t,!Ht&&!Bt()&&Wt(),addEventListener(`resize`,T),document.addEventListener(`keydown`,E),x(Math.max(0,r.findIndex(t=>t.a===e)),0)}function _(){Vt?.open||(Vt=null),removeEventListener(`resize`,T),document.removeEventListener(`keydown`,E),s++,Kt(),c?.focus(),c=null}function v(e,t=Ot(i,e,r.length)){r.length>1&&t!==i&&x(t,Math.sign(e))}function y(){let{stage:e}=n,t=getComputedStyle(e);return[e.clientWidth-parseFloat(t.paddingLeft)-parseFloat(t.paddingRight),e.clientHeight-parseFloat(t.paddingTop)-parseFloat(t.paddingBottom)]}function b(e){let{dialog:r,fill:i,fillText:o,close:s,stage:c,img:l}=n,[u,d]=y(),f=Pt(e.w,e.h,u,d);a&&=f;let p=document.activeElement;(!f&&p===i||!a&&p===c)&&s.focus(),r.classList.toggle(`can-fill`,f),r.classList.toggle(`is-filled`,a),i.hidden=!f,o.textContent=a?t.fit:t.fill,a?(c.tabIndex=0,[u,d]=y()):c.removeAttribute(`tabindex`);let m=Nt(e.w,e.h,u,d,a);return l.style.width=`${m.width}px`,l.style.height=`${m.height}px`,Mt(e.set,m.width*(devicePixelRatio||1))}function x(e,a){let{caption:o,dots:s,status:c,dialog:l,img:u}=n;i=e;let d=r[e];l.dataset.index=String(e),u.dataset.href!==d.a.href&&u.classList.add(`is-loading`),u.alt=d.alt;let f=b(d);n.stage.scrollTop=0,o.textContent=d.caption,o.hidden=!d.caption,[...s.children].forEach((t,n)=>t.classList.toggle(`is-current`,n===e)),c.textContent=`${t.position(e,r.length)}. ${d.alt}`,S(f,d,e,a);for(let t of[-1,1]){let n=r[Ot(e,t,r.length)];if(n&&n!==d){let e=new Image;e.decoding=`async`,e.src=Mt(n.set,Nt(n.w,n.h,...y(),!1).width*(devicePixelRatio||1)).url}}}function S(e,t,r,i){let{img:a}=n,c=++s,l=new Image;l.src=e.url,l.decode().catch(()=>{}).then(()=>{c===s&&(a.src=e.url,a.alt=t.alt,a.width=t.w,a.height=t.h,a.dataset.index=String(r),a.dataset.href=t.a.href,a.classList.remove(`is-loading`),o=e.w,i!==null&&(a.style.setProperty(`--gallery-dir`,String(i)),a.classList.add(`is-in`),a.offsetWidth,a.classList.remove(`is-in`)))})}function C(){let e=r[i],t=b(e);t.w>o&&S(t,e,i,null)}function w(){let{dialog:e,stage:t}=n;e.classList.contains(`can-fill`)&&(a=!a,C(),t.scrollTop=0)}function T(){C()}function E(e){if(e.altKey||e.ctrlKey||e.metaKey)return;let{stage:t}=n,i=e.key,o=a&&/^(ArrowUp|ArrowDown|PageUp|PageDown|Home|End)$/.test(i);if(!(o&&e.target===t)){if(o){let e=i===`Home`||i===`End`?t.scrollHeight:i.startsWith(`Page`)?t.clientHeight*.9:48;t.scrollBy({top:/Up$|Home/.test(i)?-e:e})}else if(i===`ArrowRight`)v(1);else if(i===`ArrowLeft`)v(-1);else if(i===`Home`)v(-1,0);else if(i===`End`)v(1,r.length-1);else if(i===`f`||i===`F`)w();else return;e.preventDefault()}}let D=t=>{let n=t.target.closest?.(`a[href]`);if(!(!n||!e.contains(n)||!Dt(n.href)||t.defaultPrevented||t.button||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)){t.preventDefault();try{g(n)}catch{location.assign(n.href)}}};return e.addEventListener(`click`,D),Ut++||addEventListener(`popstate`,Gt),f(!0),()=>{if(e.removeEventListener(`click`,D),removeEventListener(`resize`,T),document.removeEventListener(`keydown`,E),f(!1),n){let{dialog:e}=n;e.removeEventListener(`close`,_),e.open&&(e.close(),_()),e.remove(),n=null}--Ut||(removeEventListener(`popstate`,Gt),Ht=!1)}}var Zt=(e,t,n)=>Math.min(n,Math.max(t,e)),Qt=e=>e<.5?2*e*e:1-(-2*e+2)**2/2;function $t(e){let t=e;return()=>{t|=0,t=t+1831565813|0;let e=Math.imul(t^t>>>15,1|t);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296}}var en=e=>Math.round(e*4),tn=(e,t,n,r)=>Math.ceil(Math.max(...[[0,0],[e,0],[0,t],[e,t]].map(([e,t])=>Math.hypot(e-n,t-r))))+4,nn=(e,t,n)=>150+210*Qt(Zt((n-e)/Math.min(t,n*1.1),0,1)),rn=e=>180/(Math.PI*e),an=(e,t,n,r)=>e>=r?e:Math.min(r,e+t*Math.min(n,1e3)/1e3);function on(e,t,n){let r=t-e;return r<=.01?null:n.still?t:n.developing&&r<n.minStep?null:Math.min(t,e+Math.max(.4,Math.min(5,r*.18))*n.frames)}var sn=(e,t)=>t?1:Zt(e*60/1e3,1,15),cn=e=>360/e,ln={approved:{drift:.75,period:60,max:160},developing:{drift:cn(240),period:240,max:240},timelapse:{drift:cn(90),period:90,max:300}};Object.keys(ln);var Y=Math.PI*2,un=Math.PI/180,dn=[{alpha:.26,width:.8},{alpha:.5,width:1.05},{alpha:.86,width:1.5}],fn=4096,pn=1.19,mn={"--sky-star-cool":[196,214,255,1],"--sky-star-white":[240,244,255,1],"--sky-star-warm":[255,224,186,1],"--sky-star-head":[255,255,255,.9],"--sky-night-scrim":[8,12,26,.74],"--sky-night-ink":[168,192,255,1],"--sky-night-outline":[92,196,236,.9],"--sky-day-scrim":[245,236,214,1],"--sky-day-stain-1":[79,112,72,.16],"--sky-day-stain-2":[184,137,61,.18],"--sky-day-ink":[29,37,40,1],"--sky-day-outline":[29,37,40,.92]},hn=[[50,`ultra-condensed`],[62.5,`extra-condensed`],[75,`condensed`],[87.5,`semi-condensed`],[100,`normal`],[112.5,`semi-expanded`],[125,`expanded`],[150,`extra-expanded`],[200,`ultra-expanded`]],gn={poleFallback:[.5,.3],density:75e-5,grid:!0,reticle:!0,scrim:!0,...ln.approved,seed:1554098974,start:12,still:24,alwaysNight:!1,instantExposure:18},_n=()=>{},vn=()=>document.documentElement.setAttribute(`data-js`,``),X=(e,t=1)=>`rgba(${e[0]},${e[1]},${e[2]},${Math.round(e[3]*t*1e4)/1e4})`;function yn(e,t){if(!t)return null;e.fillStyle=`#010203`,e.fillStyle=t;let n=String(e.fillStyle);if(n===`#010203`)return t.replace(/\s/g,``).toLowerCase()===`#010203`?[1,2,3,1]:null;if(n[0]===`#`)return[parseInt(n.slice(1,3),16),parseInt(n.slice(3,5),16),parseInt(n.slice(5,7),16),1];let r=(n.match(/[\d.]+/g)??[]).map(Number),i=n.startsWith(`color(`)?255:1;return r.length>=3?[r[0]*i,r[1]*i,r[2]*i,r[3]??1]:null}function bn(e){return!e||e===`normal`?100:e.endsWith(`%`)?parseFloat(e)||100:hn.find(([,t])=>t===e)?.[0]??100}var xn=e=>hn.reduce((t,n)=>Math.abs(n[0]-e)<Math.abs(t[0]-e)?n:t)[1],Sn=new Map;function Cn(e,t,n){let r=`${n} ${t}`;if(Sn.has(r))return Sn.get(r);let i=!1;if(`fontStretch`in e){e.save(),e.font=`800 100px ${t}`,e.fontStretch=`normal`;let r=e.measureText(`STARSCAPE`).width;e.fontStretch=n;let a=e.measureText(`STARSCAPE`).width;e.restore(),i=Math.abs(a-r)>r*.05}return Sn.set(r,i),i}function wn(e){let t=[``],n=e=>{for(let r of e.childNodes)r.nodeType===3?t[t.length-1]+=r.data:r.nodeName===`WBR`?t.push(``):r.nodeType===1&&n(r)};n(e);let r=getComputedStyle(e).textTransform===`uppercase`,i=e=>{let t=e.replace(/\s+/g,` `).trim();return r?t.toUpperCase():t},a=i(t.join(``)),o=t.map(i).filter(Boolean);return e=>e<560&&o.length>1?o:[a]}var Tn=class{constructor(e,t={}){vn(),this.host=e;let n={...gn,instant:u()};for(let[e,r]of Object.entries(t))r!==void 0&&(n[e]=r);if(n.wordmark&&typeof n.wordmark.lines!=`function`){let e=n.wordmark.lines;n.wordmark={...n.wordmark,lines:e?()=>e:wn(n.wordmark.slot)}}this.o=n,this.trails=document.createElement(`canvas`),this.front=document.createElement(`canvas`),this.trails.className=`sky-trails`,this.front.className=`sky-front`,this.E=0,this.target=0,this.visible=!0,this.fontsReady=!1,this.raf=0,this.wake=0,this.slept=!1,this.lastTick=0,this.groups=[],this.stars=[],this.w=0,this.h=0,this.dpr=1,this.R=0,this.tScale=1,this.pxPerDeg=1,this.minStep=.1,this.pole=null,this.dead=!1,this.queued=!1,this.points=n.start<=0||n.still<=0||n.instantExposure<=0,e.append(this.trails,this.front);let r=n.instant||g();this.scrimIn=+!!r,this.spin=this.trails.animate([{transform:`rotate(0deg)`},{transform:`rotate(-360deg)`}],{duration:n.period*1e3,iterations:1/0}),r&&this.spin.pause(),this.tick=this.tick.bind(this),this.onVisibility=()=>{this.lastTick=0,this.kick()};let i=new ResizeObserver(()=>this.layout());i.observe(e),n.wordmark&&i.observe(n.wordmark.slot);let a=new IntersectionObserver(e=>{this.visible=e[e.length-1].isIntersecting,this.syncMotion()});a.observe(e);let o=()=>this.prefsChanged(),s=new MutationObserver(o);s.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-theme`,`data-motion`]}),this.observers=[i,a,s],this.media=typeof matchMedia==`function`?[`(prefers-color-scheme: dark)`,`(prefers-reduced-motion: reduce)`].map(e=>matchMedia(e)):[];for(let e of this.media)e.addEventListener(`change`,o);this.unprefs=x(o),this.unmedia=()=>this.media.forEach(e=>e.removeEventListener(`change`,o)),document.addEventListener(`visibilitychange`,this.onVisibility);let c=document.fonts,l=c?n.wordmark?[c.load(this.wordmarkFont(100)),c.ready]:[c.ready]:[];Promise.all(l.map(e=>Promise.resolve(e).catch(_n))).then(()=>{this.dead||(this.fontsReady=!0,this.layout(),this.kick())}),this.layout(),this.setTarget(n.instant?n.instantExposure:g()?n.still:n.start)}get exposure(){return this.E}developing(){return this.o.drift>0&&this.visible&&!document.hidden&&!this.o.instant&&!g()&&this.target<this.o.max}syncMotion(){this.o.instant||this.dead||(g()?(this.spin.pause(),this.scrimIn=1,this.setTarget(this.o.still)):this.visible?(this.spin.play(),this.kick()):this.spin.pause())}prefsChanged(){this.queued||this.dead||(this.queued=!0,queueMicrotask(()=>{this.queued=!1,!this.dead&&(this.syncMotion(),this.paintFront())}))}wordmarkFace(){let e=this.o.wordmark,t=getComputedStyle(e.slot),n=e.font??{};return{family:n.family??t.fontFamily??`sans-serif`,weight:String(n.weight??(t.fontWeight||`800`)),stretch:bn(n.stretch??t.fontStretch)}}wordmarkFont(e){let{family:t,weight:n}=this.wordmarkFace();return`${n} ${e}px ${t}`}polePosition(){let e=this.host.getBoundingClientRect();if(this.o.pole){let t=this.o.pole.getBoundingClientRect();if(t.width)return[t.left+t.width/2-e.left,t.top+t.height/2-e.top]}return[e.width*this.o.poleFallback[0],e.height*this.o.poleFallback[1]]}refresh(){this.dead||this.layout()}layout(){if(this.dead)return;let e=this.host.getBoundingClientRect(),t=Math.max(1,Math.round(e.width)),n=Math.max(1,Math.round(e.height)),r=Math.min(window.devicePixelRatio||1,2),[i,a]=this.polePosition(),o=tn(t,n,i,a),s=t!==this.w||n!==this.h||r!==this.dpr||o!==this.R||!this.pole||Math.abs(i-this.pole[0])>.5||Math.abs(a-this.pole[1])>.5;if(this.w=t,this.h=n,this.dpr=r,this.pole=[i,a],s){this.R=o,this.minStep=rn(o),this.pxPerDeg=Math.max(t,n)/70,this.tScale=Math.min(r,1.5,fn/(2*o)),this.trails.width=Math.round(2*o*this.tScale),this.trails.height=Math.round(2*o*this.tScale),Object.assign(this.trails.style,{width:`${2*o}px`,height:`${2*o}px`,left:`${i-o}px`,top:`${a-o}px`}),this.front.width=Math.round(t*r),this.front.height=Math.round(n*r),Object.assign(this.front.style,{width:`${t}px`,height:`${n}px`}),this.readStars(),this.buildStars(),this.points&&this.drawPoints();let e=this.E;this.E=0,this.drawTrails(0,e),this.E=e}this.paintFront()}colours(e){let t=getComputedStyle(this.host),n=this.front.getContext(`2d`),r={};for(let i of e)r[i]=yn(n,t.getPropertyValue(i).trim())??mn[i];return r}readStars(){let e=this.colours([`--sky-star-cool`,`--sky-star-white`,`--sky-star-warm`,`--sky-star-head`]);this.stars=[e[`--sky-star-cool`],e[`--sky-star-white`],e[`--sky-star-warm`]],this.head=e[`--sky-star-head`]}buildStars(){let e=this.R,t=$t(this.o.seed),n=Math.min(3600,Math.round(Math.PI*e*e*this.o.density)),r=[];for(let e=0;e<3;e++)for(let t=0;t<3;t++)r.push({b:e,c:t,list:[]});for(let i=0;i<n;i++){let n=Math.sqrt(t())*e;if(n<12)continue;let i=t(),a=i<.7?0:i<.93?1:2,o=t(),s=o<.38?0:o<.82?1:2;r[a*3+s].list.push({r:n,phi:t()*Y})}this.groups=r.filter(e=>e.list.length)}marked(){this.host.hasAttribute(`data-drawn`)||this.host.setAttribute(`data-drawn`,``)}drawPoints(){let e=this.trails.getContext(`2d`),t=this.R;e.setTransform(this.tScale,0,0,this.tScale,0,0);for(let n of this.groups){let r=dn[n.b],i=r.width*.75;e.fillStyle=X(this.stars[n.c],r.alpha),e.beginPath();for(let r of n.list){let n=t+Math.cos(r.phi)*r.r,a=t+Math.sin(r.phi)*r.r;e.moveTo(n+i,a),e.arc(n,a,i,0,Y)}e.fill()}this.drawHeads(e),this.marked()}drawHeads(e){let t=this.R;e.fillStyle=X(this.head),e.beginPath();for(let n of this.groups)if(n.b===2)for(let r of n.list){let n=t+Math.cos(r.phi)*r.r,i=t+Math.sin(r.phi)*r.r;e.moveTo(n+1.2,i),e.arc(n,i,1.2,0,Y)}e.fill()}drawTrails(e,t){if(t<=e)return;let n=this.trails.getContext(`2d`),r=this.R;n.setTransform(this.tScale,0,0,this.tScale,0,0),n.lineCap=`butt`;let i=t-e>=359.99,a=e*un,o=Math.min(t,e+360)*un;for(let e of this.groups){let t=dn[e.b];n.lineWidth=t.width,n.strokeStyle=X(this.stars[e.c],t.alpha),n.beginPath();for(let t of e.list){let e=t.phi+a;n.moveTo(r+Math.cos(e)*t.r,r+Math.sin(e)*t.r),i?n.arc(r,r,t.r,e,e+Y):n.arc(r,r,t.r,e,t.phi+o)}n.stroke()}e===0&&this.drawHeads(n),this.marked()}setTarget(e){this.dead||(this.target=Math.min(this.o.max,Math.max(this.target,e)),this.kick())}kick(){this.raf||this.dead||(this.wake?(clearTimeout(this.wake),this.wake=0,this.raf=requestAnimationFrame(this.tick)):(this.target>this.E+.01||this.developing()||this.scrimIn<1)&&(this.lastTick=0,this.raf=requestAnimationFrame(this.tick)))}tick(e){if(this.raf=0,this.dead)return;let t=this.lastTick?e-this.lastTick:1e3/60;this.lastTick=e;let n=this.developing();n&&(this.target=an(this.target,this.o.drift,t,this.o.max));let r=on(this.E,this.target,{still:this.o.instant||g(),developing:n,minStep:this.minStep,frames:sn(t,this.slept)});this.slept=!1,r!==null&&(this.drawTrails(this.E,r),this.E=r,this.o.onExposure?.(this.E)),this.scrimIn<1&&this.fontsReady&&(this.scrimIn=Math.min(1,this.scrimIn+.05),this.paintFront());let i=this.target-this.E;if(this.scrimIn<1||i>.01&&!(n&&i<this.minStep))this.raf=requestAnimationFrame(this.tick);else if(n){let e=Math.min(500,(this.minStep-i)/this.o.drift*1e3);e<24?this.raf=requestAnimationFrame(this.tick):(this.slept=!0,this.wake=window.setTimeout(()=>{this.wake=0,this.raf=requestAnimationFrame(this.tick)},e))}}layoutWordmark(e){let t=this.o.wordmark;if(!t||!this.fontsReady)return null;let n=t.slot.getBoundingClientRect(),r=this.host.getBoundingClientRect();if(!n.width)return null;let{family:i,weight:a,stretch:o}=this.wordmarkFace(),s=o!==100,c=xn(o),l=s&&Cn(e,i,c),u=s&&!l?t.fauxStretch??pn:1,d=[],f=1e3;e.save();for(let r of t.lines(n.width)){e.font=`${a} ${f}px ${i}`,`fontStretch`in e&&(e.fontStretch=l?c:`normal`);let t=e.measureText(r),o=(t.actualBoundingBoxLeft+t.actualBoundingBoxRight)*u,s=f*n.width/o;d.push({text:r,size:s,family:i,weight:a,keyword:c,native:l,fauxScale:u,left:t.actualBoundingBoxLeft*(s/f)*u,ascent:t.actualBoundingBoxAscent*(s/f),descent:t.actualBoundingBoxDescent*(s/f),x:0,y:0})}e.restore();let p=d.length>1?d[0].size*.075:0,m=d.reduce((e,t)=>e+t.ascent+t.descent,0)+p*(d.length-1),h=m>n.height?n.height/m:1;if(h<1){for(let e of d)e.size*=h,e.left*=h,e.ascent*=h,e.descent*=h;p*=h,m*=h}let g=n.top-r.top+(n.height-m)/2,_=n.width*(1-h)/2;for(let e of d)e.x=n.left-r.left+_+e.left,e.y=g+e.ascent,g+=e.ascent+e.descent+p;return d}textAt(e,t,n){e.save(),e.translate(t.x,t.y),t.fauxScale!==1&&e.scale(t.fauxScale,1),e.font=`${t.weight} ${t.size}px ${t.family}`,`fontStretch`in e&&(e.fontStretch=t.native?t.keyword:`normal`),n===`fill`?e.fillText(t.text,0,0):e.strokeText(t.text,0,0),e.restore()}paintFront(){if(!this.w||!this.pole||this.dead)return;let e=this.front.getContext(`2d`),{w:t,h:n,dpr:r}=this,a=i()===`light`&&!this.o.alwaysNight,[o,s]=this.pole,c=this.colours(a?[`--sky-day-scrim`,`--sky-day-stain-1`,`--sky-day-stain-2`,`--sky-day-ink`,`--sky-day-outline`]:[`--sky-night-scrim`,`--sky-night-ink`,`--sky-night-outline`]),l=a?c[`--sky-day-ink`]:c[`--sky-night-ink`];e.setTransform(r,0,0,r,0,0),e.clearRect(0,0,t,n);let u=this.layoutWordmark(e);if(this.o.scrim){if(e.save(),e.globalAlpha=this.scrimIn,e.fillStyle=X(a?c[`--sky-day-scrim`]:c[`--sky-night-scrim`]),e.fillRect(0,0,t,n),a){let r=(r,i,a,o)=>{let s=e.createRadialGradient(i,a,0,i,a,o);s.addColorStop(0,X(r)),s.addColorStop(1,X(r,0)),e.fillStyle=s,e.fillRect(0,0,t,n)};r(c[`--sky-day-stain-1`],t*.08,n*.06,t*.6),r(c[`--sky-day-stain-2`],t*.95,n*.95,t*.55)}if(u){e.globalCompositeOperation=`destination-out`,e.globalAlpha=1,e.fillStyle=`#000`;for(let t of u)this.textAt(e,t,`fill`);e.globalCompositeOperation=`source-over`,this.o.wordmark.slot.hasAttribute(`data-cut`)||this.o.wordmark.slot.setAttribute(`data-cut`,``)}e.restore()}if(this.o.grid){let t=this.R;e.save(),e.lineWidth=1;for(let n=80;n>=-60;n-=10){let r=(90-n)*this.pxPerDeg;if(r>t)break;e.strokeStyle=X(l,n%30==0?a?.2:.11:a?.11:.06),e.beginPath(),e.arc(o,s,r,0,Y),e.stroke()}for(let n=0;n<24;n++){let r=n/24*Y;e.strokeStyle=X(l,n%6==0?a?.2:.1:a?.08:.045);let i=10*this.pxPerDeg;e.beginPath(),e.moveTo(o+Math.cos(r)*i,s+Math.sin(r)*i),e.lineTo(o+Math.cos(r)*t,s+Math.sin(r)*t),e.stroke()}e.restore()}if(u){e.save(),e.globalAlpha=this.scrimIn,e.lineJoin=`round`,e.lineWidth=a?1.6:1.4,e.strokeStyle=X(a?c[`--sky-day-outline`]:c[`--sky-night-outline`]);for(let t of u)this.textAt(e,t,`stroke`);e.restore()}if(this.o.reticle){e.save(),e.strokeStyle=X(l,a?.45:.32),e.lineWidth=1,e.beginPath(),e.arc(o,s,64,0,Y),e.stroke(),e.setLineDash([2,5]),e.beginPath(),e.arc(o,s,78,0,Y),e.stroke(),e.setLineDash([]);for(let t=0;t<4;t++){let n=Y/4*t;e.beginPath(),e.moveTo(o+Math.cos(n)*84,s+Math.sin(n)*84),e.lineTo(o+Math.cos(n)*96,s+Math.sin(n)*96),e.stroke()}e.restore()}}destroy(){if(!this.dead){this.dead=!0,cancelAnimationFrame(this.raf),clearTimeout(this.wake),this.raf=0,this.wake=0;for(let e of this.observers)e.disconnect();this.unprefs(),this.unmedia(),document.removeEventListener(`visibilitychange`,this.onVisibility),this.spin.cancel(),this.trails.remove(),this.front.remove(),this.host.removeAttribute(`data-drawn`),this.o.wordmark?.slot.removeAttribute(`data-cut`)}}},En=new WeakSet;function Dn(e){let t=0,n=()=>{t||=requestAnimationFrame(()=>{t=0,e()})};return addEventListener(`scroll`,n,{passive:!0}),n(),()=>{removeEventListener(`scroll`,n),cancelAnimationFrame(t)}}function On(e,t){return n=>{let r=String(en(n));e.getAttribute(`data-exposure`)!==r&&e.setAttribute(`data-exposure`,r),t?.(n)}}function kn(e,t={}){if(typeof document>`u`||!e||En.has(e))return _n;let n=e.querySelector(`.sky`);if(!n)return _n;vn(),En.add(e);let{rootMargin:r=`0px 0px 60% 0px`,arrived:i=e.getAttribute(`data-sky-turn`)===`arrived`,onExposure:a,...o}=t,s=null,c=null,l=_n,d=()=>{s=new Tn(n,{pole:e.querySelector(`[data-sky-pole]`),instantExposure:360,scrim:!1,alwaysNight:!0,density:6e-4,seed:46567,start:150,still:360,max:360,drift:0,...o,onExposure:On(e,a)}),i?!u()&&!g()&&s.setTarget(360):l=Dn(()=>{if(u()||g())return;let t=e.getBoundingClientRect();s.setTarget(nn(t.top,t.height,window.innerHeight))})};return u()?d():(c=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&(c.disconnect(),c=null,d())},{rootMargin:r}),c.observe(e)),()=>{c?.disconnect(),l(),s?.destroy(),e.removeAttribute(`data-exposure`),En.delete(e)}}var An=`star-chart:select`,jn=`header, .topbar`,Mn=`.star-chart-star`,Nn=e=>[...e.querySelectorAll(Mn)],Pn=e=>e.querySelector(`.star-chart-core, .star-chart-mark`)??e,Fn=e=>e instanceof Element?e.closest(Mn):null,In=e=>e instanceof Element?e.closest(`[data-star-chart]`):null,Ln=e=>e.button!==0||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,Rn=null,zn=()=>Rn??=new WeakMap;function Bn(e,t){for(let n of e)n.setAttribute(`tabindex`,n===t?`0`:`-1`)}function Vn(e,t){let n=In(e),r=n?.querySelector(`svg.star-chart-svg`);if(!r)return!1;let i=Nn(r),a=t==null?null:i.find(e=>e.dataset.slug===t);if(t!=null&&!a)return!1;for(let e of i)e===a?e.setAttribute(`aria-current`,`true`):e.removeAttribute(`aria-current`);return a&&zn().has(n)&&Bn(i,a),!0}function Hn(e=typeof document>`u`?null:document,t={}){if(!e||typeof window>`u`)return()=>{};document.documentElement.setAttribute(`data-js`,``);let n=[...e.querySelectorAll(`[data-star-chart]`)];e instanceof Element&&e.matches(`[data-star-chart]`)&&n.unshift(e);let r=[];for(let e of n){if(zn().has(e))continue;let n=Un(e,t);n&&(zn().set(e,n),r.push(()=>{zn().delete(e),n()}))}return()=>r.splice(0).forEach(e=>e())}function Un(e,t){let n=e.querySelector(`svg.star-chart-svg`);if(!n||!n.querySelector(Mn))return null;let r=[],i=(e,t,n,i)=>{e.addEventListener(t,n,i),r.push(()=>e.removeEventListener(t,n,i))};return r.push(Gn(n,e,i),Jn(n,e,i,t),Yn(n)),e.dataset.starChart===`full`&&i(e,`click`,t=>{let r=Fn(t.target);if(!r||!n.contains(r)||!r.dataset.slug||Ln(t))return;t.preventDefault();let i=new CustomEvent(An,{bubbles:!0,cancelable:!0,detail:{slug:r.dataset.slug,pointer:t.detail>0}});e.dispatchEvent(i)&&Vn(e,r.dataset.slug)}),()=>r.splice(0).reverse().forEach(e=>e?.())}var Wn={ArrowRight:e=>e+1,ArrowDown:e=>e+1,ArrowLeft:e=>e-1,ArrowUp:e=>e-1,Home:()=>0,End:(e,t)=>t};function Gn(e,t,n){let r=Nn(e);return Bn(r,r.find(e=>e.getAttribute(`aria-current`)===`true`)??r[0]),n(t,`keydown`,t=>{let n=Fn(t.target),i=Wn[t.key];if(!n||!e.contains(n)||!i||t.altKey||t.ctrlKey||t.metaKey)return;t.preventDefault();let a=r[(i(r.indexOf(n),r.length-1)+r.length)%r.length];Bn(r,a),a.focus()}),n(t,`focusin`,t=>{let n=Fn(t.target);n&&e.contains(n)&&Bn(r,n)}),()=>r.forEach(e=>e.setAttribute(`tabindex`,`0`))}var Kn=300,qn=18;function Jn(e,t,n,r){let i=t.querySelector(`.star-chart-tip`);if(!i||i.children.length<3)return null;let a=Nn(e),[o,s,c]=i.children,l=null,u=0,d=!1,f=null,p=null,m=null,h=null,g=()=>{let e=r.insetTop;if(typeof e==`function`)return Number(e())||0;if(typeof e==`number`)return e;let n=r.header===void 0?jn:r.header;if(!n)return 0;let i=t.getBoundingClientRect(),a=0;for(let e of document.querySelectorAll(n)){if(e.contains(t)||!/^(fixed|sticky)$/.test(getComputedStyle(e).position))continue;let n=e.getBoundingClientRect();n.height>0&&n.top<innerHeight/2&&n.left<i.right&&n.right>i.left&&(a=Math.max(a,n.bottom))}return a},_=()=>i.dataset.show===`true`,v=()=>{clearTimeout(u),d=!1},y=(e,t)=>{let n=e.getBoundingClientRect();return[n.left+n.width/2-t.left,n.top+n.height/2-t.top]},b=e=>{let n=t.getBoundingClientRect(),[r,o]=$n({star:y(Pn(e),n),others:a.filter(t=>t!==e).map(e=>y(Pn(e),n)),reach:(e.querySelector(`.star-chart-hit`)?.getBoundingClientRect().width??0)/2,size:[i.offsetWidth,i.offsetHeight],frame:[n.width,n.height],view:{top:Math.max(0,g())-n.top,bottom:innerHeight-n.top},gap:qn});i.style.left=`${r}px`,i.style.top=`${o}px`},x=e=>{v(),!(e===l&&_())&&(o.textContent=e.dataset.stage??``,s.textContent=e.dataset.name??``,c.textContent=e.dataset.one??``,b(e),i.dataset.show=`true`,l=e)},S=()=>{v(),i.dataset.show=`false`},C=()=>{if(!f||!_())return!1;let e=i.getBoundingClientRect();return f[0]>=e.left&&f[0]<=e.right&&f[1]>=e.top&&f[1]<=e.bottom},w=()=>{let t=Fn(document.activeElement);return t&&e.contains(t)&&t.matches(`:focus-visible`)?t:null},T=()=>{if(p&&p!==m)return x(p);let e=w();e&&e!==h?x(e):S()},E=()=>{d||(d=!0,u=window.setTimeout(()=>{d=!1,C()||T()},Kn))},D=e=>{e!==p&&(p&&p===m&&(m=null),p=e)},O=t=>{if(t.pointerType===`touch`)return;f=[t.clientX,t.clientY];let n=Fn(t.target);if(D(n&&e.contains(n)?n:null),C())return v();p?p!==m&&x(p):_()&&E()};return n(document,`pointermove`,O,{passive:!0}),n(document,`pointerover`,O,{passive:!0}),n(document,`pointerout`,e=>{e.relatedTarget||e.pointerType===`touch`||(f=null,D(null),_()&&E())}),n(t,`pointerdown`,t=>{let n=Fn(t.target);n&&e.contains(n)&&t.pointerType!==`touch`&&(m=null,x(n))}),n(t,`focusin`,t=>{let n=Fn(t.target);n&&e.contains(n)&&n.matches(`:focus-visible`)&&(n!==h||t.relatedTarget)&&(h=null,x(n))}),n(t,`focusout`,t=>{let n=Fn(t.relatedTarget);n&&e.contains(n)||((t.relatedTarget||document.hasFocus())&&(h=null),!(C()||d)&&(p&&p!==m?x(p):S()))}),n(document,`keydown`,e=>{e.key===`Escape`&&_()&&!e.defaultPrevented&&(m=p,h=w(),S(),e.preventDefault())}),()=>{v(),delete i.dataset.show,i.style.removeProperty(`left`),i.style.removeProperty(`top`),i.style.length||i.removeAttribute(`style`);for(let e of[o,s,c])e.textContent=``}}function Yn(e){if(u()||g()||!(`IntersectionObserver`in window)||e.getBoundingClientRect().top<innerHeight)return null;e.setAttribute(`data-figures`,`pending`);let t=0,n=new IntersectionObserver(r=>{r.some(e=>e.isIntersecting)&&(n.disconnect(),e.setAttribute(`data-figures`,`drawing`),t=window.setTimeout(()=>e.removeAttribute(`data-figures`),2e3))},{threshold:.25});return n.observe(e),()=>{n.disconnect(),clearTimeout(t),e.removeAttribute(`data-figures`)}}var Xn=8,Zn=e=>Math.ceil(Math.max(0,e-1)/Xn);function Qn(e,t){for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e[n]<t[n];return!1}function $n({star:[e,t],others:n,reach:r,size:[i,a],frame:[o,s],view:c,gap:l}){let u=[[l,l],[-l-i,l],[l,-l-a],[-l-i,-l-a]],d=[0,0],f=null;return u.forEach(([l,u],p)=>{let m=Math.max(0,Math.min(e+l,o-i)),h=t+u,g=Math.max(0,c.top-h)+Math.max(0,h+a-c.bottom),_=n.filter(([e,t])=>{let n=Math.max(m,Math.min(e,m+i))-e,o=Math.max(h,Math.min(t,h+a))-t;return n*n+o*o<r*r}).length,v=Math.max(0,-h)+Math.max(0,h+a-s),y=m===e+l?0:1,b=[Zn(g),_,Zn(v),y,p];(!f||Qn(b,f))&&([f,d]=[b,[m,h]])}),d}var er={1:`Shipped`,2:`Live, early`,3:`In development`,4:`Prototype`,5:`Idea`},tr={width:1e3,height:640,pole:[500,320]},nr=e=>[`${e}-glow`,`${e}-knockout`],rr=e=>`star-chart-${e===`full`?`full`:`teaser`}`,ir={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`},Z=e=>String(e??``).replace(/[&<>"']/g,e=>ir[e]),ar=e=>Math.round(e*10)/10,Q=e=>Number.isFinite(e)?String(ar(e)+0):`0`,or=e=>Array.isArray(e)&&e.length===2&&e.every(Number.isFinite),sr={1:4.4,2:3.6,3:2.8,4:2.1,5:2.4},cr={1:22,2:16,3:11,4:7,5:0},lr=[70,150,230,310,390],ur=Array.from({length:12},(e,t)=>t/12*Math.PI*2),dr=(e,t,n)=>`M${Q(e-n)} ${Q(t)}a${Q(n)} ${Q(n)} 0 1 0 ${Q(2*n)} 0a${Q(n)} ${Q(n)} 0 1 0 ${Q(-2*n)} 0`,fr=e=>e>820?{tx:e-14,anchor:`end`}:{tx:e+14,anchor:`start`},pr=(e,t,n)=>{let r=n/5;return`M${Q(e)} ${Q(t-n)}L${Q(e+r)} ${Q(t-r)}L${Q(e+n)} ${Q(t)}L${Q(e+r)} ${Q(t+r)}L${Q(e)} ${Q(t+n)}L${Q(e-r)} ${Q(t+r)}L${Q(e-n)} ${Q(t)}L${Q(e-r)} ${Q(t-r)}Z`},mr={label:`Starscape projects drawn as a star chart. Brighter stars are further along.`,pole:`Starscape`,stages:er,magnitude:(e,t)=>`Mag ${e} · ${t}`,legend:`Magnitude scale`,legendTitle:`Magnitude`},hr=(e,t)=>String(e??``).replace(/[^A-Za-z0-9_-]+/g,`-`).replace(/^-+|-+$/g,``)||rr(t);function gr(e,t={}){let n=t.mode===`full`?`full`:`teaser`,r=n===`full`,i={...mr,...t.words,stages:{...er,...t.words?.stages}},a=e=>i.stages[e]??``,o=e=>i.magnitude(e,a(e)),[s,c]=nr(hr(t.id,n)),[l,u]=tr.pole,d=t.selected??null,f=(Array.isArray(e?.stars)?e.stars:[]).filter(e=>e&&e.centre!==!0&&or(e.position)),p=(Array.isArray(e?.families)?e.families:[]).filter(e=>e&&or(e.label)),m=e?.centre&&typeof e.centre==`object`?e.centre:null,h=new Map(f.map(e=>[e.slug,e])),g=(Array.isArray(e?.figures)?e.figures:[]).map(e=>Array.isArray(e)?[h.get(e[0]),h.get(e[1])]:[]).filter(([e,t])=>e&&t&&e!==t),_=e=>{let n=`#${e.slug??``}`,r=typeof t.href==`function`?t.href(e):typeof t.href==`string`?t.href.replaceAll(`{slug}`,String(e.slug??``)):n;return Dt(r)?r:n},v=(Number.isFinite(t.mark?.size)&&t.mark.size>0?t.mark.size:44)/2,y=Dt(t.mark?.src,{image:!0})&&String(t.mark.src).trim()?t.mark.src:null,b=e=>y?`<image class="${e}" href="${Z(y)}" x="${Q(l-v)}" y="${Q(u-v)}" width="${Q(2*v)}" height="${Q(2*v)}"></image>`:`<path class="${e}" d="${pr(l,u,v)}"></path>`,x=m?m.short:i.pole,S=u+v+18,C=[];C.push(`<svg class="star-chart-svg" viewBox="0 0 ${tr.width} ${tr.height}" role="group" aria-label="${Z(i.label)}">`),C.push(`<defs><radialGradient id="${s}">`,`<stop class="star-chart-glow-core" offset="0" stop-color="#ffffff" stop-opacity="0.85"></stop>`,`<stop class="star-chart-glow-halo" offset="0.25" stop-color="#a8c0ff" stop-opacity="0.35"></stop>`,`<stop class="star-chart-glow-halo" offset="1" stop-color="#a8c0ff" stop-opacity="0"></stop>`,`</radialGradient>`,`<mask id="${c}" maskUnits="userSpaceOnUse" x="0" y="0" width="${tr.width}" height="${tr.height}">`,`<rect width="${tr.width}" height="${tr.height}" fill="#fff"></rect><g class="star-chart-ko">`,`<text class="star-chart-ko-centre" x="${Q(l)}" y="${Q(S)}" text-anchor="middle">${Z(x)}</text>`);for(let e of p){let t=r?`<tspan class="star-chart-blurb" x="${Q(e.label[0])}" dy="15">${Z(e.blurb)}</tspan>`:``;C.push(`<text class="star-chart-ko-family" x="${Q(e.label[0])}" y="${Q(e.label[1])}" text-anchor="middle">${Z(e.name)}${t}</text>`)}for(let e of f){let[t,n]=e.position,{tx:i,anchor:a}=fr(t);C.push(`<text class="star-chart-ko-name" data-magnitude="${Z(e.magnitude)}" x="${Q(i)}" y="${Q(n+4)}" text-anchor="${a}">${Z(e.short)}</text>`),r&&C.push(`<text class="star-chart-ko-mag" x="${Q(i)}" y="${Q(n+18)}" text-anchor="${a}">${Z(o(e.magnitude))}</text>`)}C.push(`</g></mask></defs>`),C.push(`<g class="star-chart-grid" aria-hidden="true" mask="url(#${c})">`),lr.forEach((e,t)=>C.push(`<circle class="star-chart-ring"${t%2==1?` data-major=""`:``} cx="${Q(l)}" cy="${Q(u)}" r="${e}"></circle>`));for(let e of ur)C.push(`<line class="star-chart-spoke" x1="${Q(l+Math.cos(e)*46)}" y1="${Q(u+Math.sin(e)*46)}" x2="${Q(l+Math.cos(e)*420)}" y2="${Q(u+Math.sin(e)*420)}"></line>`);C.push(`</g>`),m||C.push(`<g class="star-chart-pole" aria-hidden="true">${b(`star-chart-mark`)}<text class="star-chart-centre-label" x="${Q(l)}" y="${Q(S)}" text-anchor="middle">${Z(x)}</text></g>`),C.push(`<g class="star-chart-figures" aria-hidden="true" mask="url(#${c})">`);for(let[e,t]of g)C.push(`<path class="star-chart-figure" d="M${Q(e.position[0])} ${Q(e.position[1])}L${Q(t.position[0])} ${Q(t.position[1])}" pathLength="1"></path>`);C.push(`</g>`),C.push(`<g class="star-chart-families" aria-hidden="true">`);for(let e of p){let t=r?`<tspan class="star-chart-blurb" x="${Q(e.label[0])}" dy="15">${Z(e.blurb)}</tspan>`:``;C.push(`<text class="star-chart-family" x="${Q(e.label[0])}" y="${Q(e.label[1])}" text-anchor="middle">${Z(e.name)}${t}</text>`)}C.push(`</g>`),C.push(`<g class="star-chart-stars">`);let w=(e,t,n=``)=>`<a class="star-chart-star"${n} href="${Z(_(e))}" tabindex="0" data-slug="${Z(e.slug)}" data-magnitude="${Z(e.magnitude)}" data-name="${Z(e.name)}" data-stage="${Z(a(e.magnitude))}" data-one="${Z(e.one_liner)}" aria-label="${Z(t)}"${d!==null&&e.slug===d?` aria-current="true"`:``}>`;m&&C.push(w(m,`${m.name}. ${a(m.magnitude)}. ${m.one_liner}`,` data-centre=""`),`<circle class="star-chart-hit" cx="${Q(l)}" cy="${Q(u)}" r="${Q(v+8)}"></circle>`,b(`star-chart-mark`),`<circle class="star-chart-sel" cx="${Q(l)}" cy="${Q(u)}" r="${Q(v+8)}"></circle>`,`<path class="star-chart-focus" d="${dr(l,u,v+8)}" pathLength="12"></path>`,`<text class="star-chart-centre-label" x="${Q(l)}" y="${Q(S)}" text-anchor="middle">${Z(m.short)}</text>`,`</a>`);for(let e of f){let[t,n]=e.position,i=e.magnitude,{tx:c,anchor:l}=fr(t),u=Object.hasOwn(sr,i)?sr[i]:sr[3],d=Object.hasOwn(cr,i)?cr[i]:0,f=r?o(i):a(i),p=i===1?16:11;C.push(w(e,`${e.name}. ${f}. ${e.one_liner}`),`<circle class="star-chart-hit" cx="${Q(t)}" cy="${Q(n)}" r="24"></circle>`),d>0&&C.push(`<circle class="star-chart-glow" cx="${Q(t)}" cy="${Q(n)}" r="${Q(d)}" fill="url(#${s})"></circle>`),i<=2&&C.push(`<line class="star-chart-spike" x1="${Q(t-p)}" y1="${Q(n)}" x2="${Q(t+p)}" y2="${Q(n)}"></line>`,`<line class="star-chart-spike" x1="${Q(t)}" y1="${Q(n-p)}" x2="${Q(t)}" y2="${Q(n+p)}"></line>`),C.push(`<circle class="star-chart-core" cx="${Q(t)}" cy="${Q(n)}" r="${Q(u)}"></circle>`,`<circle class="star-chart-sel" cx="${Q(t)}" cy="${Q(n)}" r="${Q(u+8)}"></circle>`,`<path class="star-chart-focus" d="${dr(t,n,ar(u+8))}" pathLength="12"></path>`,`<text class="star-chart-name" x="${Q(c)}" y="${Q(n+4)}" text-anchor="${l}">${Z(e.short)}</text>`),r&&C.push(` <text class="star-chart-mag" x="${Q(c)}" y="${Q(n+18)}" text-anchor="${l}">${Z(o(i))}</text>`),C.push(`</a>`)}C.push(`</g></svg>`),C.push(`<div class="star-chart-tip" aria-hidden="true"><p class="star-chart-tip-stage"></p><p class="star-chart-tip-name"></p><p class="star-chart-tip-one"></p></div>`);let T=C.join(``);return t.frame===!1?T:`<div class="${Z([`star-chart`,...String(t.className??``).split(/\s+/).filter(Boolean)].join(` `))}" data-star-chart="${n}">${T}</div>`}function _r(e=globalThis){let t=e.HTMLDialogElement;return typeof t==`function`&&typeof t.prototype?.showModal==`function`}var vr=new WeakMap,yr=()=>{};function br(e,t={}){if(typeof document>`u`||!_r())return yr;e??=document;let n=document.documentElement;n.hasAttribute(`data-js`)||n.setAttribute(`data-js`,``);let r=[...e.querySelectorAll(`dialog[data-nav-dialog]`)];e instanceof HTMLDialogElement&&e.matches(`[data-nav-dialog]`)&&r.unshift(e);let i=[];for(let e of r){if(vr.has(e))continue;let n=xr(e,t);vr.set(e,n),i.push(()=>{n(),vr.delete(e)})}return()=>i.splice(0).forEach(e=>e())}function xr(e,t){let n=e.id,r=e.getAttribute(`data-close-media`)||t.closeMedia||``,i=null,a=null,o=!0,s=!1,c=new Map,l=()=>n?[...document.querySelectorAll(`[data-nav-dialog-open="${CSS.escape(n)}"]`)]:[];function u(e){if(c.has(e))return;let t=[];for(let[r,i]of[[`aria-controls`,n],[`aria-haspopup`,`dialog`],[`aria-expanded`,`false`]])e.hasAttribute(r)||(e.setAttribute(r,i),t.push(r));c.set(e,t)}function d(e){for(let t of l())u(t),t.setAttribute(`aria-expanded`,String(e))}function f(t){if(e.open)return;let n=document.activeElement;try{e.showModal()}catch{return}i=t,a=n,o=!0,s=!0,d(!0),e.querySelector(`[autofocus]`)||e.querySelector(`[data-nav-dialog-close]`)?.focus()}function p(t=!0){e.open&&(o=t,e.close(),m())}function m(){if(!s)return;s=!1,d(!1);let t=i,n=a;if(i=a=null,!o||!t?.isConnected)return;let r=document.activeElement;(!r||r===document.body||r===n||e.contains(r))&&t.focus({preventScroll:!0})}let h=e=>{let t=e.target instanceof Element?e.target.closest(`[data-nav-dialog-open]`):null;t&&t.getAttribute(`data-nav-dialog-open`)===n&&!e.defaultPrevented&&(e.preventDefault(),f(t))},g=t=>{let n=t.target instanceof Element?t.target:null;if(!n)return;if(n.closest(`[data-nav-dialog-close]`)){p();return}let r=n.closest(`a[href]`);r&&e.contains(r)&&!(t.button||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)&&p()},_=()=>m(),v=e=>{e.matches&&p(!1)};l().forEach(u),document.addEventListener(`click`,h),e.addEventListener(`click`,g),e.addEventListener(`close`,_);let y=r?matchMedia(r):null;return y?.addEventListener(`change`,v),()=>{document.removeEventListener(`click`,h),e.removeEventListener(`click`,g),e.removeEventListener(`close`,_),y?.removeEventListener(`change`,v),e.open&&e.close(),s=!1,i=null;for(let[e,t]of c)t.forEach(t=>e.removeAttribute(t)),e.hasAttribute(`aria-expanded`)&&e.setAttribute(`aria-expanded`,`false`);c.clear()}}var Sr=()=>({mode:y(),resolved:g()?`reduce`:`full`});function Cr(e){let[t,n]=(0,I.useState)(Sr);(0,I.useEffect)(()=>{let t=b(e),r=()=>n(e=>{let t=Sr();return t.mode===e.mode&&t.resolved===e.resolved?e:t}),i=x(r);return r(),()=>{i(),t()}},[]);let r=(0,I.useCallback)(e=>C(e),[]);return{mode:t.mode,resolved:t.resolved,setMode:r}}var wr=e=>typeof e==`object`&&!!e&&`current`in e;function Tr({threshold:e=4,className:t=`is-scrolled`,target:n,attribute:r}={}){(0,I.useEffect)(()=>{let i=wr(n)?n.current:n;if(n===void 0||i)return Xe({threshold:e,className:t,attribute:r,...i?{target:i}:{}})},[e,t,r,n])}function Er(e,t){let n=(0,I.useRef)(t);(0,I.useEffect)(()=>{if(e.current)return vt(e.current,n.current)},[e])}function Dr(e,t,{enabled:n=!0,event:r=`mousedown`}={}){(0,I.useEffect)(()=>{if(!n||typeof document>`u`)return;let i=n=>{let r=e.current;r&&(r.contains(n.target)||t(n))};return document.addEventListener(r,i),()=>document.removeEventListener(r,i)},[e,t,n,r])}function Or(e,{enabled:t=!0}={}){(0,I.useEffect)(()=>{if(!t||typeof document>`u`)return;let n=t=>{t.key===`Escape`&&e(t)};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,t])}function kr(e={}){let t=(0,I.useRef)(null);return(0,I.useEffect)(()=>{if(!t.current)return;let n=bt({...e,mountTo:t.current});return()=>n.stop()},[]),(0,K.jsx)(`div`,{ref:t,className:`grain`,"aria-hidden":`true`,children:(0,K.jsx)(`div`,{className:`milky-way`,"aria-hidden":`true`})})}function $(...e){return e.filter(Boolean).join(` `)}I.forwardRef(function({variant:e=`primary`,type:t=`button`,...n},r){return(0,K.jsx)(`button`,{ref:r,type:t,"data-variant":e===`primary`?void 0:e,...n})}),I.forwardRef(function({variant:e,selected:t,as:n=`article`,className:r,...i},a){return(0,K.jsx)(n,{ref:a,className:$(`card`,r),"data-variant":e,"data-selected":t?``:void 0,...i})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`span`,{ref:n,className:$(`badge`,e),...t})}),I.forwardRef(function({tone:e,variant:t,interactive:n,className:r,...i},a){return(0,K.jsx)(`span`,{ref:a,className:$(`chip`,r),"data-tone":e,"data-variant":t,"data-interactive":n?``:void 0,...i})}),I.forwardRef(function({live:e,tone:t,count:n,className:r,...i},a){return(0,K.jsx)(`span`,{ref:a,className:$(`dot`,r),"data-live":e?``:void 0,"data-tone":t,"data-count":n?``:void 0,...i})}),I.forwardRef(function({title:e,count:t,defaultOpen:n=!1,open:r,onToggle:i,showLabel:a=`Show`,hideLabel:o=`Hide`,className:s,children:c,...l},u){let[d,f]=I.useState(n),p=r!=null,m=p?r:d,h=I.useId(),g=()=>{p||f(e=>!e),i?.(!m)};return(0,K.jsxs)(`section`,{ref:u,className:$(`epic-accordion`,s),"data-open":m||void 0,...l,children:[(0,K.jsxs)(`button`,{type:`button`,className:`epic-accordion-toggle`,"aria-expanded":m,"aria-controls":h,onClick:g,children:[(0,K.jsx)(`svg`,{className:`epic-accordion-chevron`,viewBox:`0 0 24 24`,"aria-hidden":!0,children:(0,K.jsx)(`path`,{d:`M9 6l6 6-6 6`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,K.jsx)(`span`,{className:`epic-accordion-title`,children:e}),t!=null&&(0,K.jsx)(`span`,{className:`epic-accordion-count`,children:t}),(0,K.jsx)(`span`,{className:`epic-accordion-state`,children:m?o:a})]}),m&&(0,K.jsx)(`div`,{className:`epic-accordion-body`,id:h,children:c})]})}),I.forwardRef(function({variant:e,orientation:t,className:n,...r},i){return(0,K.jsx)(`div`,{ref:i,role:`tablist`,className:$(`tabs`,n),"data-variant":e===`pill`?void 0:e,"data-orientation":t===`horizontal`?void 0:t,...r})}),I.forwardRef(function({selected:e,className:t,type:n=`button`,...r},i){return(0,K.jsx)(`button`,{ref:i,type:n,role:`tab`,"aria-selected":e,className:$(`tab`,t),...r})}),I.forwardRef(function({open:e,onClose:t,title:n,closeOnBackdrop:r=!0,className:i,children:a,...o},s){let c=I.useRef(null);I.useImperativeHandle(s,()=>c.current);let l=I.useId();return Or(t,{enabled:e}),Dr(c,t,{enabled:e&&r}),(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:$(`modal-backdrop`,e&&`is-visible`),"aria-hidden":`true`}),(0,K.jsxs)(`div`,{ref:c,role:`dialog`,"aria-modal":`true`,"aria-labelledby":n?l:void 0,"aria-hidden":!e,className:$(`modal`,e&&`is-open`,i),...o,children:[n!=null&&(0,K.jsxs)(`div`,{className:`modal-header`,children:[(0,K.jsx)(`h2`,{id:l,className:`modal-title`,children:n}),(0,K.jsx)(`button`,{type:`button`,className:`modal-close`,"aria-label":`Close`,onClick:t,children:`×`})]}),a]})]})}),I.forwardRef(function(e,t){return(0,K.jsx)(`input`,{ref:t,...e})}),I.forwardRef(function(e,t){return(0,K.jsx)(`textarea`,{ref:t,...e})}),I.forwardRef(function({chevron:e=!0,className:t,...n},r){return(0,K.jsx)(`select`,{ref:r,className:$(e&&`select-chevron-field`,t),...n})}),I.forwardRef(function(e,t){return(0,K.jsx)(`label`,{ref:t,...e})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`div`,{ref:n,className:$(`form-row`,e),...t})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`p`,{ref:n,className:$(`form-help`,e),...t})}),I.forwardRef(function({className:e,role:t=`alert`,...n},r){return(0,K.jsx)(`p`,{ref:r,role:t,className:$(`form-error`,e),...n})}),I.forwardRef(function({onClear:e,clearLabel:t=`Clear`,className:n,value:r,type:i=`search`,...a},o){let s=r!=null&&r!==``;return(0,K.jsxs)(`div`,{className:$(`input-search`,n),children:[(0,K.jsx)(`input`,{ref:o,type:i,value:r,...a}),e&&(0,K.jsx)(`button`,{type:`button`,className:`input-search-clear`,"aria-label":t,"data-has-value":s?`true`:void 0,onClick:e,children:`×`})]})}),I.forwardRef(function({label:e,className:t,...n},r){return(0,K.jsxs)(`label`,{className:$(`switch`,t),children:[(0,K.jsx)(`input`,{ref:r,type:`checkbox`,...n}),(0,K.jsx)(`span`,{className:`switch-track`,"aria-hidden":`true`}),e!=null&&(0,K.jsx)(`span`,{className:`switch-label`,children:e})]})}),I.forwardRef(function({label:e,className:t,...n},r){return e==null?(0,K.jsx)(`input`,{ref:r,type:`checkbox`,className:t,...n}):(0,K.jsxs)(`label`,{className:$(`check`,t),children:[(0,K.jsx)(`input`,{ref:r,type:`checkbox`,...n}),(0,K.jsx)(`span`,{className:`check-label`,children:e})]})}),I.forwardRef(function({label:e,className:t,...n},r){return e==null?(0,K.jsx)(`input`,{ref:r,type:`radio`,className:t,...n}):(0,K.jsxs)(`label`,{className:$(`radio`,t),children:[(0,K.jsx)(`input`,{ref:r,type:`radio`,...n}),(0,K.jsx)(`span`,{className:`radio-label`,children:e})]})});function Ar(e){let t=Number(e.min||0),n=Number(e.max||100);return n>t?(Number(e.value)-t)/(n-t)*100:0}I.forwardRef(function({size:e=`md`,label:t,valueLabel:n,className:r,disabled:i,style:a,onInput:o,min:s,max:c,...l},u){let d=l.value??l.defaultValue,f=Number(s??0),p=Number(c??100),m=d!=null&&p>f?(Number(d)-f)/(p-f)*100:void 0,h=m==null?a:{...a,"--value":m},g=e=>{e.currentTarget.style.setProperty(`--value`,String(Ar(e.currentTarget))),o?.(e)},_=t!=null||n!=null,v=(0,K.jsx)(`input`,{ref:u,type:`range`,className:_?void 0:$(`slider`,r),disabled:i,min:s,max:c,style:h,onInput:g,...l});return _?(0,K.jsxs)(`div`,{className:$(`slider`,r),"data-size":e===`md`?void 0:e,"data-disabled":i?``:void 0,children:[(0,K.jsxs)(`span`,{className:`slider-head`,children:[(0,K.jsx)(`b`,{children:t}),(0,K.jsx)(`b`,{children:n})]}),v]}):v}),I.forwardRef(function({value:e,onChange:t,min:n,max:r,step:i=1,size:a=`md`,disabled:o,className:s,id:c,name:l,...u},d){let f=e=>Math.min(r??1/0,Math.max(n??-1/0,e)),p=e=>!o&&t(f(e));return(0,K.jsxs)(`div`,{className:$(`number-field`,s),"data-size":a===`md`?void 0:a,children:[(0,K.jsx)(`button`,{type:`button`,className:`number-step`,"data-dir":`down`,"aria-label":`Decrease`,disabled:o||n!=null&&e<=n,onClick:()=>p(e-i),children:`−`}),(0,K.jsx)(`input`,{ref:d,type:`text`,inputMode:`numeric`,id:c,name:l,value:e,disabled:o,onChange:e=>{let t=Number(e.target.value);Number.isNaN(t)||p(t)},...u}),(0,K.jsx)(`button`,{type:`button`,className:`number-step`,"data-dir":`up`,"aria-label":`Increase`,disabled:o||r!=null&&e>=r,onClick:()=>p(e+i),children:`+`})]})}),I.forwardRef(function({size:e=`md`,color:t,src:n,alt:r=``,className:i,children:a,...o},s){return(0,K.jsx)(`div`,{ref:s,className:$(`avatar`,i),"data-size":e===`md`?void 0:e,"data-color":t,...o,children:n?(0,K.jsx)(`img`,{src:n,alt:r}):a})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`div`,{ref:n,className:$(`avatar-stack`,e),...t})}),I.forwardRef(function({orientation:e=`horizontal`,className:t,...n},r){return(0,K.jsx)(`div`,{ref:r,role:`separator`,"aria-orientation":e,className:$(`separator`,t),"data-orientation":e===`horizontal`?void 0:e,...n})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`kbd`,{ref:n,className:$(`kbd`,e),...t})}),I.forwardRef(function({shape:e=`rect`,className:t,...n},r){return(0,K.jsx)(`div`,{ref:r,"aria-hidden":`true`,className:$(`skeleton`,`skeleton-${e}`,t),...n})}),I.forwardRef(function({value:e,indeterminate:t,size:n=`md`,className:r,style:i,...a},o){return(0,K.jsx)(`div`,{ref:o,role:`progressbar`,"aria-valuenow":t?void 0:e,"aria-valuemin":0,"aria-valuemax":100,className:$(`progress`,r),"data-indeterminate":t?``:void 0,"data-size":n===`md`?void 0:n,...a,children:!t&&(0,K.jsx)(`div`,{className:`progress-bar`,style:{"--value":`${e??0}%`,...i}})})}),I.forwardRef(function({label:e=`Loading`,className:t,...n},r){return(0,K.jsx)(`span`,{ref:r,role:`status`,"aria-label":e,className:$(`spinner`,t),...n})}),I.forwardRef(function({variant:e,className:t,...n},r){return(0,K.jsx)(e===`numbered`?`ol`:`ul`,{ref:r,className:$(e&&`list-${e}`,t),...n})}),I.forwardRef(function({layout:e=`inline`,className:t,...n},r){return(0,K.jsx)(`dl`,{ref:r,className:$(`description-list`,t),"data-layout":e===`inline`?void 0:e,...n})}),I.forwardRef(function({label:e,value:t,stacked:n,className:r,children:i,...a},o){return(0,K.jsxs)(`div`,{ref:o,className:$(`control-row`,r),"data-stacked":n?``:void 0,...a,children:[e!=null&&(0,K.jsx)(`span`,{className:`control-label`,children:e}),i,t!=null&&(0,K.jsx)(`span`,{className:`control-value`,children:t})]})}),I.forwardRef(function({tone:e,banner:t,icon:n,title:r,onClose:i,closeLabel:a=`Dismiss`,className:o,children:s,...c},l){return(0,K.jsxs)(`div`,{ref:l,role:`status`,className:$(`alert`,o),"data-tone":e,"data-variant":t?`banner`:void 0,...c,children:[n!=null&&(0,K.jsx)(`span`,{className:`alert-icon`,children:n}),(0,K.jsxs)(`div`,{className:`alert-body`,children:[r!=null&&(0,K.jsx)(`strong`,{className:`alert-title`,children:r}),s!=null&&(0,K.jsx)(`p`,{className:`alert-message`,children:s})]}),i&&(0,K.jsx)(`button`,{type:`button`,className:`alert-close`,"aria-label":a,onClick:i,children:`×`})]})}),I.forwardRef(function({icon:e,title:t,actions:n,size:r=`md`,className:i,children:a,...o},s){return(0,K.jsxs)(`div`,{ref:s,className:$(`empty-state`,i),"data-size":r===`md`?void 0:r,...o,children:[e!=null&&(0,K.jsx)(`div`,{className:`empty-state-icon`,"aria-hidden":`true`,children:e}),t!=null&&(0,K.jsx)(`h3`,{className:`empty-state-title`,children:t}),a!=null&&(0,K.jsx)(`p`,{className:`empty-state-body`,children:a}),n!=null&&(0,K.jsx)(`div`,{className:`empty-state-actions`,children:n})]})}),I.forwardRef(function({name:e,code:t,numbered:n,wrap:r,onCopy:i,copyLabel:a=`Copy`,copiedLabel:o,className:s,children:c,...l},u){let d=I.useRef(null),f=I.useCallback(e=>{d.current=e,typeof u==`function`?u(e):u&&(u.current=e)},[u]),p=I.useId(),m=!i&&t!=null;Er(d,o?{labels:{copied:o}}:void 0);let h=e!=null||i||t!=null;return(0,K.jsxs)(`figure`,{ref:f,className:$(`code-block`,s),...l,children:[h&&(0,K.jsxs)(`figcaption`,{className:`code-block-head`,children:[e!=null&&(0,K.jsx)(`span`,{className:`code-block-name`,children:e}),i?(0,K.jsx)(`button`,{type:`button`,className:`code-block-copy`,onClick:i,children:a}):m?(0,K.jsxs)(`button`,{type:`button`,className:`code-block-copy`,"data-copy-target":`#${p}`,children:[a,typeof e==`string`&&(0,K.jsx)(`span`,{className:`visually-hidden`,children:` ${e}`})]}):null]}),(0,K.jsx)(`pre`,{"data-numbered":n?``:void 0,"data-wrap":r?``:void 0,children:(0,K.jsx)(`code`,{id:m?p:void 0,children:t??c})})]})}),I.forwardRef(function({items:e,className:t,...n},r){return(0,K.jsx)(`nav`,{ref:r,"aria-label":`Breadcrumb`,className:$(`breadcrumb`,t),...n,children:(0,K.jsx)(`ol`,{children:e.map((t,n)=>{let r=t.current??n===e.length-1;return(0,K.jsx)(`li`,{children:r||!t.href?(0,K.jsx)(`span`,{"aria-current":r?`page`:void 0,children:t.label}):(0,K.jsx)(`a`,{href:t.href,children:t.label})},n)})})})});function jr(e,t,n){let r=[],i=t,a=Math.max(1,e-n),o=Math.min(i,e+n);r.push(1),a>2&&r.push(`gap`);for(let e=a;e<=o;e++)e!==1&&e!==i&&r.push(e);return o<i-1&&r.push(`gap`),i!==1&&r.push(i),r}I.forwardRef(function({page:e,count:t,onChange:n,siblings:r=1,size:i=`md`,className:a,...o},s){let c=jr(e,t,r);return(0,K.jsxs)(`nav`,{ref:s,"aria-label":`Pagination`,className:$(`pagination`,a),"data-size":i===`md`?void 0:i,...o,children:[(0,K.jsx)(`button`,{type:`button`,className:`pagination-item`,"data-nav":``,disabled:e<=1,"aria-label":`Previous page`,onClick:()=>n(e-1),children:`‹ Prev`}),c.map((t,r)=>t===`gap`?(0,K.jsx)(`span`,{className:`pagination-gap`,children:`…`},`gap-${r}`):(0,K.jsx)(`button`,{type:`button`,className:`pagination-item`,"aria-current":t===e?`page`:void 0,onClick:()=>n(t),children:t},t)),(0,K.jsx)(`button`,{type:`button`,className:`pagination-item`,"data-nav":``,disabled:e>=t,"aria-label":`Next page`,onClick:()=>n(e+1),children:`Next ›`})]})}),I.forwardRef(function({zebra:e,density:t=`comfortable`,wrapClassName:n,className:r,children:i,...a},o){return(0,K.jsx)(`div`,{className:$(`table-wrap`,n),children:(0,K.jsx)(`table`,{ref:o,className:$(`table`,r),"data-zebra":e?``:void 0,"data-density":t===`compact`?`compact`:void 0,...a,children:i})})}),I.forwardRef(function({scrollAware:e=!0,threshold:t=8,className:n,...r},i){return Tr({threshold:e?t:1/0}),(0,K.jsx)(`header`,{ref:i,className:$(`topbar`,n),...r})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`div`,{ref:n,className:$(`topbar-brand`,e),...t})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`nav`,{ref:n,className:$(`topbar-nav`,e),...t})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`div`,{ref:n,"aria-hidden":`true`,className:$(`topbar-spacer`,e),...t})}),I.forwardRef(function({title:e,count:t,subtitle:n,actions:r,flat:i,scrollable:a,bodyClassName:o,className:s,children:c,...l},u){let d=e!=null||t!=null||n!=null||r!=null;return(0,K.jsxs)(`section`,{ref:u,className:$(`lane`,s),"data-flat":i?``:void 0,"data-scrollable":a?``:void 0,...l,children:[d&&(0,K.jsxs)(`header`,{className:`lane-head`,children:[e!=null&&(0,K.jsx)(`h3`,{className:`lane-title`,children:e}),n!=null&&(0,K.jsx)(`span`,{className:`lane-subtitle`,children:n}),t!=null&&(0,K.jsx)(`span`,{className:`count`,children:t}),r!=null&&(0,K.jsx)(`div`,{className:`lane-actions`,children:r})]}),(0,K.jsx)(`div`,{className:$(`lane-body`,o),children:c})]})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`div`,{ref:n,className:$(`lane-grid`,e),...t})}),I.forwardRef(function({topbar:e,background:t=!1,board:n=!1,footer:r,skipLink:i=!0,skipLinkLabel:a=`Skip to content`,mainId:o=`main`,mainClassName:s,boardClassName:c,className:l,children:u,...d},f){return(0,K.jsxs)(`div`,{ref:f,className:$(`page-shell`,l),"data-no-topbar":e==null?``:void 0,"data-board":n?``:void 0,...d,children:[i&&(0,K.jsx)(`a`,{className:`skip-link`,href:`#${o}`,children:a}),t&&(0,K.jsx)(kr,{}),e,(0,K.jsx)(`main`,{id:o,tabIndex:-1,className:$(`page-shell-main`,s),children:n?(0,K.jsx)(`div`,{className:$(`page-shell-board`,c),children:u}):u}),r]})});function Mr(e,t){if(!e||typeof window>`u`)return t;try{let n=window.localStorage.getItem(e);return n==null?t:n===`1`}catch{return t}}function Nr(e,t,n,r){let i=e!=null,[a,o]=I.useState(()=>Mr(n,t)),s=i?e:a;return[s,I.useCallback(()=>{let e=!s;if(!i&&(o(e),n&&typeof window<`u`))try{window.localStorage.setItem(n,e?`1`:`0`)}catch{}r?.(e)},[s,i,n,r])]}I.forwardRef(function({brand:e,search:t,nav:n,footer:r,collapsible:i=!0,collapsed:a,defaultCollapsed:o=!1,onCollapsedChange:s,storageKey:c,toggleLabels:l=[`collapse`,`expand`],mainClassName:u,className:d,children:f,...p},m){let[h,g]=Nr(a,o,c,s);return(0,K.jsxs)(`div`,{ref:m,className:$(`page-sidebar-app`,d),"data-collapsed":h?``:void 0,...p,children:[(0,K.jsxs)(`aside`,{className:`page-sidebar`,children:[e,t,n,r,i&&(0,K.jsx)(`div`,{className:`page-sidebar-toggle-wrap`,children:(0,K.jsxs)(`button`,{type:`button`,className:`page-sidebar-toggle`,onClick:g,"aria-pressed":h,"aria-label":h?`expand sidebar`:`collapse sidebar`,title:h?`expand sidebar`:`collapse sidebar`,children:[(0,K.jsx)(`span`,{className:`page-sidebar-toggle-icon`,"aria-hidden":!0,children:h?`»`:`«`}),(0,K.jsx)(`span`,{className:`page-sidebar-toggle-label`,children:h?l[1]:l[0]})]})})]}),(0,K.jsx)(`main`,{className:$(`page-sidebar-main`,u),children:f})]})}),I.forwardRef(function({logo:e,title:t,subtitle:n,className:r,children:i,...a},o){return(0,K.jsxs)(`div`,{ref:o,className:$(`page-sidebar-header`,r),...a,children:[e!=null&&(0,K.jsx)(`div`,{className:`page-sidebar-logo`,"aria-hidden":!0,children:e}),(t!=null||n!=null)&&(0,K.jsxs)(`div`,{className:`page-sidebar-titles`,children:[t!=null&&(0,K.jsx)(`span`,{className:`page-sidebar-title`,children:t}),n!=null&&(0,K.jsx)(`span`,{className:`page-sidebar-subtitle`,children:n})]}),i]})}),I.forwardRef(function({title:e,subtitle:t,className:n,children:r,...i},a){return(0,K.jsxs)(`div`,{ref:a,className:$(`page-sidebar-brand`,n),...i,children:[e!=null&&(0,K.jsx)(`h1`,{children:e}),t!=null&&(0,K.jsx)(`span`,{className:`page-sidebar-brand-sub`,children:t}),r]})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`div`,{ref:n,className:$(`page-sidebar-search`,e),...t})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`nav`,{ref:n,className:$(`page-sidebar-nav`,e),...t})}),I.forwardRef(function({label:e,className:t,children:n,...r},i){return(0,K.jsxs)(`div`,{ref:i,className:$(`page-sidebar-section`,t),...r,children:[e!=null&&(0,K.jsx)(`div`,{className:`page-sidebar-section-label`,children:e}),n]})});var Pr=I.forwardRef(function({active:e,icon:t,badge:n,trailing:r,as:i,nested:a,title:o,className:s,children:c,...l},u){let d=i??`button`,f=o??(typeof c==`string`?c:void 0);return(0,K.jsxs)(d,{ref:u,className:$(`page-sidebar-nav-item`,a&&`page-sidebar-nav-nested`,s),"data-active":e?``:void 0,title:f,...d===`button`?{type:`button`}:{},...l,children:[t!=null&&(0,K.jsx)(`span`,{className:`page-sidebar-nav-icon`,"aria-hidden":!0,children:t}),c!=null&&(0,K.jsx)(`span`,{className:`page-sidebar-nav-label`,children:c}),n!=null&&(0,K.jsx)(`span`,{className:`page-sidebar-nav-badge`,children:n}),r]})});function Fr(){return(0,K.jsx)(`span`,{className:`page-sidebar-nav-chevron`,"aria-hidden":!0,children:(0,K.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`16`,height:`16`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,K.jsx)(`path`,{d:`M9 6l6 6-6 6`})})})}I.forwardRef(function({label:e,icon:t,badge:n,active:r,expanded:i,defaultExpanded:a=!1,onExpandedChange:o,as:s,className:c,children:l,...u},d){let f=i!=null,[p,m]=I.useState(a),h=f?i:p,g=()=>{let e=!h;f||m(e),o?.(e)};return(0,K.jsxs)(`div`,{ref:d,className:$(`page-sidebar-nav-group`,c),"data-expanded":h?``:void 0,...u,children:[(0,K.jsx)(Pr,{as:s,icon:t,badge:n,active:r,trailing:(0,K.jsx)(Fr,{}),className:`page-sidebar-nav-parent`,"aria-expanded":h,onClick:g,children:e}),(0,K.jsx)(`div`,{className:`page-sidebar-nav-children`,children:(0,K.jsx)(`div`,{className:`page-sidebar-nav-children-inner`,children:l})})]})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`div`,{ref:n,"aria-hidden":`true`,className:$(`page-sidebar-nav-separator`,e),...t})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`div`,{ref:n,className:$(`page-sidebar-footer`,e),...t})}),I.forwardRef(function({title:e,meta:t,selected:n,playState:r=`idle`,onPlay:i,envelope:a,chips:o,note:s,actions:c,className:l,children:u,...d},f){return(0,K.jsxs)(`article`,{ref:f,className:$(`media-card`,l),"data-selected":n?`true`:void 0,...d,children:[(0,K.jsxs)(`header`,{children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`strong`,{children:e}),t!=null&&(0,K.jsx)(`span`,{children:t})]}),i&&(0,K.jsx)(`button`,{type:`button`,className:`media-play`,"data-state":r,"aria-label":r===`playing`?`Pause`:`Play`,onClick:i,children:r===`playing`?`Pause`:`Play`})]}),a!=null&&(0,K.jsx)(`div`,{className:`media-envelope`,"aria-hidden":`true`,children:(0,K.jsx)(`span`,{style:{width:`${a}%`}})}),o!=null&&(0,K.jsx)(`div`,{className:`media-card-chips`,children:o}),s!=null&&(0,K.jsx)(`p`,{className:`media-card-note`,children:s}),u,c!=null&&(0,K.jsx)(`div`,{className:`media-card-actions`,children:c})]})});function Ir(e,t){let n=I.useRef(t);I.useEffect(()=>{if(e.current)return Jt(e.current,n.current)},[e])}I.forwardRef(function({images:e,label:t,thumbWidth:n=240,thumbHeight:r=180,labels:i,className:a,...o},s){let c=I.useRef(null),l=I.useCallback(e=>{c.current=e,typeof s==`function`?s(e):s&&(s.current=e)},[s]);return Ir(c,{labels:i}),(0,K.jsx)(`ul`,{ref:l,className:$(`gallery`,a),"data-gallery":``,"aria-label":t,...o,children:e.map(e=>(0,K.jsx)(`li`,{children:(0,K.jsx)(`a`,{className:`gallery-link`,href:e.href,"data-width":e.width,"data-height":e.height,"data-srcset":e.srcSet,"data-caption":e.caption,children:(0,K.jsx)(`img`,{src:e.thumb,srcSet:e.thumbSrcSet,width:n,height:r,alt:e.alt,loading:`lazy`,decoding:`async`})})},e.href))})});function Lr(e,t){let n=I.useRef(t);I.useEffect(()=>{if(e.current)return kn(e.current,n.current)},[e])}I.forwardRef(function({options:e,pole:t,className:n,...r},i){let a=I.useRef(null),o=I.useCallback(e=>{a.current=e,typeof i==`function`?i(e):i&&(i.current=e)},[i]),s=I.useRef(e);return I.useEffect(()=>{if(!a.current)return;let e=new Tn(a.current,{...s.current,pole:t?.current??null});return()=>e.destroy()},[t]),(0,K.jsx)(`div`,{ref:o,className:$(`sky`,n),"aria-hidden":`true`,...r})});var Rr=I.createContext(void 0);I.forwardRef(function({star:e,starSize:t=76,title:n=`Sign in`,titleId:r,brand:i,lede:a,alt:o,altLabel:s=`or`,altNeedsScript:c=!0,note:l,tools:u,sky:d,className:f,children:p,...m},h){let g=I.useId(),_=r??`${g}-title`,v=I.useRef(null),y=I.useCallback(e=>{v.current=e,typeof h==`function`?h(e):h&&(h.current=e)},[h]);return Lr(v,d),(0,K.jsxs)(`main`,{ref:y,className:$(`auth sky-turn`,f),"data-sky-turn":`arrived`,...m,children:[(0,K.jsx)(`div`,{className:`sky`,"aria-hidden":`true`}),(0,K.jsxs)(`div`,{className:`auth-card`,children:[i!=null&&(0,K.jsx)(`p`,{className:`auth-brand`,children:i}),(0,K.jsx)(`h1`,{id:_,children:n}),a!=null&&(0,K.jsx)(`p`,{className:`auth-lede`,children:a}),(0,K.jsx)(Rr.Provider,{value:_,children:p}),o!=null&&(0,K.jsxs)(`div`,{className:`auth-alt`,"data-js-only":c?``:void 0,children:[(0,K.jsx)(`p`,{className:`auth-or`,children:s}),o]}),l!=null&&(0,K.jsx)(`p`,{className:`auth-note`,children:l}),u!=null&&(0,K.jsx)(`div`,{className:`auth-tools`,children:u})]}),(0,K.jsx)(`div`,{className:`sky-turn-star`,"data-sky-pole":!0,"aria-hidden":`true`,children:(0,K.jsx)(`img`,{src:e,alt:``,width:t,height:t})})]})}),I.forwardRef(function({error:e,usernameLabel:t=`Username or email`,passwordLabel:n=`Password`,submitLabel:r=`Sign in`,usernameName:i=`username`,passwordName:a=`password`,usernameType:o=`text`,defaultUsername:s,forgot:c,method:l=`post`,className:u,children:d,...f},p){let m=I.useContext(Rr),h=I.useId(),g=`${h}-error`,_=e!=null&&e!==!1&&e!==``||void 0,v=f[`aria-label`]==null&&f[`aria-labelledby`]==null?m:void 0;return(0,K.jsxs)(`form`,{ref:p,className:$(`auth-form`,u),method:l,"aria-labelledby":v,...f,children:[d,(0,K.jsx)(`p`,{className:`auth-error`,id:g,role:`alert`,children:e}),(0,K.jsxs)(`div`,{className:`auth-field`,children:[(0,K.jsx)(`label`,{htmlFor:`${h}-username`,children:t}),(0,K.jsx)(`input`,{id:`${h}-username`,name:i,type:o,autoComplete:`username`,autoCapitalize:`none`,spellCheck:!1,required:!0,defaultValue:s,"aria-describedby":g,"aria-invalid":_})]}),(0,K.jsxs)(`div`,{className:`auth-field`,children:[(0,K.jsx)(`label`,{htmlFor:`${h}-password`,children:n}),(0,K.jsx)(`input`,{id:`${h}-password`,name:a,type:`password`,autoComplete:`current-password`,required:!0,"aria-describedby":g,"aria-invalid":_})]}),(0,K.jsxs)(`div`,{className:`auth-actions`,children:[(0,K.jsx)(`button`,{type:`submit`,children:r}),c]})]})}),I.forwardRef(function({data:e,mode:t=`teaser`,selected:n=null,href:r,chartId:i,mark:a,words:o,onSelect:s,header:c,insetTop:l,className:u,...d},f){let p=I.useRef(null),m=I.useCallback(e=>{p.current=e,typeof f==`function`?f(e):f&&(f.current=e)},[f]),h=I.useId(),g=i??`star-chart-${h.replace(/[^A-Za-z0-9_-]/g,``)}`,_=gr(e,{mode:t,selected:I.useRef(n).current,href:r,id:g,mark:a,words:o,frame:!1}),v=I.useMemo(()=>({__html:_}),[_]),y=I.useRef({header:c,insetTop:l});y.current={header:c,insetTop:l},I.useEffect(()=>{let e=p.current;if(e)return Hn(e,{...y.current})},[_]),I.useEffect(()=>{p.current&&Vn(p.current,n??null)},[n,_]);let b=I.useRef(s);return b.current=s,I.useEffect(()=>{let e=p.current;if(!e)return;let t=e=>{let t=e;b.current?.(t.detail,t)};return e.addEventListener(An,t),()=>e.removeEventListener(An,t)},[]),(0,K.jsx)(`div`,{ref:m,className:$(`star-chart`,u),"data-star-chart":t,...d,dangerouslySetInnerHTML:v})}),I.forwardRef(function({words:e,className:t,...n},r){let i={...er,...e?.stages};return(0,K.jsxs)(`div`,{ref:r,className:$(`star-chart-legend`,t),role:`group`,"aria-label":e?.legend??mr.legend,...n,children:[(0,K.jsx)(`span`,{children:e?.legendTitle??mr.legendTitle}),[1,2,3,4,5].map(e=>(0,K.jsxs)(`span`,{className:`star-chart-legend-item`,children:[(0,K.jsx)(`span`,{className:`star-chart-legend-dot`,"data-magnitude":e}),`${e} ${i[e]}`]},e))]})});var zr={viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0};I.forwardRef(function({labelToLight:e=`Switch to light theme`,labelToDark:t=`Switch to dark theme`,className:n,...r},i){let{resolved:a}=d();return(0,K.jsxs)(`button`,{ref:i,type:`button`,className:$(`topbar-btn`,n),"data-variant":`theme`,"data-theme-toggle":``,"data-label-to-light":e,"data-label-to-dark":t,"aria-label":a===`dark`?e:t,suppressHydrationWarning:!0,...r,children:[(0,K.jsxs)(`svg`,{className:`topbar-icon`,"data-icon":`sun`,...zr,children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`4.5`}),(0,K.jsx)(`path`,{d:`M12 2v2.2M12 19.8V22M3.5 12H5.7M18.3 12h2.2M5.6 5.6l1.5 1.5M16.9 16.9l1.5 1.5M5.6 18.4l1.5-1.5M16.9 7.1l1.5-1.5`})]}),(0,K.jsx)(`svg`,{className:`topbar-icon`,"data-icon":`moon`,...zr,children:(0,K.jsx)(`path`,{d:`M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z`})})]})}),I.forwardRef(function({darkLabel:e=`Night`,lightLabel:t=`Day`,systemLabel:n,label:r=`Theme`,className:i,...a},o){let{mode:s,resolved:c}=d(),l=n!=null,u=e=>e===s||s===`system`&&!l&&e===c;return(0,K.jsxs)(`div`,{ref:o,className:$(`theme-switch`,i),role:`group`,"aria-label":r,...a,children:[(0,K.jsx)(`button`,{type:`button`,"data-set-theme":`dark`,"aria-pressed":u(`dark`),suppressHydrationWarning:!0,children:e}),(0,K.jsx)(`button`,{type:`button`,"data-set-theme":`light`,"aria-pressed":u(`light`),suppressHydrationWarning:!0,children:t}),l&&(0,K.jsx)(`button`,{type:`button`,"data-set-theme":`system`,"aria-pressed":u(`system`),suppressHydrationWarning:!0,children:n})]})});function Br(e,t){let n=I.useRef(t);I.useEffect(()=>{if(e.current)return br(e.current,n.current)},[e])}I.forwardRef(function({id:e,label:t=`Menu`,brand:n,closeLabel:r=`Close`,foot:i,closeMedia:a,className:o,children:s,...c},l){let u=I.useRef(null),d=I.useCallback(e=>{u.current=e,typeof l==`function`?l(e):l&&(l.current=e)},[l]);return Br(u),(0,K.jsxs)(`dialog`,{ref:d,id:e,className:$(`nav-dialog`,o),"aria-label":t,"data-nav-dialog":``,"data-close-media":a,...c,children:[(0,K.jsxs)(`div`,{className:`nav-dialog-top`,children:[n,(0,K.jsx)(`button`,{type:`button`,className:`nav-dialog-close`,"data-nav-dialog-close":``,children:r})]}),(0,K.jsx)(`nav`,{className:`nav-dialog-links`,"aria-label":t,children:s}),i!=null&&(0,K.jsx)(`div`,{className:`nav-dialog-foot`,children:i})]})}),I.forwardRef(function({controls:e,fallbackHref:t,className:n,children:r=`Menu`,...i},a){return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`button`,{ref:a,type:`button`,className:$(`nav-dialog-open`,n),"data-nav-dialog-open":e,"aria-controls":e,"aria-expanded":!1,"aria-haspopup":`dialog`,...i,children:r}),(0,K.jsx)(`a`,{className:$(`nav-dialog-fallback`,n),href:t,children:r})]})});var Vr=I.forwardRef(function({variant:e,size:t,as:n,className:r,type:i,...a},o){let s=n??(a.href==null?e===`off`?`span`:`button`:`a`);return(0,K.jsx)(s,{ref:o,className:$(`pill`,r),"data-variant":e,"data-size":t,type:s===`button`?i??`button`:i,...a})});function Hr(){return(0,K.jsx)(`svg`,{viewBox:`0 0 16 16`,"aria-hidden":`true`,focusable:`false`,children:(0,K.jsx)(`path`,{d:`M5 11 11 5M6 5h5v5`,fill:`none`,stroke:`currentColor`,strokeWidth:1.6,strokeLinecap:`round`,strokeLinejoin:`round`})})}I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`div`,{ref:n,className:$(`panel`,e),...t})}),I.forwardRef(function({as:e=`summary`,className:t,...n},r){return(0,K.jsx)(e,{ref:r,className:$(`panel-head`,t),...n})}),I.forwardRef(function({label:e,defaultOpen:t,className:n,children:r,...i},a){return(0,K.jsxs)(`details`,{ref:a,className:$(`panel-section`,n),open:t||void 0,...i,children:[(0,K.jsx)(`summary`,{className:`panel-head`,children:e}),r]})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`ul`,{ref:n,className:$(`panel-links`,e),role:`list`,...t})}),I.forwardRef(function({href:e,value:t,note:n,variant:r,external:i,rel:a,children:o,...s},c){let l=i??(e!=null&&/^https?:/.test(e));return(0,K.jsxs)(`li`,{ref:c,...s,children:[(0,K.jsxs)(Vr,{href:e,rel:a,variant:r??(e==null?`off`:`filled`),children:[o,l&&(0,K.jsx)(Hr,{})]}),(t!=null||n!=null)&&(0,K.jsxs)(`span`,{className:`panel-detail`,children:[t!=null&&(0,K.jsx)(`code`,{children:t}),t!=null&&n!=null&&` `,n!=null&&(0,K.jsx)(`span`,{className:`panel-note`,children:n})]})]})}),I.forwardRef(function({copyLabels:e,className:t,...n},r){let i=I.useRef(null),a=I.useCallback(e=>{i.current=e,typeof r==`function`?r(e):r&&(r.current=e)},[r]);return Er(i,{labels:e}),(0,K.jsx)(`ul`,{ref:a,className:$(`panel-rows`,t),role:`list`,...n})}),I.forwardRef(function({name:e,handle:t,note:n,value:r,copyName:i,copyLabel:a=`Copy`,noCopy:o,...s},c){let l=I.useId(),u=i??(typeof e==`string`?e:void 0);return(0,K.jsxs)(`li`,{ref:c,...s,children:[(0,K.jsxs)(`span`,{className:`panel-who`,children:[(0,K.jsx)(`span`,{className:`panel-name`,children:e}),t!=null&&(0,K.jsx)(`span`,{className:`panel-handle`,children:t}),n!=null&&(0,K.jsx)(`span`,{className:`panel-note`,children:n})]}),(0,K.jsx)(`code`,{className:`panel-value`,id:l,children:r}),!o&&(0,K.jsxs)(Vr,{"data-copy-target":`#${l}`,children:[a,u&&(0,K.jsx)(`span`,{className:`visually-hidden`,children:` ${u}`})]})]})});var Ur=I.createContext(void 0);I.forwardRef(function({panelId:e,className:t,children:n,...r},i){let a=I.useId(),o=e??a;return(0,K.jsx)(`div`,{ref:i,className:$(`action-card`,t),...r,children:(0,K.jsx)(Ur.Provider,{value:o,children:n})})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`div`,{ref:n,className:$(`action-card-copy`,e),...t})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`p`,{ref:n,className:$(`action-card-label`,e),...t})}),I.forwardRef(function({as:e=`h2`,className:t,...n},r){return(0,K.jsx)(e,{ref:r,className:$(`action-card-title`,t),...n})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`p`,{ref:n,className:$(`action-card-text`,e),...t})}),I.forwardRef(function({defaultOpen:e,className:t,children:n,...r},i){let a=I.useContext(Ur);return(0,K.jsx)(`details`,{ref:i,className:$(`action-card-more`,t),open:e||void 0,...r,children:(0,K.jsxs)(`summary`,{className:`pill`,"data-variant":`primary`,"data-size":`lg`,"aria-controls":a,children:[n,(0,K.jsx)(`svg`,{className:`action-card-chevron`,viewBox:`0 0 16 16`,"aria-hidden":`true`,focusable:`false`,children:(0,K.jsx)(`path`,{d:`M4 6.5 8 10.5l4-4`,fill:`none`,stroke:`currentColor`,strokeWidth:1.6,strokeLinecap:`round`,strokeLinejoin:`round`})})]})})}),I.forwardRef(function({className:e,id:t,...n},r){let i=I.useContext(Ur);return(0,K.jsx)(`div`,{ref:r,className:$(`action-card-panel panel`,e),id:i??t,...n})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(Vr,{ref:n,as:`a`,size:`lg`,className:$(`action-card-link`,e),...t})});function Wr(e,t){return e<t?`done`:e===t?`current`:`upcoming`}I.forwardRef(function({steps:e,active:t,orientation:n=`horizontal`,className:r,...i},a){return(0,K.jsx)(`ol`,{ref:a,className:$(`stepper`,r),"data-orientation":n===`horizontal`?void 0:n,...i,children:e.map((e,n)=>(0,K.jsxs)(`li`,{className:`step`,"data-state":Wr(n,t),children:[(0,K.jsx)(`span`,{className:`step-dot`,children:e.dot??n+1}),(0,K.jsx)(`span`,{className:`step-label`,children:e.label})]},n))})}),I.forwardRef(function({open:e,onClose:t,eyebrow:n,title:r,footer:i,dismissable:a=!0,className:o,children:s,...c},l){let u=I.useRef(null);I.useImperativeHandle(l,()=>u.current),Or(t,{enabled:e&&a}),Dr(u,t,{enabled:e&&a});let d=n!=null||r!=null;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`div`,{className:$(`drawer-backdrop`,e&&`is-visible`),"aria-hidden":`true`}),(0,K.jsxs)(`div`,{ref:u,role:`dialog`,"aria-modal":`true`,"aria-hidden":!e,className:$(`drawer`,e&&`is-open`,o),...c,children:[d&&(0,K.jsxs)(`header`,{className:`drawer-header`,children:[(0,K.jsxs)(`div`,{children:[n!=null&&(0,K.jsx)(`div`,{className:`drawer-eyebrow`,children:n}),r!=null&&(0,K.jsx)(`h2`,{className:`drawer-title`,children:r})]}),(0,K.jsx)(`button`,{type:`button`,className:`drawer-close`,"aria-label":`Close`,onClick:t,children:`×`})]}),(0,K.jsx)(`div`,{className:`drawer-body`,children:s}),i!=null&&(0,K.jsx)(`footer`,{className:`drawer-footer`,children:i})]})]})}),I.forwardRef(function({open:e,onClose:t,className:n,...r},i){let a=I.useRef(null);return I.useImperativeHandle(i,()=>a.current),Or(()=>t?.(),{enabled:e&&!!t}),Dr(a,()=>t?.(),{enabled:e&&!!t}),(0,K.jsx)(`div`,{ref:a,role:`menu`,"aria-hidden":!e,className:$(`flyout`,e&&`is-open`,n),...r})}),I.forwardRef(function({danger:e,active:t,disabled:n,className:r,type:i=`button`,...a},o){return(0,K.jsx)(`button`,{ref:o,type:i,role:`menuitem`,className:$(`flyout-item`,t&&`is-active`,r),"data-danger":e?``:void 0,"aria-disabled":n||void 0,disabled:n,...a})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`div`,{ref:n,role:`separator`,className:$(`flyout-separator`,e),...t})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`div`,{ref:n,className:$(`flyout-section-label`,e),...t})}),I.forwardRef(function({open:e,onClose:t,placement:n=`bottom`,title:r,footer:i,arrow:a=!0,className:o,children:s,...c},l){let u=I.useRef(null);return I.useImperativeHandle(l,()=>u.current),Or(()=>t?.(),{enabled:e&&!!t}),Dr(u,()=>t?.(),{enabled:e&&!!t}),(0,K.jsxs)(`div`,{ref:u,role:`dialog`,"aria-hidden":!e,className:$(`popover`,e&&`is-open`,o),"data-placement":n===`bottom`?void 0:n,...c,children:[a&&(0,K.jsx)(`div`,{className:`popover-arrow`,"aria-hidden":`true`}),r!=null&&(0,K.jsx)(`header`,{className:`popover-head`,children:r}),(0,K.jsx)(`div`,{className:`popover-body`,children:s}),i!=null&&(0,K.jsx)(`footer`,{className:`popover-foot`,children:i})]})}),I.forwardRef(function({menu:e,className:t,children:n,...r},i){let a=I.useRef(null);return I.useImperativeHandle(i,()=>a.current),Or(e.close,{enabled:e.isOpen}),Dr(a,e.close,{enabled:e.isOpen}),e.isOpen?(0,K.jsx)(`div`,{ref:a,role:`menu`,className:$(`context-menu`,t),...e.menuProps,...r,children:n}):null}),I.forwardRef(function({danger:e,className:t,type:n=`button`,...r},i){return(0,K.jsx)(`button`,{ref:i,type:n,role:`menuitem`,className:$(`flyout-item`,t),"data-danger":e?``:void 0,...r})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`div`,{ref:n,role:`separator`,className:$(`flyout-separator`,e),...t})}),I.forwardRef(function({summary:e,className:t,children:n,...r},i){return(0,K.jsxs)(`details`,{ref:i,className:$(`accordion`,t),...r,children:[(0,K.jsx)(`summary`,{children:e}),(0,K.jsx)(`div`,{className:`accordion-body`,children:n})]})}),I.forwardRef(function({className:e,...t},n){return(0,K.jsx)(`div`,{ref:n,className:$(`accordion-group`,e),...t})}),I.forwardRef(function({variant:e=`markdown`,html:t,className:n,children:r,...i},a){let o=e===`preserved`?`pre`:`div`,s=$(e===`preserved`?`preserved-text-body`:`markdown-body`,n);return(0,K.jsx)(o,{ref:a,className:s,...t==null?{}:{dangerouslySetInnerHTML:{__html:t}},...i,children:t==null?r:void 0})}),I.forwardRef(function({code:e,compact:t,className:n,children:r,...i},a){return(0,K.jsx)(`pre`,{ref:a,className:$(`code-snippet`,t&&`code-snippet--compact`,n),...i,children:e??r})}),I.forwardRef(function({bar:e=!0,code:t,compact:n,className:r,children:i,...a},o){return(0,K.jsxs)(`div`,{ref:o,className:$(`terminal`,r),...a,children:[e&&(0,K.jsxs)(`div`,{className:`terminal-bar`,"aria-hidden":`true`,children:[(0,K.jsx)(`span`,{}),(0,K.jsx)(`span`,{}),(0,K.jsx)(`span`,{})]}),(0,K.jsx)(`pre`,{className:$(`code-snippet`,n&&`code-snippet--compact`),children:t??i})]})}),I.forwardRef(function({title:e,mark:t,markSize:n=`sm`,collapsible:r=!0,className:i,children:a,open:o,...s},c){let l=t==null?null:(0,K.jsx)(`span`,{className:$(`section-mark`,n===`lg`&&`section-mark--lg`),children:t});return r?(0,K.jsxs)(`details`,{ref:c,className:$(`section`,i),open:o,...s,children:[(0,K.jsx)(`summary`,{children:(0,K.jsxs)(`span`,{className:`section-title-row`,children:[l,(0,K.jsx)(`h3`,{children:e})]})}),a]}):(0,K.jsxs)(`section`,{ref:c,className:$(`section`,i),children:[(0,K.jsxs)(`div`,{className:`section-title-row`,children:[l,(0,K.jsx)(`h3`,{children:e})]}),a]})}),I.forwardRef(function({open:e,onClose:t,closeOnBackdrop:n=!0,className:r,children:i,...a},o){let s=I.useRef(null);return I.useImperativeHandle(o,()=>s.current),I.useEffect(()=>{let t=s.current;t&&(e&&!t.open?t.showModal():!e&&t.open&&t.close())},[e]),(0,K.jsx)(`dialog`,{ref:s,className:$(`dialog`,r),onClose:()=>t?.(),onClick:e=>{n&&e.target===s.current&&t?.()},...a,children:i})});var Gr=`orbit_font_preferences`,Kr=`orbit:font-preference-change`,qr=`monaSans`,Jr=1,Yr=.85,Xr=1.3,Zr=.05,Qr={monaSans:{label:`Mona Sans`,stack:`"Orbit Mona Sans", "Mona Sans", system-ui, "Segoe UI Variable", "Segoe UI", Arial, sans-serif`},inter:{label:`Inter`,stack:`"Orbit Inter", "Inter", "Segoe UI Variable", "Segoe UI", Arial, sans-serif`},openSans:{label:`Open Sans`,stack:`"Orbit Open Sans", "Open Sans", "Segoe UI Variable", "Segoe UI", Arial, sans-serif`},jetBrainsMono:{label:`JetBrains Mono`,stack:`"Orbit JetBrains Mono", "JetBrains Mono", "Cascadia Mono", "SFMono-Regular", Consolas, monospace`},chakraPetch:{label:`Chakra Petch`,stack:`"Orbit Chakra Petch", "Chakra Petch", "Segoe UI Variable", "Segoe UI", Arial, sans-serif`},orbitron:{label:`Orbitron`,stack:`"Orbit Orbitron", "Orbitron", "Segoe UI Variable", "Segoe UI", Arial, sans-serif`},rajdhani:{label:`Rajdhani`,stack:`"Orbit Rajdhani", "Rajdhani", "Segoe UI Variable", "Segoe UI", Arial, sans-serif`},runescapeUF:{label:`Runescape UF`,stack:`"Orbit Runescape UF", "Cascadia Mono", monospace`},openRing:{label:`Open Ring`,stack:`"Orbit Open Ring", "Segoe UI Variable", "Segoe UI", Arial, sans-serif`}},$r=Object.keys(Qr),ei=[`monaSans`,`inter`,`openSans`,`jetBrainsMono`,`chakraPetch`,`orbitron`,`rajdhani`,`runescapeUF`,`openRing`],ti={heading:{label:`Headings`,cssVar:`--orbit-font-heading`,dataAttr:`data-font-heading`},control:{label:`Controls`,cssVar:`--orbit-font-control`,dataAttr:`data-font-control`},label:{label:`Labels`,cssVar:`--orbit-font-label`,dataAttr:`data-font-label`},badge:{label:`Badges`,cssVar:`--orbit-font-badge`,dataAttr:`data-font-badge`}},ni=Object.keys(ti),ri={control:qr,heading:qr,label:qr,badge:qr,site:qr,userScale:Jr};function ii(e){return typeof e==`string`&&Object.hasOwn(Qr,e)}function ai(e){let t=Number(e);return Number.isFinite(t)?Math.min(Xr,Math.max(Yr,t)):Jr}var oi={site:`inter`,heading:`orbitron`,control:`inter`,label:`inter`,badge:`orbitron`};function si(e){return Object.entries(oi).every(([t,n])=>e[t]===n)}function ci(e){let t=e&&typeof e==`object`?{...e}:{};if(si(t)){let e={...ri};return t.userScale!==void 0&&(e.userScale=ai(t.userScale)),e}let n={...ri},r=new Set;for(let e of ni){let i=t[e];ii(i)&&(n[e]=i,r.add(e))}let i=t.ui;return!r.has(`control`)&&ii(i)&&(n.control=i),ii(t.site)&&(n.site=t.site),t.userScale!==void 0&&(n.userScale=ai(t.userScale)),!Object.hasOwn(t,`badge`)&&Object.hasOwn(t,`label`)&&t.label!==`inter`&&(n.badge=n.label),n}function li(){try{let e=localStorage.getItem(Gr);return e?ci(JSON.parse(e)):{...ri}}catch{return{...ri}}}function ui(e){let t=document.documentElement;for(let n of ni){let r=ti[n],i=e[n];t.style.setProperty(r.cssVar,Qr[i].stack),t.setAttribute(r.dataAttr,i)}t.style.setProperty(`--orbit-font-body`,Qr[e.site].stack),t.style.setProperty(`--type-user-scale`,String(e.userScale)),t.setAttribute(`data-font-site`,e.site)}function di(e){let t=ci(e);try{localStorage.setItem(Gr,JSON.stringify(t))}catch{}return ui(t),dispatchEvent(new CustomEvent(Kr,{detail:{preferences:t}})),t}function fi(e,t){return di({...li(),[e]:t})}function pi(e){let t={...li(),site:e};for(let n of ni)t[n]=e;return di(t)}function mi(e){return di({...li(),userScale:ai(e)})}function hi(){try{return matchMedia(`(prefers-reduced-motion: reduce)`).matches}catch{return!1}}var gi=[{cx:6,cy:7,r:1.1,d:`0s`},{cx:17.5,cy:6,r:1.5,d:`0.5s`},{cx:12,cy:12,r:1,d:`0.9s`},{cx:7.5,cy:17,r:1.4,d:`0.25s`},{cx:18,cy:16.5,r:1.1,d:`0.7s`}];function _i(){let e=(0,L.c)(29),t=d(),n=Cr(),r=t.resolved===`dark`,i=n.resolved===`reduce`,a=n.mode===`system`?`Using browser default (${hi()?`reduced motion`:`motion allowed`}).`:`Using your saved preference.`,s=yi,c;e[0]!==n||e[1]!==i?(c=()=>{let e=!i;n.setMode(e?`reduce`:`full`),o.success(e?`Theme motion reduced`:`Theme motion enabled`)},e[0]=n,e[1]=i,e[2]=c):c=e[2];let l=c,u=r?k.toLight:k.toDark,f;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,K.jsxs)(`svg`,{className:`topbar-icon`,"data-icon":`sun`,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,"aria-hidden":`true`,children:[(0,K.jsx)(`circle`,{cx:`12`,cy:`12`,r:`5`}),(0,K.jsx)(`path`,{d:`M12 1v2m0 18v2M4.2 4.2l1.4 1.4m12.8 12.8l1.4 1.4M1 12h2m18 0h2M4.2 19.8l1.4-1.4M18.4 5.6l1.4-1.4`})]}),e[3]=f):f=e[3];let p;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,K.jsx)(`svg`,{className:`topbar-icon`,"data-icon":`moon`,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,"aria-hidden":`true`,children:(0,K.jsx)(`path`,{d:`M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z`})}),e[4]=p):p=e[4];let m;e[5]===u?m=e[6]:(m=(0,K.jsxs)(`button`,{type:`button`,className:`topbar-btn topbar-ctl-shrink`,"data-variant":`theme`,"data-theme-toggle":``,id:`appearanceThemeToggle`,"aria-label":u,onClick:s,children:[f,p]}),e[5]=u,e[6]=m);let h=r?`Dark`:`Light`,g;e[7]===h?g=e[8]:(g=(0,K.jsx)(`span`,{className:`settings-row-title`,id:`appearanceThemeLabel`,children:h}),e[7]=h,e[8]=g);let _;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,K.jsx)(`span`,{className:`description`,children:`Tap to switch between the light and dark theme used across the app.`}),e[9]=_):_=e[9];let v;e[10]===g?v=e[11]:(v=(0,K.jsxs)(`span`,{className:`settings-toggle-text`,children:[g,_]}),e[10]=g,e[11]=v);let y;e[12]!==m||e[13]!==v?(y=(0,K.jsx)(q,{id:`appearanceTheme`,title:`Theme`,children:(0,K.jsxs)(`div`,{className:`settings-toggle`,children:[m,v]})}),e[12]=m,e[13]=v,e[14]=y):y=e[14];let b;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,K.jsx)(`svg`,{className:`topbar-icon motion-icon`,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`currentColor`,stroke:`none`,"aria-hidden":`true`,children:gi.map(vi)}),e[15]=b):b=e[15];let x;e[16]!==l||e[17]!==i?(x=(0,K.jsx)(`button`,{type:`button`,className:`topbar-btn topbar-ctl-shrink motion-toggle`,"data-variant":`theme`,id:`appearanceMotionToggle`,"aria-pressed":i,"aria-label":`Toggle reduced theme motion`,onClick:l,children:b}),e[16]=l,e[17]=i,e[18]=x):x=e[18];let S;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,K.jsx)(`span`,{className:`settings-row-title`,children:`Reduce theme motion`}),e[19]=S):S=e[19];let C;e[20]===a?C=e[21]:(C=(0,K.jsxs)(`span`,{className:`settings-toggle-text`,children:[S,(0,K.jsxs)(`span`,{className:`description`,children:[`Turns off the animated starfield, meteors, and theme animations. `,a]})]}),e[20]=a,e[21]=C);let w;e[22]!==x||e[23]!==C?(w=(0,K.jsx)(q,{id:`appearanceMotion`,title:`Motion`,children:(0,K.jsxs)(`div`,{className:`settings-toggle`,children:[x,C]})}),e[22]=x,e[23]=C,e[24]=w):w=e[24];let T;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,K.jsx)(xi,{}),e[25]=T):T=e[25];let E;return e[26]!==w||e[27]!==y?(E=(0,K.jsxs)(`div`,{className:`settings-sheet`,children:[y,w,T]}),e[26]=w,e[27]=y,e[28]=E):E=e[28],E}function vi(e){return(0,K.jsx)(`circle`,{className:`motion-star`,cx:e.cx,cy:e.cy,r:e.r,style:{animationDelay:e.d}},`${e.cx}:${e.cy}`)}function yi(){let e=x(t=>{let{resolvedTheme:n}=t;e(),o.success(n===`dark`?`Dark theme enabled`:`Light theme enabled`)});setTimeout(e)}function bi(e){let t=Xr-Yr,n=t<=0?0:(e-Yr)/t*100;return{"--value":String(n)}}function xi(){let e=(0,L.c)(27),[t,n]=(0,I.useState)(li),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,K.jsx)(`span`,{className:`control-field-label`,children:`Text size`}),e[0]=r):r=e[0];let i=t.userScale,a;e[1]===t.userScale?a=e[2]:(a=bi(t.userScale),e[1]=t.userScale,e[2]=a);let s;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=e=>n(mi(e.currentTarget.value)),e[3]=s):s=e[3];let c;e[4]!==t.userScale||e[5]!==a?(c=(0,K.jsx)(`input`,{type:`range`,className:`slider`,id:`fontScaleSlider`,min:Yr,max:Xr,step:Zr,value:i,"aria-label":`Text size`,style:a,onChange:s}),e[4]=t.userScale,e[5]=a,e[6]=c):c=e[6];let l;e[7]===t.userScale?l=e[8]:(l=Math.round(t.userScale*100),e[7]=t.userScale,e[8]=l);let u;e[9]===l?u=e[10]:(u=(0,K.jsxs)(`output`,{id:`fontScaleValue`,className:`control-value`,children:[l,`%`]}),e[9]=l,e[10]=u);let d;e[11]!==c||e[12]!==u?(d=(0,K.jsxs)(`div`,{className:`settings-slider-row`,children:[r,c,u]}),e[11]=c,e[12]=u,e[13]=d):d=e[13];let f;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,K.jsx)(`span`,{className:`control-field-label`,children:`Primary font`}),e[14]=f):f=e[14];let p=t.site,m,h;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(m=e=>{let t=e.currentTarget.value;if(!ii(t))return;let r=pi(t);n(r),o.success(`Primary font: ${Qr[r.site].label}`)},h=ei.map(Ci),e[15]=m,e[16]=h):(m=e[15],h=e[16]);let g;e[17]===t.site?g=e[18]:(g=(0,K.jsx)(`div`,{className:`sheet-fields`,children:(0,K.jsxs)(`label`,{className:`control-field`,children:[f,(0,K.jsx)(`select`,{className:`select-chevron-field`,id:`siteFontSelect`,value:p,onChange:m,children:h})]})}),e[17]=t.site,e[18]=g);let _;e[19]===t?_=e[20]:(_=ni.map(e=>(0,K.jsxs)(`label`,{className:`control-field`,children:[(0,K.jsx)(`span`,{className:`control-field-label`,children:ti[e].label}),(0,K.jsx)(`select`,{className:`select-chevron-field`,"data-font-target":e,value:t[e],onChange:t=>{let r=t.currentTarget.value;ii(r)&&n(fi(e,r))},children:$r.map(Si)})]},e)),e[19]=t,e[20]=_);let v;e[21]===_?v=e[22]:(v=(0,K.jsx)(`div`,{className:`sheet-fields`,children:(0,K.jsx)(`div`,{className:`control-grid`,children:_})}),e[21]=_,e[22]=v);let y;return e[23]!==g||e[24]!==v||e[25]!==d?(y=(0,K.jsxs)(q,{id:`appearanceType`,title:`Type`,children:[d,g,v]}),e[23]=g,e[24]=v,e[25]=d,e[26]=y):y=e[26],y}function Si(e){return(0,K.jsx)(`option`,{value:e,children:Qr[e].label},e)}function Ci(e){return(0,K.jsx)(`option`,{value:e,children:Qr[e].label},e)}function wi(){let e=(0,L.c)(31),t=a(),n=_(ki),r=_(Oi),i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i={status:`loading`},e[0]=i):i=e[0];let[s,c]=(0,I.useState)(i),[l,u]=(0,I.useState)(0),d;e[1]!==t||e[2]!==n?(d=()=>{if(!n)return;let e=!0;return t.client.boards.archive(n).then(t=>{e&&c({status:`loaded`,tickets:t.tickets})},t=>{e&&c({status:`failed`,message:t instanceof Error&&t.message?t.message:`unknown error`})}),()=>{e=!1}},e[1]=t,e[2]=n,e[3]=d):d=e[3];let f;e[4]!==t||e[5]!==n||e[6]!==r||e[7]!==l?(f=[t,n,r,l],e[4]=t,e[5]=n,e[6]=r,e[7]=l,e[8]=f):f=e[8],(0,I.useEffect)(d,f);let p;e[9]===t?p=e[10]:(p=e=>{(async()=>{await t.call(()=>t.client.tickets.restore(e.id,t.hint())),o.success(`Restored: ${e.title||`card`}`),await t.load()})().catch(Di)},e[9]=t,e[10]=p);let m=p,h;e[11]===t?h=e[12]:(h=e=>{let n=e.title||`card`;confirm(`Permanently delete "${n}"? This cannot be undone.`)&&(async()=>{await t.call(()=>t.client.tickets.remove(e.id,t.hint())),o.removed(`Deleted: ${n}`),u(Ei)})().catch(Ti)},e[11]=t,e[12]=h);let g=h,v;e[13]===s.status?v=e[14]:(v=s.status===`loading`?(0,K.jsx)(`p`,{className:`sheet-note`,children:`Loading…`}):null,e[13]=s.status,e[14]=v);let y;e[15]!==s.message||e[16]!==s.status?(y=s.status===`failed`?(0,K.jsxs)(`p`,{className:`sheet-note`,children:[`Could not load archive: `,s.message]}):null,e[15]=s.message,e[16]=s.status,e[17]=y):y=e[17];let b;e[18]!==s.status||e[19]!==s.tickets?(b=s.status===`loaded`&&s.tickets.length===0?(0,K.jsx)(`p`,{className:`sheet-note`,children:`No archived cards yet. To archive one, press the trash icon at the top of its card.`}):null,e[18]=s.status,e[19]=s.tickets,e[20]=b):b=e[20];let x;e[21]!==s.status||e[22]!==s.tickets||e[23]!==g||e[24]!==m?(x=s.status===`loaded`&&s.tickets.length>0?(0,K.jsx)(`div`,{className:`detail-card-grid`,children:s.tickets.map(e=>(0,K.jsx)(N,{ticket:e,archive:{onRestore:()=>m(e),onDelete:()=>g(e)}},e.id))}):null,e[21]=s.status,e[22]=s.tickets,e[23]=g,e[24]=m,e[25]=x):x=e[25];let S;return e[26]!==v||e[27]!==y||e[28]!==b||e[29]!==x?(S=(0,K.jsx)(`div`,{className:`settings-sheet`,children:(0,K.jsx)(q,{id:`archivedCards`,label:`Archived cards`,lead:`Archived cards are hidden from the board, search, and agents taking work. Restore puts a card back on the board; delete removes it for good.`,children:(0,K.jsxs)(`div`,{id:`archiveList`,children:[v,y,b,x]})})}),e[26]=v,e[27]=y,e[28]=b,e[29]=x,e[30]=S):S=e[30],S}function Ti(){}function Ei(e){return e+1}function Di(){}function Oi(e){return e.data}function ki(e){return e.boardId}function Ai(e){if(e.trimStart().startsWith(`<`))throw Error(`That file looks like an HTML page instead of JSON. In Trello, use Export JSON/download the board JSON, not Save Page As.`);try{return JSON.parse(e)}catch(e){throw Error(e instanceof Error&&e.message?e.message:`invalid JSON`)}}function ji(e,t){return e instanceof Error&&e.message?e.message:t}function Mi(e){let t=Number(e.imported_counts.tickets);return Number.isFinite(t)?` (${t} cards)`:``}async function Ni(e,t,n){let r=await e.call(()=>e.client.boards.export(t.id,n?{include_attachments:!0}:void 0));M(n?`${t.slug}.with-images.orbit.json`:`${t.slug}.orbit.json`,r)}async function Pi(e,t,n){let r=Ai(await n.text()),i=await e.client.boards.import({snapshot:r,create_new:!0,board_id:t.id});e.board.setState({boardId:i.imported_board_id,boardSlug:i.imported_board_slug}),await e.load(),await e.navigate({boardId:i.imported_board_id,view:`board`}),o.success(`${i.source_format===`trello-board-export`?`Trello board imported as new board${Mi(i)}`:`Board imported as new board`}${P([i])}`)}async function Fi(e,t,n){let r=Ai(await n.text()),i=await e.client.boards.import({snapshot:r,replace_existing:!0,board_id:t.id});await e.load(),o.success(`${i.source_format===`trello-board-export`?`Trello board replaced from Trello import${Mi(i)}`:`Board replaced from snapshot`}${P([i])}`)}function Ii(e){let t=(0,L.c)(33),{board:n}=e,r=a(),[i,o]=(0,I.useState)(!1),s;t[0]!==r||t[1]!==n||t[2]!==i?(s=()=>Ni(r,n,i),t[0]=r,t[1]=n,t[2]=i,t[3]=s):s=t[3];let c=s,l;t[4]!==r||t[5]!==n?(l=e=>{let t=e.currentTarget,i=t.files?.[0];i&&Pi(r,n,i).catch(Ri).finally(()=>{t.value=``})},t[4]=r,t[5]=n,t[6]=l):l=t[6];let u=l,d;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,K.jsx)(Xi,{}),t[7]=d):d=t[7];let f;t[8]===n?f=t[9]:(f=(0,K.jsx)(Vi,{board:n}),t[8]=n,t[9]=f);let p;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(p=e=>o(e.currentTarget.checked),t[10]=p):p=t[10];let m;t[11]===i?m=t[12]:(m=(0,K.jsx)(Ae,{id:`exportProjectImages`,checked:i,onChange:p,title:`Include attached images`}),t[11]=i,t[12]=m);let h;t[13]===c?h=t[14]:(h=(0,K.jsx)(`button`,{type:`button`,"data-variant":`primary`,id:`exportProject`,onClick:()=>void c().catch(Li),children:`Export`}),t[13]=c,t[14]=h);let g;t[15]===u?g=t[16]:(g=(0,K.jsx)(zi,{id:`importSnapshotAsNew`,label:`Import as new board`,onFile:u}),t[15]=u,t[16]=g);let _;t[17]!==h||t[18]!==g?(_=(0,K.jsxs)(`div`,{className:`sheet-actions`,children:[h,g]}),t[17]=h,t[18]=g,t[19]=_):_=t[19];let v;t[20]!==m||t[21]!==_?(v=(0,K.jsxs)(q,{id:`boardSnapshot`,title:`Snapshot`,lead:`Saves this board as a file, or brings one in as a new board, leaving this one as it is. Import takes an Orbit snapshot or a Trello board's JSON export.`,children:[m,_]}),t[20]=m,t[21]=_,t[22]=v):v=t[22];let y;t[23]===n?y=t[24]:(y=(0,K.jsx)(Ui,{board:n}),t[23]=n,t[24]=y);let b;t[25]!==n||t[26]!==c?(b=(0,K.jsx)(Gi,{board:n,exportNow:c},n.id),t[25]=n,t[26]=c,t[27]=b):b=t[27];let x;return t[28]!==v||t[29]!==y||t[30]!==b||t[31]!==f?(x=(0,K.jsxs)(`div`,{className:`settings-sheet`,children:[d,f,v,y,b]}),t[28]=v,t[29]=y,t[30]=b,t[31]=f,t[32]=x):x=t[32],x}function Li(){}function Ri(e){return o.error(`Import failed: ${ji(e,`invalid JSON`)}`)}function zi(e){let t=(0,L.c)(12),{id:n,label:r,onFile:i,disabled:a,danger:o}=e,s=a??!1,c=o??!1,l=`${n}File`,u;t[0]!==s||t[1]!==i||t[2]!==l?(u=(0,K.jsx)(`input`,{type:`file`,id:l,className:`import-file-input`,accept:`.orbit.json,.json,application/json`,disabled:s,onChange:i}),t[0]=s,t[1]=i,t[2]=l,t[3]=u):u=t[3];let d=c?`danger`:void 0,f=`${n}Button`,p;t[4]!==s||t[5]!==r||t[6]!==d||t[7]!==f?(p=(0,K.jsx)(`button`,{type:`button`,"data-variant":`primary`,"data-arc":d,id:f,disabled:s,onClick:Bi,children:r}),t[4]=s,t[5]=r,t[6]=d,t[7]=f,t[8]=p):p=t[8];let m;return t[9]!==u||t[10]!==p?(m=(0,K.jsxs)(K.Fragment,{children:[u,p]}),t[9]=u,t[10]=p,t[11]=m):m=t[11],m}function Bi(e){let t=e.currentTarget.previousElementSibling;t instanceof HTMLInputElement&&!t.disabled&&t.click()}function Vi(e){let t=(0,L.c)(19),{board:n}=e,r=a(),[i,s]=(0,I.useState)(null),c;t[0]!==r||t[1]!==n.id||t[2]!==n.name||t[3]!==n.slug||t[4]!==i?(c=e=>{e.preventDefault();let t=(i??n.name).trim();t&&t!==n.name&&(async()=>{await r.call(()=>r.client.boards.update(n.id,{name:t})),s(null),await r.load(),o.success(`Renamed board to ${t}. Canonical slug unchanged: ${n.slug}`)})().catch(Hi)},t[0]=r,t[1]=n.id,t[2]=n.name,t[3]=n.slug,t[4]=i,t[5]=c):c=t[5];let l=c,u;t[6]===n.slug?u=t[7]:(u=(0,K.jsxs)(K.Fragment,{children:[`Changes the name people see. The address keeps `,(0,K.jsx)(`strong`,{children:n.slug}),`, so links to this board keep working.`]}),t[6]=n.slug,t[7]=u);let d;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,K.jsx)(`span`,{className:`control-field-label`,children:`Display name`}),t[8]=d):d=t[8];let f=i??n.name,p;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(p=e=>s(e.currentTarget.value),t[9]=p):p=t[9];let m;t[10]===f?m=t[11]:(m=(0,K.jsxs)(`label`,{className:`control-field`,children:[d,(0,K.jsx)(`input`,{name:`name`,value:f,maxLength:120,required:!0,onChange:p})]}),t[10]=f,t[11]=m);let h;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,K.jsx)(`button`,{type:`submit`,"data-variant":`primary`,children:`Rename board`}),t[12]=h):h=t[12];let g;t[13]!==l||t[14]!==m?(g=(0,K.jsxs)(`form`,{id:`boardRenameForm`,className:`sheet-inline-form`,onSubmit:l,children:[m,h]}),t[13]=l,t[14]=m,t[15]=g):g=t[15];let _;return t[16]!==u||t[17]!==g?(_=(0,K.jsx)(q,{id:`boardName`,title:`Board name`,lead:u,children:g}),t[16]=u,t[17]=g,t[18]=_):_=t[18],_}function Hi(){}function Ui(e){let t=(0,L.c)(22),{board:n}=e,r=a(),[i,s]=(0,I.useState)(``),c;t[0]===i?c=t[1]:(c=i.trim(),t[0]=i,t[1]=c);let l=c===n.slug,u;t[2]!==r||t[3]!==n||t[4]!==l?(u=e=>{let t=e.currentTarget,i=t.files?.[0];i&&(l?Fi(r,n,i).catch(Wi).finally(()=>{t.value=``}):(o.error(`Type the board slug before replacing this board.`),t.value=``))},t[2]=r,t[3]=n,t[4]=l,t[5]=u):u=t[5];let d=u,f;t[6]===n.slug?f=t[7]:(f=(0,K.jsxs)(K.Fragment,{children:[`Replaces everything on this board with a snapshot or a Trello export. Orbit backs it up first, as before any import. Type `,(0,K.jsx)(`strong`,{children:n.slug}),` to turn this on.`]}),t[6]=n.slug,t[7]=f);let p;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,K.jsx)(`span`,{className:`control-field-label`,children:`Board slug`}),t[8]=p):p=t[8];let m;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(m=e=>s(e.currentTarget.value),t[9]=m):m=t[9];let h;t[10]!==n.slug||t[11]!==i?(h=(0,K.jsxs)(`label`,{className:`control-field`,children:[p,(0,K.jsx)(`input`,{id:`replaceImportConfirmInput`,autoComplete:`off`,spellCheck:!1,placeholder:n.slug,value:i,onChange:m})]}),t[10]=n.slug,t[11]=i,t[12]=h):h=t[12];let g=!l,_;t[13]!==d||t[14]!==g?(_=(0,K.jsx)(zi,{id:`replaceCurrentBoardImport`,label:`Replace this board…`,onFile:d,disabled:g,danger:!0}),t[13]=d,t[14]=g,t[15]=_):_=t[15];let v;t[16]!==h||t[17]!==_?(v=(0,K.jsxs)(`div`,{className:`sheet-inline-form`,children:[h,_]}),t[16]=h,t[17]=_,t[18]=v):v=t[18];let y;return t[19]!==f||t[20]!==v?(y=(0,K.jsx)(q,{id:`replaceBoard`,title:`Replace this board`,danger:!0,lead:f,children:v}),t[19]=f,t[20]=v,t[21]=y):y=t[21],y}function Wi(e){return o.error(`Import failed: ${ji(e,`invalid JSON`)}`)}function Gi(e){let t=(0,L.c)(37),{board:n,exportNow:r}=e,i=a(),s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s={step:`idle`},t[0]=s):s=t[0];let[c,l]=(0,I.useState)(s),[u,d]=(0,I.useState)(``),f;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>{l({step:`idle`}),d(``)},t[1]=f):f=t[1];let p=f,m;t[2]!==i||t[3]!==n.id||t[4]!==n.name||t[5]!==n.slug?(m=()=>{(async()=>{await i.call(()=>i.client.boards.remove(n.id,{confirm_slug:n.slug,delete_files:!0})),i.board.setState({boardId:``,boardSlug:``}),await i.load(),o.success(`Deleted board: ${n.name}`),await i.navigate({boardId:i.board.getState().boardId,view:`board`},{replace:!0})})().catch(qi)},t[2]=i,t[3]=n.id,t[4]=n.name,t[5]=n.slug,t[6]=m):m=t[6];let h=m;if(c.step===`choice`){let e;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(`p`,{className:`sheet-lead`,children:`Export a snapshot first if you may need this board again.`}),t[7]=e):e=t[7];let n;t[8]===r?n=t[9]:(n=(0,K.jsx)(`button`,{type:`button`,"data-variant":`primary`,id:`deleteBoardExportFirst`,onClick:()=>void r().then(()=>l({step:`confirm`,exported:!0}),Ki),children:`Export first`}),t[8]=r,t[9]=n);let i,a;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,K.jsx)(`button`,{type:`button`,"data-variant":`primary`,"data-arc":`danger`,id:`deleteBoardSkipExport`,onClick:()=>l({step:`confirm`,exported:!1}),children:`Delete without exporting`}),a=(0,K.jsx)(`button`,{type:`button`,"data-variant":`ghost`,id:`deleteBoardCancel`,onClick:p,children:`Cancel`}),t[10]=i,t[11]=a):(i=t[10],a=t[11]);let o;return t[12]===n?o=t[13]:(o=(0,K.jsxs)(q,{id:`deleteBoard`,title:`Delete this board`,danger:!0,lead:`Removes this board from Orbit. Without an exported snapshot, it can't be undone.`,children:[e,(0,K.jsxs)(`div`,{className:`sheet-actions`,children:[n,i,a]})]}),t[12]=n,t[13]=o),o}if(c.step===`confirm`){let e=c.exported?`Snapshot exported. `:``,r;t[14]===n.slug?r=t[15]:(r=(0,K.jsx)(`strong`,{children:n.slug}),t[14]=n.slug,t[15]=r);let i;t[16]!==e||t[17]!==r?(i=(0,K.jsxs)(`p`,{className:`sheet-lead`,children:[e,`Type `,r,` to delete this board for good.`]}),t[16]=e,t[17]=r,t[18]=i):i=t[18];let a;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,K.jsx)(`span`,{className:`control-field-label`,children:`Board slug`}),t[19]=a):a=t[19];let o;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(o=e=>d(e.currentTarget.value),t[20]=o):o=t[20];let s;t[21]!==n.slug||t[22]!==u?(s=(0,K.jsxs)(`label`,{className:`control-field`,children:[a,(0,K.jsx)(`input`,{id:`deleteBoardConfirmInput`,autoComplete:`off`,spellCheck:!1,placeholder:n.slug,autoFocus:!0,value:u,onChange:o})]}),t[21]=n.slug,t[22]=u,t[23]=s):s=t[23];let l;t[24]===u?l=t[25]:(l=u.trim(),t[24]=u,t[25]=l);let f=l!==n.slug,m;t[26]!==h||t[27]!==f?(m=(0,K.jsx)(`button`,{type:`button`,"data-variant":`primary`,"data-arc":`danger`,id:`deleteBoardConfirm`,disabled:f,onClick:h,children:`Delete board permanently`}),t[26]=h,t[27]=f,t[28]=m):m=t[28];let g;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,K.jsx)(`button`,{type:`button`,"data-variant":`ghost`,id:`deleteBoardCancel`,onClick:p,children:`Cancel`}),t[29]=g):g=t[29];let _;t[30]!==m||t[31]!==s?(_=(0,K.jsxs)(`div`,{className:`sheet-inline-form`,children:[s,m,g]}),t[30]=m,t[31]=s,t[32]=_):_=t[32];let v;return t[33]!==_||t[34]!==i?(v=(0,K.jsxs)(q,{id:`deleteBoard`,title:`Delete this board`,danger:!0,lead:`Removes this board from Orbit. Without an exported snapshot, it can't be undone.`,children:[i,_]}),t[33]=_,t[34]=i,t[35]=v):v=t[35],v}let g;return t[36]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,K.jsx)(q,{id:`deleteBoard`,title:`Delete this board`,danger:!0,lead:`Removes this board from Orbit. Without an exported snapshot, it can't be undone.`,children:(0,K.jsx)(`div`,{className:`sheet-actions`,children:(0,K.jsx)(`button`,{type:`button`,"data-variant":`primary`,"data-arc":`danger`,id:`deleteBoardStart`,onClick:()=>l({step:`choice`}),children:`Delete board…`})})}),t[36]=g):g=t[36],g}function Ki(){}function qi(){}var Ji={source:`git pull
9
+ pnpm install
10
+ pnpm run build:bundle
11
+ # then restart Orbit`,docker:`git pull
12
+ docker compose build
13
+ docker compose up -d`,dist:`npm install -g @starlove/orbit@latest
14
+ # then restart Orbit`},Yi={source:`local / server`,docker:`Docker`,dist:`npm`};function Xi(){let e=(0,L.c)(51),t=a(),n=E(),[r,i]=(0,I.useState)(!1),[s,c]=(0,I.useState)(!1),[l,u]=(0,I.useState)(!1),d=n?.deployMode||`source`,f=!!n?.updateAvailable,p=n?.current?`v${n.current}`:`unknown`,m=!!(n?.selfUpdate&&f),h=Ji[d]??Ji.source??``,g;e[0]===t?g=e[1]:(g=()=>{i(!0),S(t,{force:!0}).finally(()=>i(!1))},e[0]=t,e[1]=g);let _=g,v;e[2]===t?v=e[3]:(v=()=>{c(!0),F(t).catch(ea).finally(()=>c(!1))},e[2]=t,e[3]=v);let y=v,b;e[4]===h?b=e[5]:(b=()=>{je(h).then($i,Qi)},e[4]=h,e[5]=b);let x=b,C;e[6]===t?C=e[7]:(C=()=>{confirm(`Update Orbit now? It will pull the latest code, rebuild, and restart. Back up your boards first.`)&&(u(!0),t.client.update().then(Zi,e=>{o.error(`Update failed to start: ${ji(e,`request failed`)}`),u(!1)}))},e[6]=t,e[7]=C);let w=C,T,D;if(!n?.enabled){let t;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,K.jsx)(`span`,{className:`update-status-chip update-status-chip--idle`,children:`Not checked`}),e[8]=t):t=e[8],T=t,D=`Check whether a newer version of Orbit has shipped.`}else if(n.error){let t;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,K.jsx)(`span`,{className:`update-status-chip update-status-chip--warn`,children:`Couldn't check`}),e[9]=t):t=e[9],T=t,D=`Couldn't reach GitHub (${n.error}). Try again in a moment.`}else if(f){let t;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,K.jsxs)(`span`,{className:`update-status-chip update-status-chip--available`,children:[(0,K.jsx)(`span`,{className:`update-status-dot`,"aria-hidden":`true`}),`Update available`]}),e[10]=t):t=e[10],T=t,D=`Back up your boards, then update with the steps below.`}else{let t;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,K.jsxs)(`span`,{className:`update-status-chip update-status-chip--current`,children:[(0,K.jsx)(`svg`,{viewBox:`0 0 20 20`,fill:`currentColor`,"aria-hidden":`true`,children:(0,K.jsx)(`path`,{fillRule:`evenodd`,d:`M16.7 5.3a1 1 0 0 1 0 1.4l-7.5 7.5a1 1 0 0 1-1.4 0L4.3 10.7a1 1 0 1 1 1.4-1.4l2.8 2.8 6.8-6.8a1 1 0 0 1 1.4 0z`,clipRule:`evenodd`})}),` `,`Up to date`]}),e[11]=t):t=e[11],T=t,D=`You have the latest version of Orbit.`}let O;e[12]===p?O=e[13]:(O=(0,K.jsx)(`span`,{children:p}),e[12]=p,e[13]=O);let k;e[14]!==f||e[15]!==n?(k=f&&n?.latest?(0,K.jsxs)(K.Fragment,{children:[` `,(0,K.jsx)(`span`,{className:`sheet-version-arrow`,"aria-hidden":`true`,children:`→`}),` `,(0,K.jsxs)(`span`,{className:`sheet-version-next`,children:[`v`,n.latest]})]}):null,e[14]=f,e[15]=n,e[16]=k):k=e[16];let A;e[17]!==T||e[18]!==O||e[19]!==k?(A=(0,K.jsxs)(`p`,{className:`sheet-version`,children:[O,k,` `,T]}),e[17]=T,e[18]=O,e[19]=k,e[20]=A):A=e[20];let j;e[21]===D?j=e[22]:(j=(0,K.jsx)(`p`,{className:`sheet-lead`,id:`updateStatusLine`,children:D}),e[21]=D,e[22]=j);let M=f?`secondary`:`primary`,N=r?`Checking…`:`Check now`,P;e[23]!==_||e[24]!==r||e[25]!==M||e[26]!==N?(P=(0,K.jsx)(`button`,{type:`button`,"data-variant":M,id:`updateCheckNow`,disabled:r,onClick:_,children:N}),e[23]=_,e[24]=r,e[25]=M,e[26]=N,e[27]=P):P=e[27];let R=s?`Backing up…`:`Back up all boards`,z;e[28]!==y||e[29]!==s||e[30]!==R?(z=(0,K.jsx)(`button`,{type:`button`,"data-variant":`secondary`,id:`updateBackupBoards`,disabled:s,onClick:y,children:R}),e[28]=y,e[29]=s,e[30]=R,e[31]=z):z=e[31];let B;e[32]!==m||e[33]!==w||e[34]!==l?(B=m?(0,K.jsx)(`button`,{type:`button`,"data-variant":`primary`,id:`updateRunNow`,disabled:l,onClick:w,children:l?`Updating…`:`Update now`}):null,e[32]=m,e[33]=w,e[34]=l,e[35]=B):B=e[35];let V;e[36]!==P||e[37]!==z||e[38]!==B?(V=(0,K.jsxs)(`div`,{className:`sheet-actions`,children:[P,z,B]}),e[36]=P,e[37]=z,e[38]=B,e[39]=V):V=e[39];let H;e[40]!==f||e[41]!==h||e[42]!==x||e[43]!==n||e[44]!==d?(H=f?(0,K.jsxs)(De,{open:!0,title:(0,K.jsxs)(K.Fragment,{children:[`How to update `,(0,K.jsx)(`span`,{className:`sheet-mode`,children:Yi[d]??d})]}),children:[(0,K.jsx)(Ee,{text:h,what:`the update commands`,onCopy:x,copyAttrs:{id:`updateCopyCommands`},codeAttrs:{id:`updateCommands`}}),n?.changesUrl?(0,K.jsx)(`p`,{className:`sheet-lead`,children:(0,K.jsx)(`a`,{href:n.changesUrl,target:`_blank`,rel:`noopener`,children:`View changes ↗`})}):null]}):null,e[40]=f,e[41]=h,e[42]=x,e[43]=n,e[44]=d,e[45]=H):H=e[45];let ee;return e[46]!==V||e[47]!==H||e[48]!==A||e[49]!==j?(ee=(0,K.jsxs)(q,{id:`versionUpdates`,title:`Version and updates`,children:[A,j,V,H]}),e[46]=V,e[47]=H,e[48]=A,e[49]=j,e[50]=ee):ee=e[50],ee}function Zi(){return o.success(`Update started. Orbit will restart shortly; reload in a minute.`,{duration:9e3})}function Qi(){return o.error(`Couldn't copy. Select the commands and copy them yourself.`)}function $i(){return o.success(`Update commands copied`)}function ea(e){return o.error(`Backup failed: ${ji(e,`request failed`)}`)}function ta(){let e=(0,L.c)(27),t=a(),n=T(),r=_(m(aa)),i=n?.ai_enabled!==0,s;e[0]===t?s=e[1]:(s=e=>{let n=!!e.struck_at;(async()=>{await t.call(()=>t.client.entries.update(e.id,{struck:!n},t.hint())),await t.load(),o.info(n?`Project entry restored`:`Project entry struck`)})().catch(ia)},e[0]=t,e[1]=s);let c=s,l;e[2]===t?l=e[3]:(l=e=>{(async()=>{await t.call(()=>t.client.entries.remove(e.id,t.hint())),await t.load(),o.success(`Project entry deleted`)})().catch(ra)},e[2]=t,e[3]=l);let u=l,d;e[4]!==t||e[5]!==n?(d=e=>{if(e.preventDefault(),!n)return;let r=e.currentTarget,i=Object.fromEntries(new FormData(r).entries());(async()=>{await t.call(()=>t.client.entries.create(n.id,i)),r.reset(),await t.load(),o.success(`Project entry added`)})().catch(na)},e[4]=t,e[5]=n,e[6]=d):d=e[6];let f=d,p=i?`Decisions to follow and lessons to apply: agents read them as this board's memory. A struck entry stays here and leaves their context.`:void 0,h;e[7]!==i||e[8]!==r||e[9]!==u||e[10]!==c?(h=r.length?r.map(e=>(0,K.jsx)(oa,{entry:e,aiEnabled:i,onToggleStruck:()=>c(e),onDelete:()=>u(e)},e.id)):(0,K.jsx)(`p`,{className:`sheet-note`,children:`No entries yet.`}),e[7]=i,e[8]=r,e[9]=u,e[10]=c,e[11]=h):h=e[11];let g;e[12]===h?g=e[13]:(g=(0,K.jsx)(`div`,{className:`sheet-entries`,children:h}),e[12]=h,e[13]=g);let v;e[14]!==p||e[15]!==g?(v=(0,K.jsx)(q,{id:`journalEntries`,title:`Journal`,lead:p,children:g}),e[14]=p,e[15]=g,e[16]=v):v=e[16];let y;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,K.jsx)(`span`,{className:`control-field-label`,children:`Type`}),e[17]=y):y=e[17];let b;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,K.jsxs)(`label`,{className:`control-field`,children:[y,(0,K.jsxs)(`select`,{name:`type`,className:`select-chevron-field`,defaultValue:`decision`,children:[(0,K.jsx)(`option`,{value:`decision`,children:`Decision`}),(0,K.jsx)(`option`,{value:`lesson`,children:`Lesson`})]})]}),e[18]=b):b=e[18];let x;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,K.jsxs)(`label`,{className:`control-field`,children:[(0,K.jsx)(`span`,{className:`control-field-label`,children:`Title`}),(0,K.jsx)(`input`,{name:`title`,placeholder:`Entry title...`,required:!0})]}),e[19]=x):x=e[19];let S;e[20]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,K.jsxs)(`label`,{className:`control-field`,children:[(0,K.jsx)(`span`,{className:`control-field-label`,children:`What to do`}),(0,K.jsx)(`textarea`,{name:`body`,rows:3,placeholder:`Decision rationale or lesson: do X instead of Y when working with Z.`,required:!0})]}),e[20]=S):S=e[20];let C;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,K.jsx)(`div`,{className:`sheet-actions`,children:(0,K.jsx)(`button`,{type:`submit`,"data-variant":`primary`,children:`Add entry`})}),e[21]=C):C=e[21];let w;e[22]===f?w=e[23]:(w=(0,K.jsx)(q,{id:`journalAdd`,title:`Add an entry`,children:(0,K.jsxs)(`form`,{id:`projectEntryForm`,className:`sheet-form`,onSubmit:f,children:[b,x,S,C]})}),e[22]=f,e[23]=w);let E;return e[24]!==w||e[25]!==v?(E=(0,K.jsxs)(`div`,{className:`settings-sheet`,children:[v,w]}),e[24]=w,e[25]=v,e[26]=E):E=e[26],E}function na(){}function ra(){}function ia(){}function aa(e){return(e.data?.board_entries??[]).filter(t=>t.board_id===e.boardId)}function oa(e){let t=(0,L.c)(40),{entry:n,aiEnabled:r,onToggleStruck:i,onDelete:a}=e,o=!!n.struck_at,s=r&&o,[c,l]=(0,I.useState)(`idle`),u=(0,I.useRef)(null),d=(0,I.useRef)(null),p,m;t[0]===c?(p=t[1],m=t[2]):(p=()=>{c===`asking`?d.current?.focus():c===`cancelled`&&u.current?.focus()},m=[c],t[0]=c,t[1]=p,t[2]=m),(0,I.useEffect)(p,m);let h=c===`asking`&&s,g=`entryDeleteQuestion-${n.id}`,_;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(_=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),l(`cancelled`))},t[3]=_):_=t[3];let v=_,y=`comment project-entry ${n.type}${s?` is-struck`:``}`,b=`entry-type-pill ${n.type}`,x;t[4]!==n.type||t[5]!==b?(x=(0,K.jsx)(`span`,{className:b,children:n.type}),t[4]=n.type,t[5]=b,t[6]=x):x=t[6];let S;t[7]===n.title?S=t[8]:(S=(0,K.jsx)(`strong`,{className:`entry-title`,children:n.title}),t[7]=n.title,t[8]=S);let C;t[9]!==x||t[10]!==S?(C=(0,K.jsxs)(`div`,{className:`comment-head-title`,children:[x,S]}),t[9]=x,t[10]=S,t[11]=C):C=t[11];let w;t[12]===s?w=t[13]:(w=s?(0,K.jsx)(`span`,{className:`project-entry-status`,children:`Excluded from agent context`}):null,t[12]=s,t[13]=w);let T;t[14]!==C||t[15]!==w?(T=(0,K.jsx)(`div`,{className:`comment-head`,children:(0,K.jsxs)(`div`,{className:`comment-head-main`,children:[C,w]})}),t[14]=C,t[15]=w,t[16]=T):T=t[16];let E;t[17]===n.body?E=t[18]:(E=(0,K.jsx)(`div`,{className:`comment-body`,children:n.body}),t[17]=n.body,t[18]=E);let D=n.created_by,O;t[19]===n.created_at?O=t[20]:(O=f(n.created_at),t[19]=n.created_at,t[20]=O);let k;t[21]!==n.created_by||t[22]!==O?(k=(0,K.jsxs)(`span`,{className:`comment-footer-meta`,children:[D,` · `,O]}),t[21]=n.created_by,t[22]=O,t[23]=k):k=t[23];let A;t[24]!==r||t[25]!==h||t[26]!==n.id||t[27]!==o||t[28]!==a||t[29]!==i||t[30]!==g?(A=h?(0,K.jsxs)(`div`,{className:`project-entry-actions project-entry-confirm`,role:`group`,"aria-labelledby":g,onKeyDown:v,children:[(0,K.jsx)(`span`,{className:`project-entry-question`,id:g,children:`Delete this entry for good?`}),(0,K.jsx)(`button`,{type:`button`,"data-variant":`ghost`,className:`project-entry-delete detail-action-btn`,"data-entry-action":`confirm-delete`,"data-entry-id":n.id,onClick:a,children:`Delete entry`}),(0,K.jsx)(`button`,{ref:d,type:`button`,"data-variant":`ghost`,className:`detail-action-btn`,"data-entry-action":`cancel-delete`,onClick:()=>l(`cancelled`),children:`Cancel`})]}):r?(0,K.jsxs)(`div`,{className:`project-entry-actions`,children:[o?(0,K.jsx)(`button`,{ref:u,type:`button`,"data-variant":`ghost`,className:`project-entry-delete detail-action-btn`,"data-entry-action":`delete`,"data-entry-id":n.id,onClick:()=>l(`asking`),children:`Delete`}):null,(0,K.jsx)(`button`,{type:`button`,"data-variant":`ghost`,className:`project-entry-strike detail-action-btn`,"data-entry-action":`toggle-struck`,"data-entry-id":n.id,"data-struck":o?`true`:`false`,"aria-pressed":o,onClick:i,children:o?`Restore`:`Strike`})]}):null,t[24]=r,t[25]=h,t[26]=n.id,t[27]=o,t[28]=a,t[29]=i,t[30]=g,t[31]=A):A=t[31];let j;t[32]!==k||t[33]!==A?(j=(0,K.jsxs)(`div`,{className:`comment-footer`,children:[k,A]}),t[32]=k,t[33]=A,t[34]=j):j=t[34];let M;return t[35]!==T||t[36]!==E||t[37]!==j||t[38]!==y?(M=(0,K.jsxs)(`div`,{className:y,children:[T,E,j]}),t[35]=T,t[36]=E,t[37]=j,t[38]=y,t[39]=M):M=t[39],M}var sa=new Set([`in_progress`,`review`]);function ca(e,t,n){return t>0?`Can't delete: ${t} card${t===1?``:`s`} in this lane`:e.is_default?`Can't delete: new cards land here (choose another lane for them first)`:e.role&&sa.has(e.role)?`Can't delete: a core kanban lane`:n&&e.role===`ai_ready`?`Can't delete: agents need it while AI is on`:null}function la(){let e=(0,L.c)(59),t=a(),n=T(),r=s(),i=h(),c=p(_a),[l,u]=(0,I.useState)(null),d=n?.ai_enabled!==0,f,m,g,_,v,y,b,x,S;if(e[0]!==d||e[1]!==t||e[2]!==n||e[3]!==r||e[4]!==l||e[5]!==c||e[6]!==i){let a=new Map;for(let e of i)a.set(e.state_id,(a.get(e.state_id)??0)+1);let s;e[16]!==r||e[17]!==l?(s=l??r.find(ga)?.id??``,e[16]=r,e[17]=l,e[18]=s):s=e[18];let p=s,h;e[19]===t?h=e[20]:(h=async(e,n,r)=>{await t.call(()=>t.client.states.update(e.id,{name:n,is_default:r},t.hint())),await t.load()},e[19]=t,e[20]=h);let C=h,w;e[21]!==p||e[22]!==C?(w=async(e,t)=>{await C(e,t,e.id===p),o.success(`Lane updated`)},e[21]=p,e[22]=C,e[23]=w):w=e[23];let T=w,E;e[24]!==p||e[25]!==C?(E=(e,t)=>{e.id!==p&&(u(e.id),C(e,t,!0).then(ha,ma).finally(()=>u(null)))},e[24]=p,e[25]=C,e[26]=E):E=e[26];let D=E,O;e[27]!==t||e[28]!==n||e[29]!==r?(O=(e,i)=>{if(!n)return;let a=r.map(pa),s=a.indexOf(e.id),c=s+i,l=a[c];s<0||l===void 0||(a[c]=e.id,a[s]=l,(async()=>{await t.call(()=>t.client.states.reorder(n.id,{state_ids:a})),await t.load(),o.success(`Lanes reordered`)})().catch(fa))},e[27]=t,e[28]=n,e[29]=r,e[30]=O):O=e[30];let k=O,A;e[31]===t?A=e[32]:(A=e=>{(async()=>{await t.call(()=>t.client.states.remove(e.id,t.hint())),await t.load(),o.success(`Lane deleted`)})().catch(da)},e[31]=t,e[32]=A);let j=A,M;e[33]!==t||e[34]!==n?(M=e=>{if(e.preventDefault(),!n)return;let r=e.currentTarget,i=new FormData(r).get(`name`);(async()=>{await t.call(()=>t.client.states.create(n.id,{name:i})),r.reset(),await t.load(),o.success(`Lane added`)})().catch(ua)},e[33]=t,e[34]=n,e[35]=M):M=e[35],m=M,x=`settings-sheet`;let N;e[36]===t?N=e[37]:(N=e=>t.setShowPriority(e.currentTarget.checked),e[36]=t,e[37]=N),e[38]!==c||e[39]!==N?(S=(0,K.jsx)(q,{id:`cardPriority`,label:`Priority on cards`,children:(0,K.jsx)(Ae,{id:`showPriorityToggle`,withFor:!0,checked:c,onChange:N,title:`Show priority label on cards`})}),e[38]=c,e[39]=N,e[40]=S):S=e[40],f=q,v=`boardLanes`,y=`Lanes`,b=`Rename, reorder, add or remove lanes, and choose where new cards land.`,g=`lane-list`,_=r.map((e,t)=>(0,K.jsx)(va,{lane:e,first:t===0,last:t===r.length-1,isDefault:e.id===p,deleteBlocked:ca({...e,is_default:+(e.id===p)},a.get(e.id)??0,d),onMove:t=>k(e,t),onRename:t=>T(e,t),onMakeDefault:t=>D(e,t),onDelete:()=>j(e)},e.id)),e[0]=d,e[1]=t,e[2]=n,e[3]=r,e[4]=l,e[5]=c,e[6]=i,e[7]=f,e[8]=m,e[9]=g,e[10]=_,e[11]=v,e[12]=y,e[13]=b,e[14]=x,e[15]=S}else f=e[7],m=e[8],g=e[9],_=e[10],v=e[11],y=e[12],b=e[13],x=e[14],S=e[15];let C;e[41]!==g||e[42]!==_?(C=(0,K.jsx)(`div`,{className:g,children:_}),e[41]=g,e[42]=_,e[43]=C):C=e[43];let w,E;e[44]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,K.jsx)(`input`,{name:`name`,placeholder:`New lane name...`,"aria-label":`New lane name`,required:!0}),E=(0,K.jsx)(`button`,{type:`submit`,"data-variant":`primary`,children:`Add lane`}),e[44]=w,e[45]=E):(w=e[44],E=e[45]);let D;e[46]===m?D=e[47]:(D=(0,K.jsxs)(`form`,{id:`laneCreateForm`,className:`lane-create-form`,onSubmit:m,children:[w,E]}),e[46]=m,e[47]=D);let O;e[48]!==f||e[49]!==D||e[50]!==v||e[51]!==y||e[52]!==b||e[53]!==C?(O=(0,K.jsxs)(f,{id:v,title:y,lead:b,children:[C,D]}),e[48]=f,e[49]=D,e[50]=v,e[51]=y,e[52]=b,e[53]=C,e[54]=O):O=e[54];let k;return e[55]!==O||e[56]!==x||e[57]!==S?(k=(0,K.jsxs)(`div`,{className:x,children:[S,O]}),e[55]=O,e[56]=x,e[57]=S,e[58]=k):k=e[58],k}function ua(){}function da(){}function fa(){}function pa(e){return e.id}function ma(){}function ha(){return o.success(`Default lane updated`)}function ga(e){return e.is_default}function _a(e){return e.showPriority}function va(e){let t=(0,L.c)(48),{lane:n,first:r,last:i,isDefault:a,deleteBlocked:o,onMove:s,onRename:c,onMakeDefault:l,onDelete:u}=e,[d,f]=(0,I.useState)(null),p=(0,I.useRef)(null),m=n.role===`ai_ready`,h;t[0]!==d||t[1]!==n.name||t[2]!==c?(h=()=>{if(d===null||d===p.current)return;if(d===n.name){f(null);return}let e=d;p.current=e,c(e).catch(ya).finally(()=>{p.current=null,f(t=>t===e?null:t)})},t[0]=d,t[1]=n.name,t[2]=c,t[3]=h):h=t[3];let g=h,_=`lane-row${m?` lane-row--locked`:``}`,v;t[4]===s?v=t[5]:(v=()=>s(-1),t[4]=s,t[5]=v);let y;t[6]!==r||t[7]!==v?(y=(0,K.jsx)(`button`,{type:`button`,"data-variant":`ghost`,className:`settings-lane-icon-btn`,"data-lane-action":`up`,disabled:r,title:`Move lane left`,"aria-label":`Move lane left`,onClick:v,children:`↑`}),t[6]=r,t[7]=v,t[8]=y):y=t[8];let b;t[9]===s?b=t[10]:(b=()=>s(1),t[9]=s,t[10]=b);let x;t[11]!==i||t[12]!==b?(x=(0,K.jsx)(`button`,{type:`button`,"data-variant":`ghost`,className:`settings-lane-icon-btn`,"data-lane-action":`down`,disabled:i,title:`Move lane right`,"aria-label":`Move lane right`,onClick:b,children:`↓`}),t[11]=i,t[12]=b,t[13]=x):x=t[13];let S=d??n.name,C=m?`The AI Ready lane keeps its name. Turn AI off to hide it.`:void 0,T;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(T=e=>f(e.currentTarget.value),t[14]=T):T=t[14];let E;t[15]===g?E=t[16]:(E=e=>{e.key===`Enter`&&g()},t[15]=g,t[16]=E);let D;t[17]!==g||t[18]!==m||t[19]!==E||t[20]!==S||t[21]!==C?(D=(0,K.jsx)(`input`,{name:`name`,value:S,"aria-label":`Lane name`,readOnly:m,title:C,onChange:T,onBlur:g,onKeyDown:E}),t[17]=g,t[18]=m,t[19]=E,t[20]=S,t[21]=C,t[22]=D):D=t[22];let O=a?`secondary`:`ghost`,k=`settings-lane-new-toggle${a?` is-on`:``}`,A=a?`New cards land here. Click another lane to move it.`:`Make this the default lane for new cards`,j;t[23]!==d||t[24]!==n.name||t[25]!==l?(j=()=>l(d??n.name),t[23]=d,t[24]=n.name,t[25]=l,t[26]=j):j=t[26];let M,N;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,K.jsx)(`span`,{className:`lane-new-sun`,"aria-hidden":`true`}),N=(0,K.jsx)(`span`,{className:`lane-new-label`,children:`New cards`}),t[27]=M,t[28]=N):(M=t[27],N=t[28]);let P;t[29]!==a||t[30]!==O||t[31]!==k||t[32]!==A||t[33]!==j?(P=(0,K.jsxs)(`button`,{type:`button`,"data-variant":O,className:k,"data-lane-action":`toggle-default`,"aria-pressed":a,title:A,"aria-label":`Default lane for new cards`,onClick:j,children:[M,N]}),t[29]=a,t[30]=O,t[31]=k,t[32]=A,t[33]=j,t[34]=P):P=t[34];let F=o!==null,R=o??`Delete lane`,z;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,K.jsx)(w,{}),t[35]=z):z=t[35];let B;t[36]!==u||t[37]!==F||t[38]!==R?(B=(0,K.jsx)(`button`,{type:`button`,"data-variant":`ghost`,className:`settings-lane-delete-btn danger-button`,"data-lane-action":`delete`,disabled:F,title:R,"aria-label":`Delete lane`,onClick:u,children:z}),t[36]=u,t[37]=F,t[38]=R,t[39]=B):B=t[39];let V;return t[40]!==n.id||t[41]!==D||t[42]!==P||t[43]!==_||t[44]!==B||t[45]!==y||t[46]!==x?(V=(0,K.jsxs)(`div`,{className:_,"data-lane-id":n.id,children:[y,x,D,P,B]}),t[40]=n.id,t[41]=D,t[42]=P,t[43]=_,t[44]=B,t[45]=y,t[46]=x,t[47]=V):V=t[47],V}function ya(){}var ba=`Reminders for yourself. Agents can't see these notes.`;function xa(){let e=(0,L.c)(17),t=a(),n=T(),r=n?.project_notes??``,i=n?.id??``,s;e[0]!==t||e[1]!==i?(s=async e=>{if(i)try{await t.call(()=>t.client.boards.update(i,{project_notes:c(e)})),await t.load(),o.success(`Saved`)}catch{}},e[0]=t,e[1]=i,e[2]=s):s=e[2];let u;e[3]!==r||e[4]!==s?(u={value:r,fieldName:`project_notes`,multiline:!0,ariaLabel:`Edit Notes For You`,onCommit:s},e[3]=r,e[4]=s,e[5]=u):u=e[5];let d=D(u),f;e[6]===r?f=e[7]:(f=r.trim(),e[6]=r,e[7]=f);let p=!!f,m;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,K.jsx)(`p`,{className:`sheet-lead`,children:`Reminders for the people on this board. Agents can't see them.`}),e[8]=m):m=e[8];let h;e[9]!==p||e[10]!==r?(h=p?v(r):l(ba),e[9]=p,e[10]=r,e[11]=h):h=e[11];let g=`inline-md-field-body preserved-text-body editable-field settings-notes-body${p?``:` is-placeholder`}`,_;return e[12]!==d||e[13]!==p||e[14]!==h||e[15]!==g?(_=(0,K.jsx)(`div`,{className:`settings-sheet`,children:(0,K.jsx)(q,{id:`notesForYou`,label:`Notes For You`,children:(0,K.jsx)(`div`,{className:`inline-md-field`,children:(0,K.jsx)(A,{field:d,noun:`notes`,has:p,fieldName:`project_notes`,lead:m,html:h,bodyClassName:g})})})}),e[12]=d,e[13]=p,e[14]=h,e[15]=g,e[16]=_):_=e[16],_}var Sa=[{id:`lanes`,label:`Lanes`},{id:`appearance`,label:`Appearance`},{id:`archive`,label:`Card Archive`},{id:`notes`,label:`Notes`},{id:`journal`,label:`Journal`},...O.ai?[{id:`ai`,label:`AI`}]:[],{id:`data`,label:`Data`}];function Ca(){let e=(0,L.c)(10),t=a(),n=T(),r=p(Ta),i=p(wa),o=r||i,s=o===`ai`&&!O.ai?`lanes`:o,c;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,K.jsx)(`h2`,{className:`drawer-eyebrow`,children:`SETTINGS`}),e[0]=c):c=e[0];let l;e[1]===t?l=e[2]:(l=e=>{let n=Sa.find(t=>t.id===e);n&&t.openSettings(n.id)},e[1]=t,e[2]=l);let u;e[3]!==n||e[4]!==s?(u=n?(0,K.jsx)(Ea,{tab:s},n.id):null,e[3]=n,e[4]=s,e[5]=u):u=e[5];let d;return e[6]!==l||e[7]!==u||e[8]!==s?(d=(0,K.jsx)(j,{titleBlock:c,tabs:Sa,activeTab:s,onTabSelect:l,children:u}),e[6]=l,e[7]=u,e[8]=s,e[9]=d):d=e[9],d}function wa(e){return e.settingsTab}function Ta(e){return e.route.tab}function Ea(e){let t=(0,L.c)(9),{tab:n}=e,r=T();if(!r)return null;switch(n){case`lanes`:{let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(la,{}),t[0]=e):e=t[0],e}case`appearance`:{let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(_i,{}),t[1]=e):e=t[1],e}case`archive`:{let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(wi,{}),t[2]=e):e=t[2],e}case`notes`:{let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(xa,{}),t[3]=e):e=t[3],e}case`journal`:{let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,K.jsx)(ta,{}),t[4]=e):e=t[4],e}case`ai`:{let e;return t[5]===r?e=t[6]:(e=(0,K.jsx)(Ne,{board:r}),t[5]=r,t[6]=e),e}case`data`:{let e;return t[7]===r?e=t[8]:(e=(0,K.jsx)(Ii,{board:r}),t[7]=r,t[8]=e),e}}}export{Ca as SettingsPanel};
15
+ //# sourceMappingURL=chunk.RO0jsH6I.js.map