agent-issues 0.0.121 → 0.0.126

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 (166) hide show
  1. package/dist/build-info.json +3 -0
  2. package/dist/cli.js +97746 -26
  3. package/kanban/dist/assets/index-CIAg6qj5.css +1 -0
  4. package/kanban/dist/assets/index-DaYQjJS7.js +920 -0
  5. package/kanban/dist/index.html +13 -0
  6. package/package.json +12 -11
  7. package/site/dist/assets/{index-Cx-fLU3e.js → index-D6NM1iDo.js} +181 -144
  8. package/site/dist/index.html +1 -1
  9. package/dist/agent-installer.d.ts +0 -49
  10. package/dist/agent-installer.js +0 -171
  11. package/dist/agent-installer.js.map +0 -1
  12. package/dist/auth-session.d.ts +0 -40
  13. package/dist/auth-session.js +0 -107
  14. package/dist/auth-session.js.map +0 -1
  15. package/dist/body-backfill.d.ts +0 -26
  16. package/dist/body-backfill.js +0 -219
  17. package/dist/body-backfill.js.map +0 -1
  18. package/dist/build-mode.d.ts +0 -1
  19. package/dist/build-mode.js +0 -1
  20. package/dist/build-mode.js.map +0 -1
  21. package/dist/cli/commands/auth.d.ts +0 -61
  22. package/dist/cli/commands/auth.js +0 -134
  23. package/dist/cli/commands/auth.js.map +0 -1
  24. package/dist/cli/commands/backfill.d.ts +0 -8
  25. package/dist/cli/commands/backfill.js +0 -36
  26. package/dist/cli/commands/backfill.js.map +0 -1
  27. package/dist/cli/commands/comments.d.ts +0 -34
  28. package/dist/cli/commands/comments.js +0 -124
  29. package/dist/cli/commands/comments.js.map +0 -1
  30. package/dist/cli/commands/context.d.ts +0 -13
  31. package/dist/cli/commands/context.js +0 -156
  32. package/dist/cli/commands/context.js.map +0 -1
  33. package/dist/cli/commands/entities.d.ts +0 -91
  34. package/dist/cli/commands/entities.js +0 -420
  35. package/dist/cli/commands/entities.js.map +0 -1
  36. package/dist/cli/commands/export.d.ts +0 -20
  37. package/dist/cli/commands/export.js +0 -98
  38. package/dist/cli/commands/export.js.map +0 -1
  39. package/dist/cli/commands/fallback.d.ts +0 -6
  40. package/dist/cli/commands/fallback.js +0 -10
  41. package/dist/cli/commands/fallback.js.map +0 -1
  42. package/dist/cli/commands/handoff.d.ts +0 -1
  43. package/dist/cli/commands/handoff.js +0 -2
  44. package/dist/cli/commands/handoff.js.map +0 -1
  45. package/dist/cli/commands/installers.d.ts +0 -37
  46. package/dist/cli/commands/installers.js +0 -78
  47. package/dist/cli/commands/installers.js.map +0 -1
  48. package/dist/cli/commands/kanban.d.ts +0 -8
  49. package/dist/cli/commands/kanban.js +0 -83
  50. package/dist/cli/commands/kanban.js.map +0 -1
  51. package/dist/cli/commands/meta.d.ts +0 -14
  52. package/dist/cli/commands/meta.js +0 -33
  53. package/dist/cli/commands/meta.js.map +0 -1
  54. package/dist/cli/commands/plan-entries.d.ts +0 -30
  55. package/dist/cli/commands/plan-entries.js +0 -94
  56. package/dist/cli/commands/plan-entries.js.map +0 -1
  57. package/dist/cli/commands/site.d.ts +0 -29
  58. package/dist/cli/commands/site.js +0 -89
  59. package/dist/cli/commands/site.js.map +0 -1
  60. package/dist/cli/commands/sql.d.ts +0 -6
  61. package/dist/cli/commands/sql.js +0 -21
  62. package/dist/cli/commands/sql.js.map +0 -1
  63. package/dist/cli/commands/synchronize.d.ts +0 -12
  64. package/dist/cli/commands/synchronize.js +0 -31
  65. package/dist/cli/commands/synchronize.js.map +0 -1
  66. package/dist/cli/commands/tenants.d.ts +0 -29
  67. package/dist/cli/commands/tenants.js +0 -101
  68. package/dist/cli/commands/tenants.js.map +0 -1
  69. package/dist/cli/index.d.ts +0 -4
  70. package/dist/cli/index.js +0 -120
  71. package/dist/cli/index.js.map +0 -1
  72. package/dist/cli/renderers.d.ts +0 -250
  73. package/dist/cli/renderers.js +0 -286
  74. package/dist/cli/renderers.js.map +0 -1
  75. package/dist/cli/shared.d.ts +0 -97
  76. package/dist/cli/shared.js +0 -192
  77. package/dist/cli/shared.js.map +0 -1
  78. package/dist/cli.d.ts +0 -11
  79. package/dist/cli.js.map +0 -1
  80. package/dist/context-cli.d.ts +0 -16
  81. package/dist/context-cli.js +0 -131
  82. package/dist/context-cli.js.map +0 -1
  83. package/dist/daemon/daemon-lifecycle.d.ts +0 -1
  84. package/dist/daemon/daemon-lifecycle.js +0 -2
  85. package/dist/daemon/daemon-lifecycle.js.map +0 -1
  86. package/dist/daemon/daemon-main.d.ts +0 -14
  87. package/dist/daemon/daemon-main.js +0 -30
  88. package/dist/daemon/daemon-main.js.map +0 -1
  89. package/dist/daemon/local-daemon-store.d.ts +0 -21
  90. package/dist/daemon/local-daemon-store.js +0 -31
  91. package/dist/daemon/local-daemon-store.js.map +0 -1
  92. package/dist/entity-projection.d.ts +0 -141
  93. package/dist/entity-projection.js +0 -147
  94. package/dist/entity-projection.js.map +0 -1
  95. package/dist/entra-device-login.d.ts +0 -12
  96. package/dist/entra-device-login.js +0 -40
  97. package/dist/entra-device-login.js.map +0 -1
  98. package/dist/export-files.d.ts +0 -24
  99. package/dist/export-files.js +0 -230
  100. package/dist/export-files.js.map +0 -1
  101. package/dist/export-markdown.d.ts +0 -24
  102. package/dist/export-markdown.js +0 -343
  103. package/dist/export-markdown.js.map +0 -1
  104. package/dist/help.d.ts +0 -112
  105. package/dist/help.js +0 -1430
  106. package/dist/help.js.map +0 -1
  107. package/dist/kanban/assets.d.ts +0 -3
  108. package/dist/kanban/assets.js +0 -37
  109. package/dist/kanban/assets.js.map +0 -1
  110. package/dist/kanban/index.d.ts +0 -1
  111. package/dist/kanban/index.js +0 -2
  112. package/dist/kanban/index.js.map +0 -1
  113. package/dist/kanban/server.d.ts +0 -28
  114. package/dist/kanban/server.js +0 -118
  115. package/dist/kanban/server.js.map +0 -1
  116. package/dist/mcp-installer.d.ts +0 -32
  117. package/dist/mcp-installer.js +0 -118
  118. package/dist/mcp-installer.js.map +0 -1
  119. package/dist/mcp-server/index.d.ts +0 -11
  120. package/dist/mcp-server/index.js +0 -504
  121. package/dist/mcp-server/index.js.map +0 -1
  122. package/dist/mcp-server/index.test.d.ts +0 -1
  123. package/dist/mcp-server/index.test.js +0 -746
  124. package/dist/mcp-server/index.test.js.map +0 -1
  125. package/dist/mcp-server/mcp-tool-audit.d.ts +0 -6
  126. package/dist/mcp-server/mcp-tool-audit.js +0 -47
  127. package/dist/mcp-server/mcp-tool-audit.js.map +0 -1
  128. package/dist/mcp-server/stdio.d.ts +0 -2
  129. package/dist/mcp-server/stdio.js +0 -7
  130. package/dist/mcp-server/stdio.js.map +0 -1
  131. package/dist/mcp.d.ts +0 -2
  132. package/dist/mcp.js +0 -19
  133. package/dist/mcp.js.map +0 -1
  134. package/dist/open-storage-driver.d.ts +0 -55
  135. package/dist/open-storage-driver.js +0 -73
  136. package/dist/open-storage-driver.js.map +0 -1
  137. package/dist/open-synchronize-stores.d.ts +0 -24
  138. package/dist/open-synchronize-stores.js +0 -34
  139. package/dist/open-synchronize-stores.js.map +0 -1
  140. package/dist/project-identity.d.ts +0 -23
  141. package/dist/project-identity.js +0 -121
  142. package/dist/project-identity.js.map +0 -1
  143. package/dist/runtime-access-boundary.d.ts +0 -7
  144. package/dist/runtime-access-boundary.js +0 -182
  145. package/dist/runtime-access-boundary.js.map +0 -1
  146. package/dist/service-discovery.d.ts +0 -10
  147. package/dist/service-discovery.js +0 -64
  148. package/dist/service-discovery.js.map +0 -1
  149. package/dist/site/assets.d.ts +0 -4
  150. package/dist/site/assets.js +0 -46
  151. package/dist/site/assets.js.map +0 -1
  152. package/dist/site/cloud-events-relay.d.ts +0 -16
  153. package/dist/site/cloud-events-relay.js +0 -78
  154. package/dist/site/cloud-events-relay.js.map +0 -1
  155. package/dist/site/index.d.ts +0 -1
  156. package/dist/site/index.js +0 -2
  157. package/dist/site/index.js.map +0 -1
  158. package/dist/site/server.d.ts +0 -42
  159. package/dist/site/server.js +0 -632
  160. package/dist/site/server.js.map +0 -1
  161. package/dist/skill-installer.d.ts +0 -35
  162. package/dist/skill-installer.js +0 -180
  163. package/dist/skill-installer.js.map +0 -1
  164. package/dist/vitest-setup.d.ts +0 -1
  165. package/dist/vitest-setup.js +0 -7
  166. package/dist/vitest-setup.js.map +0 -1
@@ -0,0 +1,920 @@
1
+ (function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))s(i);new MutationObserver(i=>{for(const n of i)if(n.type==="childList")for(const o of n.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const n={};return i.integrity&&(n.integrity=i.integrity),i.referrerPolicy&&(n.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?n.credentials="include":i.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function s(i){if(i.ep)return;i.ep=!0;const n=r(i);fetch(i.href,n)}})();var Nt=Object.defineProperty,Pt=(t,e,r)=>e in t?Nt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,fe=(t,e,r)=>(Pt(t,typeof e!="symbol"?e+"":e,r),r),Ot=(t,e,r)=>{if(!e.has(t))throw TypeError("Cannot "+r)},me=(t,e)=>{if(Object(e)!==e)throw TypeError('Cannot use the "in" operator on this value');return t.has(e)},te=(t,e,r)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,r)},Le=(t,e,r)=>(Ot(t,e,"access private method"),r);function rt(t,e){return Object.is(t,e)}let f=null,G=!1,re=1;const se=Symbol("SIGNAL");function L(t){const e=f;return f=t,e}function It(){return f}function Rt(){return G}const ke={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function he(t){if(G)throw new Error(typeof ngDevMode<"u"&&ngDevMode?"Assertion error: signal read during notification phase":"");if(f===null)return;f.consumerOnSignalRead(t);const e=f.nextProducerIndex++;if(j(f),e<f.producerNode.length&&f.producerNode[e]!==t&&xe(f)){const r=f.producerNode[e];pe(r,f.producerIndexOfThis[e])}f.producerNode[e]!==t&&(f.producerNode[e]=t,f.producerIndexOfThis[e]=xe(f)?nt(t,f,e):0),f.producerLastReadVersion[e]=t.version}function Dt(){re++}function it(t){if(!(!t.dirty&&t.lastCleanEpoch===re)){if(!t.producerMustRecompute(t)&&!Wt(t)){t.dirty=!1,t.lastCleanEpoch=re;return}t.producerRecomputeValue(t),t.dirty=!1,t.lastCleanEpoch=re}}function st(t){if(t.liveConsumerNode===void 0)return;const e=G;G=!0;try{for(const r of t.liveConsumerNode)r.dirty||Mt(r)}finally{G=e}}function Ut(){return f?.consumerAllowSignalWrites!==!1}function Mt(t){var e;t.dirty=!0,st(t),(e=t.consumerMarkedDirty)==null||e.call(t.wrapper??t)}function Lt(t){return t&&(t.nextProducerIndex=0),L(t)}function jt(t,e){if(L(e),!(!t||t.producerNode===void 0||t.producerIndexOfThis===void 0||t.producerLastReadVersion===void 0)){if(xe(t))for(let r=t.nextProducerIndex;r<t.producerNode.length;r++)pe(t.producerNode[r],t.producerIndexOfThis[r]);for(;t.producerNode.length>t.nextProducerIndex;)t.producerNode.pop(),t.producerLastReadVersion.pop(),t.producerIndexOfThis.pop()}}function Wt(t){j(t);for(let e=0;e<t.producerNode.length;e++){const r=t.producerNode[e],s=t.producerLastReadVersion[e];if(s!==r.version||(it(r),s!==r.version))return!0}return!1}function nt(t,e,r){var s;if(Te(t),j(t),t.liveConsumerNode.length===0){(s=t.watched)==null||s.call(t.wrapper);for(let i=0;i<t.producerNode.length;i++)t.producerIndexOfThis[i]=nt(t.producerNode[i],t,i)}return t.liveConsumerIndexOfThis.push(r),t.liveConsumerNode.push(e)-1}function pe(t,e){var r;if(Te(t),j(t),typeof ngDevMode<"u"&&ngDevMode&&e>=t.liveConsumerNode.length)throw new Error(`Assertion error: active consumer index ${e} is out of bounds of ${t.liveConsumerNode.length} consumers)`);if(t.liveConsumerNode.length===1){(r=t.unwatched)==null||r.call(t.wrapper);for(let i=0;i<t.producerNode.length;i++)pe(t.producerNode[i],t.producerIndexOfThis[i])}const s=t.liveConsumerNode.length-1;if(t.liveConsumerNode[e]=t.liveConsumerNode[s],t.liveConsumerIndexOfThis[e]=t.liveConsumerIndexOfThis[s],t.liveConsumerNode.length--,t.liveConsumerIndexOfThis.length--,e<t.liveConsumerNode.length){const i=t.liveConsumerIndexOfThis[e],n=t.liveConsumerNode[e];j(n),n.producerIndexOfThis[i]=e}}function xe(t){var e;return t.consumerIsAlwaysLive||(((e=t?.liveConsumerNode)==null?void 0:e.length)??0)>0}function j(t){t.producerNode??(t.producerNode=[]),t.producerIndexOfThis??(t.producerIndexOfThis=[]),t.producerLastReadVersion??(t.producerLastReadVersion=[])}function Te(t){t.liveConsumerNode??(t.liveConsumerNode=[]),t.liveConsumerIndexOfThis??(t.liveConsumerIndexOfThis=[])}function ot(t){if(it(t),he(t),t.value===Ce)throw t.error;return t.value}function qt(t){const e=Object.create(Ht);e.computation=t;const r=()=>ot(e);return r[se]=e,r}const ge=Symbol("UNSET"),$e=Symbol("COMPUTING"),Ce=Symbol("ERRORED"),Ht={...ke,value:ge,dirty:!0,error:null,equal:rt,producerMustRecompute(t){return t.value===ge||t.value===$e},producerRecomputeValue(t){if(t.value===$e)throw new Error("Detected cycle in computations.");const e=t.value;t.value=$e;const r=Lt(t);let s,i=!1;try{s=t.computation.call(t.wrapper),i=e!==ge&&e!==Ce&&t.equal.call(t.wrapper,e,s)}catch(n){s=Ce,t.error=n}finally{jt(t,r)}if(i){t.value=e;return}t.value=s,t.version++}};function Ft(){throw new Error}let Bt=Ft;function Kt(){Bt()}function Vt(t){const e=Object.create(Jt);e.value=t;const r=()=>(he(e),e.value);return r[se]=e,r}function Gt(){return he(this),this.value}function Zt(t,e){Ut()||Kt(),t.equal.call(t.wrapper,t.value,e)||(t.value=e,Qt(t))}const Jt={...ke,equal:rt,value:void 0};function Qt(t){t.version++,Dt(),st(t)}const $=Symbol("node");var y;(t=>{var e,r,s,i;class n{constructor(c,h={}){te(this,r),fe(this,e);const l=Vt(c)[se];if(this[$]=l,l.wrapper=this,h){const g=h.equals;g&&(l.equal=g),l.watched=h[t.subtle.watched],l.unwatched=h[t.subtle.unwatched]}}get(){if(!(0,t.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.get");return Gt.call(this[$])}set(c){if(!(0,t.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.set");if(Rt())throw new Error("Writes to signals not permitted during Watcher callback");const h=this[$];Zt(h,c)}}e=$,r=new WeakSet,t.isState=a=>typeof a=="object"&&me(r,a),t.State=n;class o{constructor(c,h){te(this,i),fe(this,s);const l=qt(c)[se];if(l.consumerAllowSignalWrites=!0,this[$]=l,l.wrapper=this,h){const g=h.equals;g&&(l.equal=g),l.watched=h[t.subtle.watched],l.unwatched=h[t.subtle.unwatched]}}get(){if(!(0,t.isComputed)(this))throw new TypeError("Wrong receiver type for Signal.Computed.prototype.get");return ot(this[$])}}s=$,i=new WeakSet,t.isComputed=a=>typeof a=="object"&&me(i,a),t.Computed=o,(a=>{var c,h,b,l;function g(v){let p,d=null;try{d=L(null),p=v()}finally{L(d)}return p}a.untrack=g;function x(v){var p;if(!(0,t.isComputed)(v)&&!(0,t.isWatcher)(v))throw new TypeError("Called introspectSources without a Computed or Watcher argument");return((p=v[$].producerNode)==null?void 0:p.map(d=>d.wrapper))??[]}a.introspectSources=x;function U(v){var p;if(!(0,t.isComputed)(v)&&!(0,t.isState)(v))throw new TypeError("Called introspectSinks without a Signal argument");return((p=v[$].liveConsumerNode)==null?void 0:p.map(d=>d.wrapper))??[]}a.introspectSinks=U;function zt(v){if(!(0,t.isComputed)(v)&&!(0,t.isState)(v))throw new TypeError("Called hasSinks without a Signal argument");const p=v[$].liveConsumerNode;return p?p.length>0:!1}a.hasSinks=zt;function Et(v){if(!(0,t.isComputed)(v)&&!(0,t.isWatcher)(v))throw new TypeError("Called hasSources without a Computed or Watcher argument");const p=v[$].producerNode;return p?p.length>0:!1}a.hasSources=Et;class At{constructor(p){te(this,h),te(this,b),fe(this,c);let d=Object.create(ke);d.wrapper=this,d.consumerMarkedDirty=p,d.consumerIsAlwaysLive=!0,d.consumerAllowSignalWrites=!1,d.producerNode=[],this[$]=d}watch(...p){if(!(0,t.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");Le(this,b,l).call(this,p);const d=this[$];d.dirty=!1;const w=L(d);for(const ee of p)he(ee[$]);L(w)}unwatch(...p){if(!(0,t.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");Le(this,b,l).call(this,p);const d=this[$];j(d);for(let w=d.producerNode.length-1;w>=0;w--)if(p.includes(d.producerNode[w].wrapper)){pe(d.producerNode[w],d.producerIndexOfThis[w]);const ee=d.producerNode.length-1;if(d.producerNode[w]=d.producerNode[ee],d.producerIndexOfThis[w]=d.producerIndexOfThis[ee],d.producerNode.length--,d.producerIndexOfThis.length--,d.nextProducerIndex--,w<d.producerNode.length){const Tt=d.producerIndexOfThis[w],Me=d.producerNode[w];Te(Me),Me.liveConsumerIndexOfThis[Tt]=w}}}getPending(){if(!(0,t.isWatcher)(this))throw new TypeError("Called getPending without Watcher receiver");return this[$].producerNode.filter(d=>d.dirty).map(d=>d.wrapper)}}c=$,h=new WeakSet,b=new WeakSet,l=function(v){for(const p of v)if(!(0,t.isComputed)(p)&&!(0,t.isState)(p))throw new TypeError("Called watch/unwatch without a Computed or State argument")},t.isWatcher=v=>me(h,v),a.Watcher=At;function kt(){var v;return(v=It())==null?void 0:v.wrapper}a.currentComputed=kt,a.watched=Symbol("watched"),a.unwatched=Symbol("unwatched")})(t.subtle||(t.subtle={}))})(y||(y={}));let ye=!1;const je=new y.subtle.Watcher(()=>{ye||(ye=!0,queueMicrotask(()=>{ye=!1;for(const t of je.getPending())t.get();je.watch()}))}),Xt=Symbol("SignalWatcherBrand"),Yt=new FinalizationRegistry(t=>{t.unwatch(...y.subtle.introspectSources(t))}),We=new WeakMap;function I(t){return t[Xt]===!0?(console.warn("SignalWatcher should not be applied to the same class more than once."),t):class extends t{constructor(){super(...arguments),this._$St=new Map,this._$So=new y.State(0),this._$Si=!1}_$Sl(){var e,r;const s=[],i=[];this._$St.forEach((o,a)=>{(o?.beforeUpdate?s:i).push(a)});const n=(e=this.h)===null||e===void 0?void 0:e.getPending().filter(o=>o!==this._$Su&&!this._$St.has(o));s.forEach(o=>o.get()),(r=this._$Su)===null||r===void 0||r.get(),n.forEach(o=>o.get()),i.forEach(o=>o.get())}_$Sv(){this.isUpdatePending||queueMicrotask(()=>{this.isUpdatePending||this._$Sl()})}_$S_(){if(this.h!==void 0)return;this._$Su=new y.Computed(()=>{this._$So.get(),super.performUpdate()});const e=this.h=new y.subtle.Watcher(function(){const r=We.get(this);r!==void 0&&(r._$Si===!1&&(new Set(this.getPending()).has(r._$Su)?r.requestUpdate():r._$Sv()),this.watch())});We.set(e,this),Yt.register(this,e),e.watch(this._$Su),e.watch(...Array.from(this._$St).map(([r])=>r))}_$Sp(){if(this.h===void 0)return;let e=!1;this.h.unwatch(...y.subtle.introspectSources(this.h).filter(r=>{var s;const i=((s=this._$St.get(r))===null||s===void 0?void 0:s.manualDispose)!==!0;return i&&this._$St.delete(r),e||(e=!i),i})),e||(this._$Su=void 0,this.h=void 0,this._$St.clear())}updateEffect(e,r){var s;this._$S_();const i=new y.Computed(()=>{e()});return this.h.watch(i),this._$St.set(i,r),(s=r?.beforeUpdate)!==null&&s!==void 0&&s?y.subtle.untrack(()=>i.get()):this.updateComplete.then(()=>y.subtle.untrack(()=>i.get())),()=>{this._$St.delete(i),this.h.unwatch(i),this.isConnected===!1&&this._$Sp()}}performUpdate(){this.isUpdatePending&&(this._$S_(),this._$Si=!0,this._$So.set(this._$So.get()+1),this._$Si=!1,this._$Sl())}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){super.disconnectedCallback(),queueMicrotask(()=>{this.isConnected===!1&&this._$Sp()})}}}const er={ATTRIBUTE:1},tr=t=>(...e)=>({_$litDirective$:t,values:e});let rr=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,r,s){this._$Ct=e,this._$AM=r,this._$Ci=s}_$AS(e,r){return this.update(e,r)}update(e,r){return this.render(...r)}};const Ne=globalThis,qe=t=>t,ne=Ne.trustedTypes,He=ne?ne.createPolicy("lit-html",{createHTML:t=>t}):void 0,at="$lit$",S=`lit$${Math.random().toFixed(9).slice(2)}$`,ct="?"+S,ir=`<${ct}>`,P=document,J=()=>P.createComment(""),Q=t=>t===null||typeof t!="object"&&typeof t!="function",Pe=Array.isArray,sr=t=>Pe(t)||typeof t?.[Symbol.iterator]=="function",we=`[
2
+ \f\r]`,K=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Fe=/-->/g,Be=/>/g,k=RegExp(`>|${we}(?:([^\\s"'>=/]+)(${we}*=${we}*(?:[^
3
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),Ke=/'/g,Ve=/"/g,lt=/^(?:script|style|textarea|title)$/i,nr=t=>(e,...r)=>({_$litType$:t,strings:e,values:r}),u=nr(1),O=Symbol.for("lit-noChange"),m=Symbol.for("lit-nothing"),Ge=new WeakMap,T=P.createTreeWalker(P,129);function dt(t,e){if(!Pe(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return He!==void 0?He.createHTML(e):e}const or=(t,e)=>{const r=t.length-1,s=[];let i,n=e===2?"<svg>":e===3?"<math>":"",o=K;for(let a=0;a<r;a++){const c=t[a];let h,b,l=-1,g=0;for(;g<c.length&&(o.lastIndex=g,b=o.exec(c),b!==null);)g=o.lastIndex,o===K?b[1]==="!--"?o=Fe:b[1]!==void 0?o=Be:b[2]!==void 0?(lt.test(b[2])&&(i=RegExp("</"+b[2],"g")),o=k):b[3]!==void 0&&(o=k):o===k?b[0]===">"?(o=i??K,l=-1):b[1]===void 0?l=-2:(l=o.lastIndex-b[2].length,h=b[1],o=b[3]===void 0?k:b[3]==='"'?Ve:Ke):o===Ve||o===Ke?o=k:o===Fe||o===Be?o=K:(o=k,i=void 0);const x=o===k&&t[a+1].startsWith("/>")?" ":"";n+=o===K?c+ir:l>=0?(s.push(h),c.slice(0,l)+at+c.slice(l)+S+x):c+S+(l===-2?a:x)}return[dt(t,n+(t[r]||"<?>")+(e===2?"</svg>":e===3?"</math>":"")),s]};let Se=class ut{constructor({strings:e,_$litType$:r},s){let i;this.parts=[];let n=0,o=0;const a=e.length-1,c=this.parts,[h,b]=or(e,r);if(this.el=ut.createElement(h,s),T.currentNode=this.el.content,r===2||r===3){const l=this.el.content.firstChild;l.replaceWith(...l.childNodes)}for(;(i=T.nextNode())!==null&&c.length<a;){if(i.nodeType===1){if(i.hasAttributes())for(const l of i.getAttributeNames())if(l.endsWith(at)){const g=b[o++],x=i.getAttribute(l).split(S),U=/([.?@])?(.*)/.exec(g);c.push({type:1,index:n,name:U[2],strings:x,ctor:U[1]==="."?cr:U[1]==="?"?lr:U[1]==="@"?dr:ve}),i.removeAttribute(l)}else l.startsWith(S)&&(c.push({type:6,index:n}),i.removeAttribute(l));if(lt.test(i.tagName)){const l=i.textContent.split(S),g=l.length-1;if(g>0){i.textContent=ne?ne.emptyScript:"";for(let x=0;x<g;x++)i.append(l[x],J()),T.nextNode(),c.push({type:2,index:++n});i.append(l[g],J())}}}else if(i.nodeType===8)if(i.data===ct)c.push({type:2,index:n});else{let l=-1;for(;(l=i.data.indexOf(S,l+1))!==-1;)c.push({type:7,index:n}),l+=S.length-1}n++}}static createElement(e,r){const s=P.createElement("template");return s.innerHTML=e,s}};function W(t,e,r=t,s){if(e===O)return e;let i=s!==void 0?r._$Co?.[s]:r._$Cl;const n=Q(e)?void 0:e._$litDirective$;return i?.constructor!==n&&(i?._$AO?.(!1),n===void 0?i=void 0:(i=new n(t),i._$AT(t,r,s)),s!==void 0?(r._$Co??=[])[s]=i:r._$Cl=i),i!==void 0&&(e=W(t,i._$AS(t,e.values),i,s)),e}class ar{constructor(e,r){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=r}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){const{el:{content:r},parts:s}=this._$AD,i=(e?.creationScope??P).importNode(r,!0);T.currentNode=i;let n=T.nextNode(),o=0,a=0,c=s[0];for(;c!==void 0;){if(o===c.index){let h;c.type===2?h=new Y(n,n.nextSibling,this,e):c.type===1?h=new c.ctor(n,c.name,c.strings,this,e):c.type===6&&(h=new ur(n,this,e)),this._$AV.push(h),c=s[++a]}o!==c?.index&&(n=T.nextNode(),o++)}return T.currentNode=P,i}p(e){let r=0;for(const s of this._$AV)s!==void 0&&(s.strings!==void 0?(s._$AI(e,s,r),r+=s.strings.length-2):s._$AI(e[r])),r++}}class Y{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,r,s,i){this.type=2,this._$AH=m,this._$AN=void 0,this._$AA=e,this._$AB=r,this._$AM=s,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode;const r=this._$AM;return r!==void 0&&e?.nodeType===11&&(e=r.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,r=this){e=W(this,e,r),Q(e)?e===m||e==null||e===""?(this._$AH!==m&&this._$AR(),this._$AH=m):e!==this._$AH&&e!==O&&this._(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):sr(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==m&&Q(this._$AH)?this._$AA.nextSibling.data=e:this.T(P.createTextNode(e)),this._$AH=e}$(e){const{values:r,_$litType$:s}=e,i=typeof s=="number"?this._$AC(e):(s.el===void 0&&(s.el=Se.createElement(dt(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===i)this._$AH.p(r);else{const n=new ar(i,this),o=n.u(this.options);n.p(r),this.T(o),this._$AH=n}}_$AC(e){let r=Ge.get(e.strings);return r===void 0&&Ge.set(e.strings,r=new Se(e)),r}k(e){Pe(this._$AH)||(this._$AH=[],this._$AR());const r=this._$AH;let s,i=0;for(const n of e)i===r.length?r.push(s=new Y(this.O(J()),this.O(J()),this,this.options)):s=r[i],s._$AI(n),i++;i<r.length&&(this._$AR(s&&s._$AB.nextSibling,i),r.length=i)}_$AR(e=this._$AA.nextSibling,r){for(this._$AP?.(!1,!0,r);e!==this._$AB;){const s=qe(e).nextSibling;qe(e).remove(),e=s}}setConnected(e){this._$AM===void 0&&(this._$Cv=e,this._$AP?.(e))}}class ve{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,r,s,i,n){this.type=1,this._$AH=m,this._$AN=void 0,this.element=e,this.name=r,this._$AM=i,this.options=n,s.length>2||s[0]!==""||s[1]!==""?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=m}_$AI(e,r=this,s,i){const n=this.strings;let o=!1;if(n===void 0)e=W(this,e,r,0),o=!Q(e)||e!==this._$AH&&e!==O,o&&(this._$AH=e);else{const a=e;let c,h;for(e=n[0],c=0;c<n.length-1;c++)h=W(this,a[s+c],r,c),h===O&&(h=this._$AH[c]),o||=!Q(h)||h!==this._$AH[c],h===m?e=m:e!==m&&(e+=(h??"")+n[c+1]),this._$AH[c]=h}o&&!i&&this.j(e)}j(e){e===m?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}}class cr extends ve{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===m?void 0:e}}class lr extends ve{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==m)}}class dr extends ve{constructor(e,r,s,i,n){super(e,r,s,i,n),this.type=5}_$AI(e,r=this){if((e=W(this,e,r,0)??m)===O)return;const s=this._$AH,i=e===m&&s!==m||e.capture!==s.capture||e.once!==s.once||e.passive!==s.passive,n=e!==m&&(s===m||i);i&&this.element.removeEventListener(this.name,this,s),n&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}}class ur{constructor(e,r,s){this.element=e,this.type=6,this._$AN=void 0,this._$AM=r,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(e){W(this,e)}}const hr=Ne.litHtmlPolyfillSupport;hr?.(Se,Y),(Ne.litHtmlVersions??=[]).push("3.3.3");const pr=(t,e,r)=>{const s=r?.renderBefore??e;let i=s._$litPart$;if(i===void 0){const n=r?.renderBefore??null;s._$litPart$=i=new Y(e.insertBefore(J(),n),n,void 0,r??{})}return i._$AI(t),i};let _e=!1;const Ze=new y.subtle.Watcher(async()=>{_e||(_e=!0,queueMicrotask(()=>{_e=!1;for(const t of Ze.getPending())t.get();Ze.watch()}))});y.State;y.Computed;const R=(t,e)=>new y.State(t,e);const ie=globalThis,Oe=ie.ShadowRoot&&(ie.ShadyCSS===void 0||ie.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Ie=Symbol(),Je=new WeakMap;let ht=class{constructor(e,r,s){if(this._$cssResult$=!0,s!==Ie)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=r}get styleSheet(){let e=this.o;const r=this.t;if(Oe&&e===void 0){const s=r!==void 0&&r.length===1;s&&(e=Je.get(r)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),s&&Je.set(r,e))}return e}toString(){return this.cssText}};const vr=t=>new ht(typeof t=="string"?t:t+"",void 0,Ie),z=(t,...e)=>{const r=t.length===1?t[0]:e.reduce((s,i,n)=>s+(o=>{if(o._$cssResult$===!0)return o.cssText;if(typeof o=="number")return o;throw Error("Value passed to 'css' function must be a 'css' function result: "+o+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+t[n+1],t[0]);return new ht(r,t,Ie)},br=(t,e)=>{if(Oe)t.adoptedStyleSheets=e.map(r=>r instanceof CSSStyleSheet?r:r.styleSheet);else for(const r of e){const s=document.createElement("style"),i=ie.litNonce;i!==void 0&&s.setAttribute("nonce",i),s.textContent=r.cssText,t.appendChild(s)}},Qe=Oe?t=>t:t=>t instanceof CSSStyleSheet?(e=>{let r="";for(const s of e.cssRules)r+=s.cssText;return vr(r)})(t):t;const{is:fr,defineProperty:mr,getOwnPropertyDescriptor:gr,getOwnPropertyNames:$r,getOwnPropertySymbols:yr,getPrototypeOf:wr}=Object,be=globalThis,Xe=be.trustedTypes,_r=Xe?Xe.emptyScript:"",xr=be.reactiveElementPolyfillSupport,Z=(t,e)=>t,oe={toAttribute(t,e){switch(e){case Boolean:t=t?_r:null;break;case Object:case Array:t=t==null?t:JSON.stringify(t)}return t},fromAttribute(t,e){let r=t;switch(e){case Boolean:r=t!==null;break;case Number:r=t===null?null:Number(t);break;case Object:case Array:try{r=JSON.parse(t)}catch{r=null}}return r}},Re=(t,e)=>!fr(t,e),Ye={attribute:!0,type:String,converter:oe,reflect:!1,useDefault:!1,hasChanged:Re};Symbol.metadata??=Symbol("metadata"),be.litPropertyMetadata??=new WeakMap;class M extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,r=Ye){if(r.state&&(r.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((r=Object.create(r)).wrapped=!0),this.elementProperties.set(e,r),!r.noAccessor){const s=Symbol(),i=this.getPropertyDescriptor(e,s,r);i!==void 0&&mr(this.prototype,e,i)}}static getPropertyDescriptor(e,r,s){const{get:i,set:n}=gr(this.prototype,e)??{get(){return this[r]},set(o){this[r]=o}};return{get:i,set(o){const a=i?.call(this);n?.call(this,o),this.requestUpdate(e,a,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??Ye}static _$Ei(){if(this.hasOwnProperty(Z("elementProperties")))return;const e=wr(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(Z("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(Z("properties"))){const r=this.properties,s=[...$r(r),...yr(r)];for(const i of s)this.createProperty(i,r[i])}const e=this[Symbol.metadata];if(e!==null){const r=litPropertyMetadata.get(e);if(r!==void 0)for(const[s,i]of r)this.elementProperties.set(s,i)}this._$Eh=new Map;for(const[r,s]of this.elementProperties){const i=this._$Eu(r,s);i!==void 0&&this._$Eh.set(i,r)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const r=[];if(Array.isArray(e)){const s=new Set(e.flat(1/0).reverse());for(const i of s)r.unshift(Qe(i))}else e!==void 0&&r.push(Qe(e));return r}static _$Eu(e,r){const s=r.attribute;return s===!1?void 0:typeof s=="string"?s:typeof e=="string"?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(e=>e(this))}addController(e){(this._$EO??=new Set).add(e),this.renderRoot!==void 0&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,r=this.constructor.elementProperties;for(const s of r.keys())this.hasOwnProperty(s)&&(e.set(s,this[s]),delete this[s]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return br(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(e=>e.hostConnected?.())}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach(e=>e.hostDisconnected?.())}attributeChangedCallback(e,r,s){this._$AK(e,s)}_$ET(e,r){const s=this.constructor.elementProperties.get(e),i=this.constructor._$Eu(e,s);if(i!==void 0&&s.reflect===!0){const n=(s.converter?.toAttribute!==void 0?s.converter:oe).toAttribute(r,s.type);this._$Em=e,n==null?this.removeAttribute(i):this.setAttribute(i,n),this._$Em=null}}_$AK(e,r){const s=this.constructor,i=s._$Eh.get(e);if(i!==void 0&&this._$Em!==i){const n=s.getPropertyOptions(i),o=typeof n.converter=="function"?{fromAttribute:n.converter}:n.converter?.fromAttribute!==void 0?n.converter:oe;this._$Em=i;const a=o.fromAttribute(r,n.type);this[i]=a??this._$Ej?.get(i)??a,this._$Em=null}}requestUpdate(e,r,s,i=!1,n){if(e!==void 0){const o=this.constructor;if(i===!1&&(n=this[e]),s??=o.getPropertyOptions(e),!((s.hasChanged??Re)(n,r)||s.useDefault&&s.reflect&&n===this._$Ej?.get(e)&&!this.hasAttribute(o._$Eu(e,s))))return;this.C(e,r,s)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(e,r,{useDefault:s,reflect:i,wrapped:n},o){s&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,o??r??this[e]),n!==!0||o!==void 0)||(this._$AL.has(e)||(this.hasUpdated||s||(r=void 0),this._$AL.set(e,r)),i===!0&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(r){Promise.reject(r)}const e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[i,n]of this._$Ep)this[i]=n;this._$Ep=void 0}const s=this.constructor.elementProperties;if(s.size>0)for(const[i,n]of s){const{wrapped:o}=n,a=this[i];o!==!0||this._$AL.has(i)||a===void 0||this.C(i,void 0,n,a)}}let e=!1;const r=this._$AL;try{e=this.shouldUpdate(r),e?(this.willUpdate(r),this._$EO?.forEach(s=>s.hostUpdate?.()),this.update(r)):this._$EM()}catch(s){throw e=!1,this._$EM(),s}e&&this._$AE(r)}willUpdate(e){}_$AE(e){this._$EO?.forEach(r=>r.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach(r=>this._$ET(r,this[r])),this._$EM()}updated(e){}firstUpdated(e){}}M.elementStyles=[],M.shadowRootOptions={mode:"open"},M[Z("elementProperties")]=new Map,M[Z("finalized")]=new Map,xr?.({ReactiveElement:M}),(be.reactiveElementVersions??=[]).push("2.1.2");const De=globalThis;let _=class extends M{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=pr(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return O}};_._$litElement$=!0,_.finalized=!0,De.litElementHydrateSupport?.({LitElement:_});const Cr=De.litElementPolyfillSupport;Cr?.({LitElement:_});(De.litElementVersions??=[]).push("4.2.2");const E=t=>(e,r)=>{r!==void 0?r.addInitializer(()=>{customElements.define(t,e)}):customElements.define(t,e)};const Sr={attribute:!0,type:String,converter:oe,reflect:!1,hasChanged:Re},zr=(t=Sr,e,r)=>{const{kind:s,metadata:i}=r;let n=globalThis.litPropertyMetadata.get(i);if(n===void 0&&globalThis.litPropertyMetadata.set(i,n=new Map),s==="setter"&&((t=Object.create(t)).wrapped=!0),n.set(r.name,t),s==="accessor"){const{name:o}=r;return{set(a){const c=e.get.call(this);e.set.call(this,a),this.requestUpdate(o,c,t,!0,a)},init(a){return a!==void 0&&this.C(o,void 0,t,a),a}}}if(s==="setter"){const{name:o}=r;return function(a){const c=this[o];e.call(this,a),this.requestUpdate(o,c,t,!0,a)}}throw Error("Unsupported decorator location: "+s)};function pt(t){return(e,r)=>typeof r=="object"?zr(t,e,r):((s,i,n)=>{const o=i.hasOwnProperty(n);return i.constructor.createProperty(n,s),o?Object.getOwnPropertyDescriptor(i,n):void 0})(t,e,r)}function D(t){return pt({...t,state:!0,attribute:!1})}const Er=(t,e,r)=>{for(const s of e)if(s[0]===t)return(0,s[1])();return r?.()};let vt=class extends Event{constructor(e,r,s,i){super("context-request",{bubbles:!0,composed:!0}),this.context=e,this.contextTarget=r,this.callback=s,this.subscribe=i??!1}};let et=class{constructor(e,r,s,i){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(n,o)=>{this.unsubscribe&&(this.unsubscribe!==o&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=n,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(n,o)),this.unsubscribe=o},this.host=e,r.context!==void 0){const n=r;this.context=n.context,this.callback=n.callback,this.subscribe=n.subscribe??!1}else this.context=r,this.callback=s,this.subscribe=i??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new vt(this.context,this.host,this.t,this.subscribe))}};class Ar{get value(){return this.o}set value(e){this.setValue(e)}setValue(e,r=!1){const s=r||!Object.is(e,this.o);this.o=e,s&&this.updateObservers()}constructor(e){this.subscriptions=new Map,this.updateObservers=()=>{for(const[r,{disposer:s}]of this.subscriptions)r(this.o,s)},e!==void 0&&(this.value=e)}addCallback(e,r,s){if(!s)return void e(this.value);this.subscriptions.has(e)||this.subscriptions.set(e,{disposer:()=>{this.subscriptions.delete(e)},consumerHost:r});const{disposer:i}=this.subscriptions.get(e);e(this.value,i)}clearCallbacks(){this.subscriptions.clear()}}let kr=class extends Event{constructor(e,r){super("context-provider",{bubbles:!0,composed:!0}),this.context=e,this.contextTarget=r}};class tt extends Ar{constructor(e,r,s){super(r.context!==void 0?r.initialValue:s),this.onContextRequest=i=>{if(i.context!==this.context)return;const n=i.contextTarget??i.composedPath()[0];n!==this.host&&(i.stopPropagation(),this.addCallback(i.callback,n,i.subscribe))},this.onProviderRequest=i=>{if(i.context!==this.context||(i.contextTarget??i.composedPath()[0])===this.host)return;const n=new Set;for(const[o,{consumerHost:a}]of this.subscriptions)n.has(o)||(n.add(o),a.dispatchEvent(new vt(this.context,a,o,!0)));i.stopPropagation()},this.host=e,r.context!==void 0?this.context=r.context:this.context=r,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener("context-request",this.onContextRequest),this.host.addEventListener("context-provider",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new kr(this.context,this.host))}}function F({context:t}){return(e,r)=>{const s=new WeakMap;if(typeof r=="object")return{get(){return e.get.call(this)},set(i){return s.get(this).setValue(i),e.set.call(this,i)},init(i){return s.set(this,new tt(this,{context:t,initialValue:i})),i}};{e.constructor.addInitializer((o=>{s.set(o,new tt(o,{context:t}))}));const i=Object.getOwnPropertyDescriptor(e,r);let n;if(i===void 0){const o=new WeakMap;n={get(){return o.get(this)},set(a){s.get(this).setValue(a),o.set(this,a)},configurable:!0,enumerable:!0}}else{const o=i.set;n={...i,set(a){s.get(this).setValue(a),o?.call(this,a)}}}return void Object.defineProperty(e,r,n)}}}function B({context:t,subscribe:e}){return(r,s)=>{typeof s=="object"?s.addInitializer((function(){new et(this,{context:t,callback:i=>{r.set.call(this,i)},subscribe:e})})):r.constructor.addInitializer((i=>{new et(i,{context:t,callback:n=>{i[s]=n},subscribe:e})}))}}const q=tr(class extends rr{constructor(t){if(super(t),t.type!==er.ATTRIBUTE||t.name!=="class"||t.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter(e=>t[e]).join(" ")+" "}update(t,[e]){if(this.st===void 0){this.st=new Set,t.strings!==void 0&&(this.nt=new Set(t.strings.join(" ").split(/\s/).filter(s=>s!=="")));for(const s in e)e[s]&&!this.nt?.has(s)&&this.st.add(s);return this.render(e)}const r=t.element.classList;for(const s of this.st)s in e||(r.remove(s),this.st.delete(s));for(const s in e){const i=!!e[s];i===this.st.has(s)||this.nt?.has(s)||(i?(r.add(s),this.st.add(s)):(r.remove(s),this.st.delete(s)))}return O}});function*H(t,e){if(t!==void 0){let r=0;for(const s of t)yield e(s,r++)}}function N(t,e,r){return t?e(t):r?.(t)}var Tr=Object.defineProperty,Nr=Object.getOwnPropertyDescriptor,bt=(t,e,r,s)=>{for(var i=s>1?void 0:s?Nr(e,r):e,n=t.length-1,o;n>=0;n--)(o=t[n])&&(i=(s?o(e,r,i):o(i))||i);return s&&i&&Tr(e,r,i),i};const ft=Symbol("kanban-button-render-service");let ae=class extends I(_){handleActivate(){this.service?.activate(),this.dispatchEvent(new CustomEvent("kanban-button-activate",{bubbles:!0,composed:!0}))}render(){const t=this.service?.button.get();return t===void 0?u``:u`
4
+ <button
5
+ aria-busy=${String(t.loading)}
6
+ class=${q({"command-button":!0,"is-destructive":t.variant==="destructive","is-primary":t.variant==="primary","is-quiet":t.variant==="quiet","is-secondary":t.variant==="secondary"})}
7
+ ?disabled=${t.disabled||t.loading}
8
+ @click=${this.handleActivate}
9
+ type="button"
10
+ >
11
+ ${N(t.loading,()=>u`
12
+ <span
13
+ aria-hidden="true"
14
+ class="spinner"
15
+ ></span>
16
+ `)}
17
+ <span>${t.label}</span>
18
+ </button>
19
+ `}};ae.styles=z`
20
+ :host {
21
+ display: inline-block;
22
+ }
23
+
24
+ .command-button {
25
+ align-items: center;
26
+ background: var(--color-accent);
27
+ border: var(--border-width) solid transparent;
28
+ border-radius: var(--radius-control);
29
+ color: var(--color-surface-sidebar);
30
+ cursor: pointer;
31
+ display: inline-flex;
32
+ font-family: var(--font-family-ui);
33
+ font-size: var(--font-size-control);
34
+ font-weight: var(--font-weight-heavy);
35
+ gap: var(--size-3);
36
+ line-height: var(--line-height-ui);
37
+ min-height: var(--size-19);
38
+ padding: var(--size-5) var(--size-7);
39
+ }
40
+
41
+ .command-button:focus-visible {
42
+ outline: var(--size-1) solid var(--color-accent-secondary);
43
+ outline-offset: var(--size-1);
44
+ }
45
+
46
+ .command-button.is-secondary {
47
+ background: var(--color-surface-panel);
48
+ border-color: var(--color-text-primary);
49
+ color: var(--color-text-primary);
50
+ }
51
+
52
+ .command-button.is-quiet {
53
+ background: transparent;
54
+ color: var(--color-text-primary);
55
+ }
56
+
57
+ .command-button.is-destructive {
58
+ background: var(--color-status-blocked-surface);
59
+ border-color: var(--color-status-blocked-border);
60
+ color: var(--color-status-blocked-text);
61
+ }
62
+
63
+ .command-button:disabled {
64
+ background: var(--color-surface-subtle);
65
+ border-color: var(--color-border-subtle);
66
+ color: var(--color-text-tertiary);
67
+ cursor: not-allowed;
68
+ }
69
+
70
+ .spinner {
71
+ animation: spin 700ms linear infinite;
72
+ border: var(--size-1) solid currentColor;
73
+ border-right-color: transparent;
74
+ border-radius: 50%;
75
+ height: var(--size-6);
76
+ width: var(--size-6);
77
+ }
78
+
79
+ @keyframes spin {
80
+ to {
81
+ transform: rotate(1turn);
82
+ }
83
+ }
84
+ `;bt([B({context:ft,subscribe:!0}),D()],ae.prototype,"service",2);ae=bt([E("kanban-button")],ae);var Pr=Object.defineProperty,Or=Object.getOwnPropertyDescriptor,mt=(t,e,r,s)=>{for(var i=s>1?void 0:s?Or(e,r):e,n=t.length-1,o;n>=0;n--)(o=t[n])&&(i=(s?o(e,r,i):o(i))||i);return s&&i&&Pr(e,r,i),i};const gt=Symbol("kanban-breadcrumb-trail-render-service");let ce=class extends I(_){getAriaCurrent(t,e){return t===e-1?"page":"false"}render(){const t=this.service?.breadcrumbTrail.get();return t===void 0?u``:u`
85
+ <nav
86
+ aria-label=${t.label}
87
+ class="breadcrumb-trail"
88
+ >
89
+ <ol>
90
+ ${H(t.items,(e,r)=>u`
91
+ <li aria-current=${this.getAriaCurrent(r,t.items.length)}>${e}</li>
92
+ `)}
93
+ </ol>
94
+ </nav>
95
+ `}};ce.styles=z`
96
+ :host {
97
+ display: block;
98
+ min-width: var(--size-0);
99
+ }
100
+
101
+ .breadcrumb-trail {
102
+ color: var(--color-text-secondary);
103
+ font-family: var(--font-family-ui);
104
+ font-size: var(--font-size-meta);
105
+ font-weight: var(--font-weight-strong);
106
+ min-width: var(--size-0);
107
+ }
108
+
109
+ ol {
110
+ display: flex;
111
+ flex-wrap: wrap;
112
+ gap: var(--size-3);
113
+ list-style: none;
114
+ margin: var(--size-0);
115
+ padding: var(--size-0);
116
+ }
117
+
118
+ li {
119
+ align-items: center;
120
+ display: inline-flex;
121
+ min-width: var(--size-0);
122
+ }
123
+
124
+ li:not(:last-child)::after {
125
+ color: var(--color-text-tertiary);
126
+ content: "/";
127
+ margin-left: var(--size-3);
128
+ }
129
+
130
+ li[aria-current="page"] {
131
+ color: var(--color-text-primary);
132
+ overflow: hidden;
133
+ text-overflow: ellipsis;
134
+ white-space: nowrap;
135
+ }
136
+
137
+ @media (max-width: 47.5rem) {
138
+ ol {
139
+ flex-wrap: nowrap;
140
+ }
141
+
142
+ li:not(:last-child) {
143
+ display: none;
144
+ }
145
+
146
+ li[aria-current="page"] {
147
+ flex: 1;
148
+ }
149
+
150
+ li[aria-current="page"]::before {
151
+ color: var(--color-text-tertiary);
152
+ content: "... /";
153
+ margin-right: var(--size-3);
154
+ }
155
+ }
156
+ `;mt([B({context:gt,subscribe:!0}),D()],ce.prototype,"service",2);ce=mt([E("kanban-breadcrumb-trail")],ce);var Ir=Object.defineProperty,Rr=Object.getOwnPropertyDescriptor,Ue=(t,e,r,s)=>{for(var i=s>1?void 0:s?Rr(e,r):e,n=t.length-1,o;n>=0;n--)(o=t[n])&&(i=(s?o(e,r,i):o(i))||i);return s&&i&&Ir(e,r,i),i};const $t=Symbol("kanban-comment-render-service");let X=class extends I(_){constructor(){super(...arguments),this.isEditing=!1}handleCancelEdit(){this.isEditing=!1}handleDeleteComment(){const t=this.service?.comment.get();t!==void 0&&(this.service?.deleteComment(t.id),this.dispatchEvent(new CustomEvent("kanban-comment-delete",{bubbles:!0,composed:!0,detail:{commentId:t.id}})))}async handleEditComment(){this.isEditing=!0,await this.updateComplete,this.renderRoot.querySelector("textarea")?.focus()}handleSubmitEdit(t){t.preventDefault();const e=t.currentTarget,r=new FormData(e).get("message"),s=this.service,i=s?.comment.get();if(s===void 0||i===void 0||typeof r!="string"||r.trim()==="")return;const n={commentId:i.id,message:r.trim()};s.editComment(n),this.dispatchEvent(new CustomEvent("kanban-comment-edit",{bubbles:!0,composed:!0,detail:n})),this.isEditing=!1}render(){const t=this.service?.comment.get();return t===void 0?u``:u`
157
+ <article>
158
+ <header>
159
+ <strong>${t.author}</strong>
160
+ <div class="metadata">
161
+ <time datetime=${t.publishedAt}>${t.publishedLabel}</time>
162
+ ${N(t.canEdit,()=>u`
163
+ <div class="actions">
164
+ <button
165
+ @click=${this.handleEditComment}
166
+ type="button"
167
+ >
168
+ Edit
169
+ </button>
170
+ <button
171
+ @click=${this.handleDeleteComment}
172
+ type="button"
173
+ >
174
+ Delete
175
+ </button>
176
+ </div>
177
+ `)}
178
+ </div>
179
+ </header>
180
+ ${N(this.isEditing,()=>u`
181
+ <form @submit=${this.handleSubmitEdit}>
182
+ <label for="comment-message">Edit comment</label>
183
+ <textarea
184
+ id="comment-message"
185
+ name="message"
186
+ rows="3"
187
+ >${t.message}</textarea>
188
+ <div class="editor-actions">
189
+ <button
190
+ @click=${this.handleCancelEdit}
191
+ type="button"
192
+ >
193
+ Cancel
194
+ </button>
195
+ <button type="submit">Publish edit</button>
196
+ </div>
197
+ </form>
198
+ `,()=>u`<p>${t.message}</p>`)}
199
+ </article>
200
+ `}};X.styles=z`
201
+ :host {
202
+ display: block;
203
+ }
204
+
205
+ article {
206
+ background: var(--color-comment-surface);
207
+ border-left: var(--size-1) solid var(--color-accent-secondary);
208
+ padding: var(--size-6);
209
+ }
210
+
211
+ header,
212
+ .metadata,
213
+ .actions,
214
+ .editor-actions {
215
+ align-items: center;
216
+ display: flex;
217
+ gap: var(--size-4);
218
+ }
219
+
220
+ header {
221
+ color: var(--color-text-primary);
222
+ font-size: var(--font-size-control);
223
+ justify-content: space-between;
224
+ }
225
+
226
+ time,
227
+ p {
228
+ color: var(--color-text-secondary);
229
+ }
230
+
231
+ time {
232
+ font-size: var(--font-size-meta);
233
+ white-space: nowrap;
234
+ }
235
+
236
+ p {
237
+ font-size: var(--font-size-ui);
238
+ line-height: var(--line-height-body);
239
+ margin: var(--size-4) var(--size-0) var(--size-0);
240
+ overflow-wrap: anywhere;
241
+ }
242
+
243
+ button,
244
+ textarea {
245
+ font: inherit;
246
+ }
247
+
248
+ button {
249
+ background: var(--color-surface-panel);
250
+ border: var(--border-width) solid var(--color-border-subtle);
251
+ border-radius: var(--radius-control);
252
+ color: var(--color-text-primary);
253
+ cursor: pointer;
254
+ font-size: var(--font-size-meta);
255
+ font-weight: var(--font-weight-heavy);
256
+ padding: var(--size-2) var(--size-4);
257
+ }
258
+
259
+ .actions button:last-child {
260
+ border-color: var(--color-status-blocked-border);
261
+ color: var(--color-status-blocked-text);
262
+ }
263
+
264
+ .actions button:hover,
265
+ .editor-actions button:hover {
266
+ background: var(--color-surface-subtle);
267
+ }
268
+
269
+ button:focus-visible,
270
+ textarea:focus-visible {
271
+ outline: var(--size-2) solid var(--color-accent-secondary);
272
+ outline-offset: var(--size-1);
273
+ }
274
+
275
+ form {
276
+ display: grid;
277
+ gap: var(--size-4);
278
+ margin-top: var(--size-4);
279
+ }
280
+
281
+ textarea {
282
+ box-sizing: border-box;
283
+ min-height: var(--size-38);
284
+ resize: vertical;
285
+ width: 100%;
286
+ }
287
+ `;Ue([D()],X.prototype,"isEditing",2);Ue([B({context:$t,subscribe:!0}),D()],X.prototype,"service",2);X=Ue([E("kanban-comment-item")],X);var Dr=Object.defineProperty,Ur=Object.getOwnPropertyDescriptor,yt=(t,e,r,s)=>{for(var i=s>1?void 0:s?Ur(e,r):e,n=t.length-1,o;n>=0;n--)(o=t[n])&&(i=(s?o(e,r,i):o(i))||i);return s&&i&&Dr(e,r,i),i};const wt=Symbol("kanban-navigation-tree-render-service");let le=class extends I(_){getToggleLabel(t,e){return`${e?"Collapse":"Expand"} ${t.kind} ${t.label}`}handleSelect(t){const e=t.currentTarget.dataset.nodeId;e!==void 0&&(this.service?.selectNode(e),this.dispatchEvent(new CustomEvent("kanban-navigation-tree-select",{bubbles:!0,composed:!0,detail:{nodeId:e}})))}handleToggle(t){const e=t.currentTarget.dataset.nodeId;e!==void 0&&(this.service?.toggleNode(e),this.dispatchEvent(new CustomEvent("kanban-navigation-tree-toggle",{bubbles:!0,composed:!0,detail:{nodeId:e}})))}isExpanded(t,e){return e.expandedNodeIds.includes(t)}renderChildren(t,e){const r=t.children??[],s=this.isExpanded(t.id,e);return N(r.length>0&&s,()=>u`
288
+ <ul>
289
+ ${H(r,i=>this.renderNode(i,e))}
290
+ </ul>
291
+ `)}renderNode(t,e){const r=t.children??[],s=this.isExpanded(t.id,e);return u`
292
+ <li class="navigation-tree-item">
293
+ ${N(r.length>0,()=>u`
294
+ <button
295
+ @click=${this.handleToggle}
296
+ aria-expanded=${String(s)}
297
+ aria-label=${this.getToggleLabel(t,s)}
298
+ data-node-id=${t.id}
299
+ type="button"
300
+ >
301
+ <span aria-hidden="true">${s?"-":"+"}</span>
302
+ </button>
303
+ `,()=>u`<span aria-hidden="true" class="navigation-tree-spacer"></span>`)}
304
+ <button
305
+ @click=${this.handleSelect}
306
+ aria-current=${t.current?"page":"false"}
307
+ class=${q({"is-current":t.current===!0,"navigation-tree-record":!0})}
308
+ data-node-id=${t.id}
309
+ type="button"
310
+ >
311
+ ${t.label}
312
+ <span>${t.kind}</span>
313
+ </button>
314
+ ${this.renderChildren(t,e)}
315
+ </li>
316
+ `}render(){const t=this.service?.navigationTree.get();return t===void 0?u``:u`
317
+ <nav aria-label=${t.navigationLabel}>
318
+ ${N(t.nodes.length>0,()=>u`
319
+ <ul>
320
+ ${H(t.nodes,e=>this.renderNode(e,t))}
321
+ </ul>
322
+ `,()=>u`<p>No records are available in this project yet.</p>`)}
323
+ </nav>
324
+ `}};le.styles=z`
325
+ :host {
326
+ display: block;
327
+ }
328
+
329
+ nav {
330
+ font-size: var(--font-size-control);
331
+ }
332
+
333
+ ul {
334
+ display: grid;
335
+ gap: var(--size-2);
336
+ list-style: none;
337
+ margin: var(--size-0);
338
+ padding: var(--size-0);
339
+ }
340
+
341
+ nav > ul {
342
+ gap: var(--size-4);
343
+ }
344
+
345
+ .navigation-tree-item {
346
+ align-items: center;
347
+ display: grid;
348
+ gap: var(--size-2);
349
+ grid-template-columns: var(--size-11) minmax(var(--size-0), 1fr);
350
+ }
351
+
352
+ .navigation-tree-item > ul {
353
+ border-left: var(--border-width) solid var(--color-border-sidebar-strong);
354
+ grid-column: 2;
355
+ margin: var(--size-2) var(--size-0) var(--size-0) var(--size-7);
356
+ padding-left: var(--size-5);
357
+ }
358
+
359
+ button,
360
+ .navigation-tree-spacer {
361
+ font: inherit;
362
+ }
363
+
364
+ button[aria-expanded],
365
+ .navigation-tree-spacer {
366
+ align-items: center;
367
+ display: inline-flex;
368
+ height: var(--size-11);
369
+ justify-content: center;
370
+ width: var(--size-11);
371
+ }
372
+
373
+ button[aria-expanded] {
374
+ background: transparent;
375
+ border: var(--size-0);
376
+ border-radius: var(--radius-control);
377
+ color: var(--color-text-tertiary);
378
+ cursor: pointer;
379
+ padding: var(--size-0);
380
+ }
381
+
382
+ .navigation-tree-record {
383
+ background: transparent;
384
+ border: var(--size-0);
385
+ border-radius: var(--radius-control);
386
+ color: var(--color-text-inverse-muted);
387
+ cursor: pointer;
388
+ display: grid;
389
+ font-weight: var(--font-weight-strong);
390
+ gap: var(--size-1);
391
+ padding: var(--size-4);
392
+ text-align: left;
393
+ width: 100%;
394
+ }
395
+
396
+ .navigation-tree-record span {
397
+ color: var(--color-text-tertiary);
398
+ font-size: var(--font-size-label);
399
+ font-weight: var(--font-weight-heavy);
400
+ letter-spacing: var(--letter-spacing-label);
401
+ text-transform: uppercase;
402
+ }
403
+
404
+ button:hover,
405
+ button:focus-visible {
406
+ background: var(--color-surface-sidebar-hover);
407
+ color: var(--color-surface-panel);
408
+ outline: var(--size-1) solid var(--color-accent-secondary);
409
+ outline-offset: var(--size-1);
410
+ }
411
+
412
+ .is-current {
413
+ background: var(--color-surface-sidebar-selected);
414
+ color: var(--color-surface-panel);
415
+ }
416
+
417
+ p {
418
+ border: var(--border-width) dashed var(--color-border-sidebar-strong);
419
+ color: var(--color-text-inverse-muted);
420
+ font-size: var(--font-size-body);
421
+ line-height: var(--line-height-body);
422
+ margin: var(--size-0);
423
+ padding: var(--size-12) var(--size-6);
424
+ text-align: center;
425
+ }
426
+ `;yt([B({context:wt,subscribe:!0}),D()],le.prototype,"service",2);le=yt([E("kanban-navigation-tree")],le);var Mr=Object.defineProperty,Lr=Object.getOwnPropertyDescriptor,_t=(t,e,r,s)=>{for(var i=s>1?void 0:s?Lr(e,r):e,n=t.length-1,o;n>=0;n--)(o=t[n])&&(i=(s?o(e,r,i):o(i))||i);return s&&i&&Mr(e,r,i),i};const xt=Symbol("kanban-sidebar-render-service");let de=class extends I(_){handleCollapse(){const t=this.service?.sidebar.get();if(t===void 0)return;const e=!t.collapsed;this.service?.setCollapsed(e),this.dispatchEvent(new CustomEvent("kanban-sidebar-collapse",{bubbles:!0,composed:!0,detail:{collapsed:e}}))}render(){const t=this.service?.sidebar.get();return t===void 0?u``:u`
427
+ <aside
428
+ aria-label=${t.navigationLabel}
429
+ class=${q({"is-collapsed":t.collapsed,"sidebar-shell":!0})}
430
+ >
431
+ <div class="brand">
432
+ <span aria-hidden="true" class="brand-mark">A</span>
433
+ <span class="brand-label">${t.brandLabel}</span>
434
+ <button
435
+ @click=${this.handleCollapse}
436
+ aria-label=${t.collapsed?"Expand sidebar":"Collapse sidebar"}
437
+ type="button"
438
+ >
439
+ <span aria-hidden="true">${t.collapsed?">":"<"}</span>
440
+ </button>
441
+ </div>
442
+ <div ?hidden=${t.collapsed} class="navigation-content">
443
+ <slot></slot>
444
+ </div>
445
+ </aside>
446
+ `}};de.styles=z`
447
+ :host {
448
+ display: block;
449
+ min-height: 100%;
450
+ }
451
+
452
+ .sidebar-shell {
453
+ background: var(--color-surface-sidebar);
454
+ box-sizing: border-box;
455
+ color: var(--color-text-inverse);
456
+ min-height: 100%;
457
+ padding: var(--size-14) var(--size-10);
458
+ }
459
+
460
+ .brand {
461
+ align-items: center;
462
+ display: flex;
463
+ font-size: var(--font-size-brand);
464
+ font-weight: var(--font-weight-heavy);
465
+ gap: var(--size-5);
466
+ }
467
+
468
+ .brand-mark {
469
+ align-items: center;
470
+ background: var(--color-accent);
471
+ border-radius: var(--radius-control);
472
+ color: var(--color-surface-sidebar);
473
+ display: inline-flex;
474
+ height: var(--size-13);
475
+ justify-content: center;
476
+ width: var(--size-13);
477
+ }
478
+
479
+ button {
480
+ align-items: center;
481
+ background: transparent;
482
+ border: var(--border-width) solid var(--color-border-sidebar-control);
483
+ border-radius: var(--radius-control);
484
+ color: var(--color-text-inverse);
485
+ cursor: pointer;
486
+ display: inline-flex;
487
+ font: inherit;
488
+ height: var(--size-15);
489
+ justify-content: center;
490
+ margin-left: auto;
491
+ padding: var(--size-0);
492
+ width: var(--size-15);
493
+ }
494
+
495
+ button:focus-visible {
496
+ outline: var(--size-2) solid var(--color-accent-secondary);
497
+ outline-offset: var(--size-1);
498
+ }
499
+
500
+ .navigation-content {
501
+ margin-top: var(--size-14);
502
+ }
503
+
504
+ .is-collapsed {
505
+ padding: var(--size-14) var(--size-6);
506
+ }
507
+
508
+ .is-collapsed .brand {
509
+ justify-content: center;
510
+ }
511
+
512
+ .is-collapsed .brand-label,
513
+ .is-collapsed .brand-mark {
514
+ display: none;
515
+ }
516
+
517
+ .is-collapsed button {
518
+ border-color: var(--color-text-tertiary);
519
+ color: var(--color-accent);
520
+ margin-left: var(--size-0);
521
+ }
522
+ `;_t([B({context:xt,subscribe:!0}),D()],de.prototype,"service",2);de=_t([E("kanban-sidebar")],de);var jr=Object.defineProperty,Wr=Object.getOwnPropertyDescriptor,Ct=(t,e,r,s)=>{for(var i=s>1?void 0:s?Wr(e,r):e,n=t.length-1,o;n>=0;n--)(o=t[n])&&(i=(s?o(e,r,i):o(i))||i);return s&&i&&jr(e,r,i),i};const St=Symbol("kanban-tabs-render-service");let ue=class extends I(_){handleSelect(t){const r=t.currentTarget.dataset.tabId;r!==void 0&&(this.service?.selectTab(r),this.dispatchEvent(new CustomEvent("kanban-tabs-select",{bubbles:!0,composed:!0,detail:{tabId:r}})))}getAriaCurrent(t,e){return t===e?"page":"false"}render(){const t=this.service?.tabs.get();return t===void 0?u``:u`
523
+ <nav
524
+ aria-label="Entity views"
525
+ class="entity-tabs"
526
+ >
527
+ ${H(t.tabs,e=>u`
528
+ <button
529
+ aria-current=${this.getAriaCurrent(e.id,t.activeTabId)}
530
+ class=${q({"entity-tab":!0,"is-active":e.id===t.activeTabId})}
531
+ data-tab-id=${e.id}
532
+ @click=${this.handleSelect}
533
+ type="button"
534
+ >
535
+ ${e.label}
536
+ </button>
537
+ `)}
538
+ </nav>
539
+ `}};ue.styles=z`
540
+ :host {
541
+ display: block;
542
+ }
543
+
544
+ .entity-tabs {
545
+ border-bottom: var(--border-width) solid var(--color-border-subtle);
546
+ display: flex;
547
+ gap: var(--size-1);
548
+ overflow-x: auto;
549
+ }
550
+
551
+ .entity-tab {
552
+ background: transparent;
553
+ border: var(--size-0);
554
+ border-bottom: var(--size-1) solid transparent;
555
+ color: var(--color-text-secondary);
556
+ cursor: pointer;
557
+ flex: 0 0 auto;
558
+ font-family: var(--font-family-ui);
559
+ font-size: var(--font-size-control);
560
+ font-weight: var(--font-weight-heavy);
561
+ padding: var(--size-5) var(--size-6);
562
+ }
563
+
564
+ .entity-tab.is-active {
565
+ border-bottom-color: var(--color-text-primary);
566
+ color: var(--color-text-primary);
567
+ }
568
+
569
+ .entity-tab:focus-visible {
570
+ outline: var(--size-1) solid var(--color-accent-secondary);
571
+ outline-offset: var(--size-1);
572
+ }
573
+ `;Ct([B({context:St,subscribe:!0}),D()],ue.prototype,"service",2);ue=Ct([E("kanban-tabs")],ue);const qr={disabled:!1,label:"Create issue",loading:!1,variant:"primary"};class Hr{constructor(){this.activationCount=0,this.button=R(qr)}activate(){this.activationCount+=1}}function Fr(){return new Hr}const Br={items:["Workspace","Initiative","Portable Kanban design system"],label:"Record location"};class Kr{constructor(){this.breadcrumbTrail=R(Br)}}function Vr(){return new Kr}const Gr={author:"R. Lee",canEdit:!0,id:"comment-1",message:"Keep server behavior identical for local and cloud workspaces.",publishedAt:"2026-08-26T09:30:00Z",publishedLabel:"Today at 09:30"};class Zr{constructor(){this.comment=R(Gr),this.deletedCommentIds=[],this.editedComments=[]}deleteComment(e){this.deletedCommentIds.push(e)}editComment(e){this.editedComments.push(e)}}function Jr(){return new Zr}const Qr={expandedNodeIds:["project-agent-issues","epic-platform-foundations","initiative-editable-kanban-board"],navigationLabel:"Project, epic, initiative, and record navigation",nodes:[{children:[{children:[{children:[{current:!0,id:"issue-navigation-tree",kind:"Issue",label:"Implement Navigation tree component"},{id:"issue-board-contract",kind:"Issue",label:"Define the board-server write contract"}],id:"initiative-editable-kanban-board",kind:"Initiative",label:"Editable Kanban board"}],id:"epic-platform-foundations",kind:"Epic",label:"Platform foundations"}],id:"project-agent-issues",kind:"Project",label:"Agent Issues"}]};class Xr{constructor(){this.navigationTree=R(Qr),this.selectedNodeIds=[],this.toggledNodeIds=[]}selectNode(e){this.selectedNodeIds.push(e)}toggleNode(e){this.toggledNodeIds.push(e);const r=this.navigationTree.get(),s=r.expandedNodeIds.includes(e)?r.expandedNodeIds.filter(i=>i!==e):[...r.expandedNodeIds,e];this.navigationTree.set({...r,expandedNodeIds:s})}}function Yr(){return new Xr}const ei={brandLabel:"agent-issues",collapsed:!1,navigationLabel:"Project and initiative navigation"};class ti{constructor(){this.collapsedStates=[],this.sidebar=R(ei)}setCollapsed(e){this.collapsedStates.push(e),this.sidebar.set({...this.sidebar.get(),collapsed:e})}}function ri(){return new ti}const ii={activeTabId:"issues",tabs:[{id:"issues",label:"Issues"},{id:"plans",label:"Plans"},{id:"prds",label:"PRDs"},{id:"adrs",label:"ADRs"},{id:"debt",label:"Debt"},{id:"graph",label:"Graph"},{id:"activity",label:"Activity"}]};class si{constructor(){this.selectedTabIds=[],this.tabs=R(ii)}selectTab(e){this.selectedTabIds.push(e),this.tabs.set({...this.tabs.get(),activeTabId:e})}}function ni(){return new si}const oi={description:"Command controls for primary, secondary, quiet, destructive, and loading actions.",id:"kanban-button",label:"Kanban button",render:()=>u`<kanban-button></kanban-button>`,sectionLabel:"Kanban button fixture"},ai={description:"Record location trail with an identified current record and narrow-screen overflow behavior.",id:"kanban-breadcrumb-trail",label:"Kanban Breadcrumb trail",render:()=>u`<kanban-breadcrumb-trail></kanban-breadcrumb-trail>`,sectionLabel:"Kanban Breadcrumb trail fixture"},ci={description:"A timestamped author message for use in an issue discussion.",id:"kanban-comment-item",label:"Kanban Comment item",render:()=>u`<kanban-comment-item></kanban-comment-item>`,sectionLabel:"Kanban Comment item fixture"},li={description:"Nested project, epic, initiative, and record navigation with service-owned expansion.",id:"kanban-navigation-tree",label:"Kanban Navigation tree",render:()=>u`<kanban-navigation-tree></kanban-navigation-tree>`,sectionLabel:"Kanban Navigation tree fixture"},di={description:"A collapsible layout shell for project and initiative navigation.",id:"kanban-sidebar",label:"Kanban Sidebar",render:()=>u`
574
+ <kanban-sidebar>
575
+ <nav aria-label="Sidebar navigation">
576
+ <strong>Portable Kanban design system</strong>
577
+ <ul>
578
+ <li>Component showcase</li>
579
+ <li>Board read path</li>
580
+ </ul>
581
+ </nav>
582
+ </kanban-sidebar>
583
+ `,sectionLabel:"Kanban Sidebar fixture"},ui={description:"Entity view selection with an active tab state and horizontal narrow-screen overflow.",id:"kanban-tabs",label:"Kanban Tabs",render:()=>u`<kanban-tabs></kanban-tabs>`,sectionLabel:"Kanban Tabs fixture"},ze=[oi,ai,ui,ci,li,di];function Ee(t){return ze.find(e=>e.id===t)}var hi=Object.defineProperty,pi=Object.getOwnPropertyDescriptor,A=(t,e,r,s)=>{for(var i=s>1?void 0:s?pi(e,r):e,n=t.length-1,o;n>=0;n--)(o=t[n])&&(i=(s?o(e,r,i):o(i))||i);return s&&i&&hi(e,r,i),i};let C=class extends _{constructor(){super(...arguments),this.buttonFixtureService=Fr(),this.breadcrumbTrailFixtureService=Vr(),this.tabsFixtureService=ni(),this.commentFixtureService=Jr(),this.navigationTreeFixtureService=Yr(),this.sidebarFixtureService=ri()}handleNavigation(t){const e=t.currentTarget;t.preventDefault(),this.dispatchEvent(new CustomEvent("kanban-navigate",{bubbles:!0,composed:!0,detail:{href:e.href}}))}getSectionLabel(){const t=this.getSelectedCase();return t?t.sectionLabel:"Component catalog"}getCaptionDescription(){const t=this.getSelectedCase();return t?t.description:"Use the component rail to inspect each registered Kanban element in isolation."}getCaptionTitle(){const t=this.getSelectedCase();return t?t.label:"Component catalog"}getNavigationClass(t){return q({"is-active":this.componentId===t})}getNavigationState(t){return this.componentId===t?"page":"false"}getSelectedCase(){return Ee(this.componentId)}getStageClass(){return q({"component-stage":!0,"is-catalog":this.componentId===void 0})}renderSelectedCase(t){const e=Ee(t);return e===void 0?u``:e.render()}render(){return u`
584
+ <nav
585
+ aria-label="Component selector"
586
+ class="component-rail"
587
+ >
588
+ <div class="rail-title">
589
+ <span aria-hidden="true" class="rail-mark">A</span>
590
+ <span>Concept A</span>
591
+ </div>
592
+ <section
593
+ aria-labelledby="registered-components"
594
+ class="rail-group"
595
+ >
596
+ <h2 id="registered-components">Registered components</h2>
597
+ ${H(ze,t=>u`
598
+ <a
599
+ aria-current=${this.getNavigationState(t.id)}
600
+ class=${this.getNavigationClass(t.id)}
601
+ href=${`/components/${t.id}`}
602
+ @click=${this.handleNavigation}
603
+ >
604
+ ${t.label}
605
+ </a>
606
+ `)}
607
+ </section>
608
+ </nav>
609
+ <main class="component-workspace">
610
+ <section class="component-draft">
611
+ <header class="draft-caption">
612
+ <span>Concept A component draft</span>
613
+ <h1>${this.getCaptionTitle()}</h1>
614
+ <p>${this.getCaptionDescription()}</p>
615
+ </header>
616
+ <section
617
+ aria-label=${this.getSectionLabel()}
618
+ class=${this.getStageClass()}
619
+ >
620
+ ${N(this.componentId,t=>this.renderSelectedCase(t),()=>H(ze,t=>u`
621
+ <article class="component-preview">
622
+ <h2>${t.label}</h2>
623
+ ${t.render()}
624
+ </article>
625
+ `))}
626
+ </section>
627
+ </section>
628
+ </main>
629
+ `}};C.styles=z`
630
+ :host {
631
+ background: var(--color-surface-canvas);
632
+ color: var(--color-text-primary);
633
+ display: block;
634
+ font-family: var(--font-family-ui);
635
+ min-height: 100vh;
636
+ }
637
+
638
+ .component-rail {
639
+ background: var(--color-surface-sidebar);
640
+ box-sizing: border-box;
641
+ color: var(--color-text-inverse);
642
+ inset: var(--size-0) auto var(--size-0) var(--size-0);
643
+ overflow-y: auto;
644
+ padding: var(--size-12) var(--size-7);
645
+ position: fixed;
646
+ width: var(--size-104);
647
+ z-index: 1;
648
+ }
649
+
650
+ .rail-title {
651
+ align-items: center;
652
+ display: flex;
653
+ font-size: var(--font-size-brand);
654
+ font-weight: var(--font-weight-heavy);
655
+ gap: var(--size-5);
656
+ letter-spacing: var(--letter-spacing-brand);
657
+ padding: var(--size-0) var(--size-4) var(--size-11);
658
+ text-transform: uppercase;
659
+ }
660
+
661
+ .rail-mark {
662
+ align-items: center;
663
+ background: var(--color-accent);
664
+ border-radius: var(--radius-control);
665
+ color: var(--color-surface-sidebar);
666
+ display: inline-flex;
667
+ font-size: var(--font-size-meta);
668
+ height: var(--size-13);
669
+ justify-content: center;
670
+ width: var(--size-13);
671
+ }
672
+
673
+ .rail-group {
674
+ border-top: var(--border-width) solid var(--color-border-sidebar);
675
+ display: grid;
676
+ gap: var(--size-2);
677
+ margin: var(--size-0);
678
+ padding: var(--size-7) var(--size-0) var(--size-0);
679
+ }
680
+
681
+ .rail-group h2 {
682
+ color: var(--color-text-tertiary);
683
+ font-size: var(--font-size-label);
684
+ font-weight: var(--font-weight-heavy);
685
+ letter-spacing: var(--letter-spacing-label);
686
+ margin: var(--size-0) var(--size-0) var(--size-2);
687
+ padding: var(--size-0) var(--size-4);
688
+ text-transform: uppercase;
689
+ }
690
+
691
+ .rail-group a {
692
+ border-radius: var(--radius-control);
693
+ color: var(--color-text-inverse-muted);
694
+ font-size: var(--font-size-control);
695
+ font-weight: var(--font-weight-strong);
696
+ line-height: var(--line-height-ui);
697
+ padding: var(--size-5) var(--size-4);
698
+ text-decoration: none;
699
+ }
700
+
701
+ .rail-group a:hover {
702
+ background: var(--color-surface-sidebar-hover);
703
+ color: var(--color-surface-panel);
704
+ }
705
+
706
+ .rail-group a.is-active {
707
+ background: var(--color-surface-sidebar-selected);
708
+ color: var(--color-surface-panel);
709
+ }
710
+
711
+ .rail-group a:focus-visible {
712
+ outline: var(--size-1) solid var(--color-accent-secondary);
713
+ outline-offset: var(--size-1);
714
+ }
715
+
716
+ .component-workspace {
717
+ box-sizing: border-box;
718
+ margin-left: var(--size-104);
719
+ min-width: 0;
720
+ }
721
+
722
+ .component-draft {
723
+ align-items: center;
724
+ background: var(--color-surface-preview);
725
+ box-sizing: border-box;
726
+ display: grid;
727
+ min-height: 100vh;
728
+ padding: var(--size-26) var(--size-12);
729
+ }
730
+
731
+ .draft-caption,
732
+ .component-stage {
733
+ width: min(var(--size-560), 100%);
734
+ }
735
+
736
+ .draft-caption {
737
+ color: var(--color-text-secondary);
738
+ margin-bottom: var(--size-9);
739
+ }
740
+
741
+ .draft-caption > span {
742
+ color: var(--color-text-secondary);
743
+ font-size: var(--font-size-meta);
744
+ font-weight: var(--font-weight-heavy);
745
+ letter-spacing: var(--letter-spacing-label);
746
+ text-transform: uppercase;
747
+ }
748
+
749
+ .draft-caption h1 {
750
+ color: var(--color-text-primary);
751
+ font-family: var(--font-family-display);
752
+ font-size: var(--font-size-display);
753
+ font-weight: var(--font-weight-display);
754
+ letter-spacing: var(--size-0);
755
+ line-height: var(--line-height-tight);
756
+ margin: var(--size-2) var(--size-0);
757
+ }
758
+
759
+ .draft-caption p {
760
+ font-size: var(--font-size-body);
761
+ line-height: var(--line-height-body);
762
+ margin: var(--size-0);
763
+ max-width: 68ch;
764
+ }
765
+
766
+ .component-stage {
767
+ align-items: center;
768
+ background: var(--color-surface-canvas);
769
+ border: var(--border-width) solid var(--color-border-preview);
770
+ border-radius: var(--radius-panel);
771
+ box-shadow: var(--shadow-preview);
772
+ box-sizing: border-box;
773
+ display: grid;
774
+ gap: var(--size-12);
775
+ min-height: var(--size-150);
776
+ padding: var(--size-12);
777
+ }
778
+
779
+ .component-stage:not(.is-catalog) {
780
+ justify-items: stretch;
781
+ }
782
+
783
+ .component-stage.is-catalog {
784
+ align-items: stretch;
785
+ grid-template-columns: repeat(auto-fit, minmax(var(--size-140), 1fr));
786
+ }
787
+
788
+ .component-preview {
789
+ background: var(--color-surface-canvas);
790
+ border: var(--border-width) solid var(--color-border-preview);
791
+ border-radius: var(--radius-panel);
792
+ display: grid;
793
+ gap: var(--size-8);
794
+ padding: var(--size-8);
795
+ }
796
+
797
+ .component-preview h2 {
798
+ color: var(--color-text-secondary);
799
+ font-size: var(--font-size-label);
800
+ font-weight: var(--font-weight-heavy);
801
+ letter-spacing: var(--letter-spacing-label);
802
+ margin: var(--size-0);
803
+ text-transform: uppercase;
804
+ }
805
+
806
+ @media (max-width: 47.5rem) {
807
+ .component-rail {
808
+ inset: auto;
809
+ padding: var(--size-8);
810
+ position: static;
811
+ width: auto;
812
+ }
813
+
814
+ .rail-title {
815
+ padding-bottom: var(--size-8);
816
+ }
817
+
818
+ .rail-group {
819
+ grid-template-columns: repeat(auto-fit, minmax(var(--size-80), 1fr));
820
+ }
821
+
822
+ .rail-group h2 {
823
+ grid-column: 1 / -1;
824
+ }
825
+
826
+ .component-workspace {
827
+ margin-left: 0;
828
+ }
829
+
830
+ .component-draft {
831
+ align-items: start;
832
+ padding: var(--size-18) var(--size-9);
833
+ }
834
+ }
835
+
836
+ @media (max-width: 31.25rem) {
837
+ .component-stage {
838
+ padding: var(--size-6);
839
+ }
840
+
841
+ .component-stage.is-catalog {
842
+ grid-template-columns: 1fr;
843
+ }
844
+ }
845
+ `;A([F({context:ft})],C.prototype,"buttonFixtureService",2);A([F({context:gt})],C.prototype,"breadcrumbTrailFixtureService",2);A([F({context:St})],C.prototype,"tabsFixtureService",2);A([F({context:$t})],C.prototype,"commentFixtureService",2);A([F({context:wt})],C.prototype,"navigationTreeFixtureService",2);A([F({context:xt})],C.prototype,"sidebarFixtureService",2);A([pt({type:String})],C.prototype,"componentId",2);C=A([E("kanban-showcase")],C);var vi=Object.getOwnPropertyDescriptor,bi=(t,e,r,s)=>{for(var i=s>1?void 0:s?vi(e,r):e,n=t.length-1,o;n>=0;n--)(o=t[n])&&(i=o(i)||i);return i};const V=R(window.location.pathname);function fi(t){if(t==="/")return{kind:"board"};if(t==="/components")return{kind:"showcase"};if(t.startsWith("/components/")){const e=t.slice(12);return Ee(e)?{componentId:e,kind:"showcase"}:{componentId:e,kind:"showcase-not-found"}}return{kind:"board"}}let Ae=class extends I(_){constructor(){super(...arguments),this.handlePopState=()=>{V.set(window.location.pathname)}}connectedCallback(){super.connectedCallback(),V.set(window.location.pathname),window.addEventListener("popstate",this.handlePopState)}disconnectedCallback(){window.removeEventListener("popstate",this.handlePopState),super.disconnectedCallback()}handleNavigation(t){const e=t.currentTarget;t.preventDefault(),window.history.pushState({},"",e.href),V.set(window.location.pathname)}handleKanbanNavigation(t){window.history.pushState({},"",t.detail.href),V.set(window.location.pathname)}render(){const t=fi(V.get());return Er(t.kind,[["board",()=>u`
846
+ <main class="board-shell">
847
+ <header>
848
+ <h1>Kanban board</h1>
849
+ <a
850
+ @click=${this.handleNavigation}
851
+ href="/components"
852
+ >
853
+ Components
854
+ </a>
855
+ </header>
856
+ <section aria-label="Board">
857
+ <p>Board data will appear here.</p>
858
+ </section>
859
+ </main>
860
+ `],["showcase",()=>u`
861
+ <kanban-showcase
862
+ .componentId=${t.componentId}
863
+ @kanban-navigate=${this.handleKanbanNavigation}
864
+ ></kanban-showcase>
865
+ `],["showcase-not-found",()=>u`
866
+ <main class="not-found">
867
+ <h1>Component unavailable</h1>
868
+ <p>${t.componentId} is not in the component catalog.</p>
869
+ <a
870
+ @click=${this.handleNavigation}
871
+ href="/components"
872
+ >
873
+ Return to components
874
+ </a>
875
+ </main>
876
+ `]])}};Ae.styles=z`
877
+ :host {
878
+ display: block;
879
+ min-height: 100vh;
880
+ }
881
+
882
+ .board-shell,
883
+ .not-found {
884
+ background: var(--color-surface-canvas);
885
+ color: var(--color-text-primary);
886
+ font-family: var(--font-family-ui);
887
+ min-height: 100vh;
888
+ padding: var(--size-12);
889
+ }
890
+
891
+ .board-shell header {
892
+ align-items: center;
893
+ display: flex;
894
+ justify-content: space-between;
895
+ }
896
+
897
+ .board-shell h1,
898
+ .not-found h1 {
899
+ font-family: var(--font-family-display);
900
+ font-size: var(--font-size-display);
901
+ font-weight: var(--font-weight-display);
902
+ line-height: var(--line-height-tight);
903
+ margin: var(--size-0);
904
+ }
905
+
906
+ .board-shell a,
907
+ .not-found a {
908
+ color: var(--color-status-success-text);
909
+ font-weight: var(--font-weight-strong);
910
+ }
911
+
912
+ .board-shell section {
913
+ background: var(--color-surface-panel);
914
+ border: var(--border-width) solid var(--color-border-subtle);
915
+ border-radius: var(--radius-panel);
916
+ margin-top: var(--size-16);
917
+ min-height: var(--size-125);
918
+ padding: var(--size-12);
919
+ }
920
+ `;Ae=bi([E("kanban-app")],Ae);const mi=document.querySelector("#app");mi?.replaceChildren(document.createElement("kanban-app"));