agent-issues 0.0.121 → 0.0.127
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.
- package/dist/build-info.json +3 -0
- package/dist/cli.js +97746 -26
- package/kanban/dist/assets/index-CIAg6qj5.css +1 -0
- package/kanban/dist/assets/index-DaYQjJS7.js +920 -0
- package/kanban/dist/index.html +13 -0
- package/package.json +12 -11
- package/site/dist/assets/{index-Cx-fLU3e.js → index-BRvRYF7I.js} +195 -146
- package/site/dist/index.html +1 -1
- package/dist/agent-installer.d.ts +0 -49
- package/dist/agent-installer.js +0 -171
- package/dist/agent-installer.js.map +0 -1
- package/dist/auth-session.d.ts +0 -40
- package/dist/auth-session.js +0 -107
- package/dist/auth-session.js.map +0 -1
- package/dist/body-backfill.d.ts +0 -26
- package/dist/body-backfill.js +0 -219
- package/dist/body-backfill.js.map +0 -1
- package/dist/build-mode.d.ts +0 -1
- package/dist/build-mode.js +0 -1
- package/dist/build-mode.js.map +0 -1
- package/dist/cli/commands/auth.d.ts +0 -61
- package/dist/cli/commands/auth.js +0 -134
- package/dist/cli/commands/auth.js.map +0 -1
- package/dist/cli/commands/backfill.d.ts +0 -8
- package/dist/cli/commands/backfill.js +0 -36
- package/dist/cli/commands/backfill.js.map +0 -1
- package/dist/cli/commands/comments.d.ts +0 -34
- package/dist/cli/commands/comments.js +0 -124
- package/dist/cli/commands/comments.js.map +0 -1
- package/dist/cli/commands/context.d.ts +0 -13
- package/dist/cli/commands/context.js +0 -156
- package/dist/cli/commands/context.js.map +0 -1
- package/dist/cli/commands/entities.d.ts +0 -91
- package/dist/cli/commands/entities.js +0 -420
- package/dist/cli/commands/entities.js.map +0 -1
- package/dist/cli/commands/export.d.ts +0 -20
- package/dist/cli/commands/export.js +0 -98
- package/dist/cli/commands/export.js.map +0 -1
- package/dist/cli/commands/fallback.d.ts +0 -6
- package/dist/cli/commands/fallback.js +0 -10
- package/dist/cli/commands/fallback.js.map +0 -1
- package/dist/cli/commands/handoff.d.ts +0 -1
- package/dist/cli/commands/handoff.js +0 -2
- package/dist/cli/commands/handoff.js.map +0 -1
- package/dist/cli/commands/installers.d.ts +0 -37
- package/dist/cli/commands/installers.js +0 -78
- package/dist/cli/commands/installers.js.map +0 -1
- package/dist/cli/commands/kanban.d.ts +0 -8
- package/dist/cli/commands/kanban.js +0 -83
- package/dist/cli/commands/kanban.js.map +0 -1
- package/dist/cli/commands/meta.d.ts +0 -14
- package/dist/cli/commands/meta.js +0 -33
- package/dist/cli/commands/meta.js.map +0 -1
- package/dist/cli/commands/plan-entries.d.ts +0 -30
- package/dist/cli/commands/plan-entries.js +0 -94
- package/dist/cli/commands/plan-entries.js.map +0 -1
- package/dist/cli/commands/site.d.ts +0 -29
- package/dist/cli/commands/site.js +0 -89
- package/dist/cli/commands/site.js.map +0 -1
- package/dist/cli/commands/sql.d.ts +0 -6
- package/dist/cli/commands/sql.js +0 -21
- package/dist/cli/commands/sql.js.map +0 -1
- package/dist/cli/commands/synchronize.d.ts +0 -12
- package/dist/cli/commands/synchronize.js +0 -31
- package/dist/cli/commands/synchronize.js.map +0 -1
- package/dist/cli/commands/tenants.d.ts +0 -29
- package/dist/cli/commands/tenants.js +0 -101
- package/dist/cli/commands/tenants.js.map +0 -1
- package/dist/cli/index.d.ts +0 -4
- package/dist/cli/index.js +0 -120
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/renderers.d.ts +0 -250
- package/dist/cli/renderers.js +0 -286
- package/dist/cli/renderers.js.map +0 -1
- package/dist/cli/shared.d.ts +0 -97
- package/dist/cli/shared.js +0 -192
- package/dist/cli/shared.js.map +0 -1
- package/dist/cli.d.ts +0 -11
- package/dist/cli.js.map +0 -1
- package/dist/context-cli.d.ts +0 -16
- package/dist/context-cli.js +0 -131
- package/dist/context-cli.js.map +0 -1
- package/dist/daemon/daemon-lifecycle.d.ts +0 -1
- package/dist/daemon/daemon-lifecycle.js +0 -2
- package/dist/daemon/daemon-lifecycle.js.map +0 -1
- package/dist/daemon/daemon-main.d.ts +0 -14
- package/dist/daemon/daemon-main.js +0 -30
- package/dist/daemon/daemon-main.js.map +0 -1
- package/dist/daemon/local-daemon-store.d.ts +0 -21
- package/dist/daemon/local-daemon-store.js +0 -31
- package/dist/daemon/local-daemon-store.js.map +0 -1
- package/dist/entity-projection.d.ts +0 -141
- package/dist/entity-projection.js +0 -147
- package/dist/entity-projection.js.map +0 -1
- package/dist/entra-device-login.d.ts +0 -12
- package/dist/entra-device-login.js +0 -40
- package/dist/entra-device-login.js.map +0 -1
- package/dist/export-files.d.ts +0 -24
- package/dist/export-files.js +0 -230
- package/dist/export-files.js.map +0 -1
- package/dist/export-markdown.d.ts +0 -24
- package/dist/export-markdown.js +0 -343
- package/dist/export-markdown.js.map +0 -1
- package/dist/help.d.ts +0 -112
- package/dist/help.js +0 -1430
- package/dist/help.js.map +0 -1
- package/dist/kanban/assets.d.ts +0 -3
- package/dist/kanban/assets.js +0 -37
- package/dist/kanban/assets.js.map +0 -1
- package/dist/kanban/index.d.ts +0 -1
- package/dist/kanban/index.js +0 -2
- package/dist/kanban/index.js.map +0 -1
- package/dist/kanban/server.d.ts +0 -28
- package/dist/kanban/server.js +0 -118
- package/dist/kanban/server.js.map +0 -1
- package/dist/mcp-installer.d.ts +0 -32
- package/dist/mcp-installer.js +0 -118
- package/dist/mcp-installer.js.map +0 -1
- package/dist/mcp-server/index.d.ts +0 -11
- package/dist/mcp-server/index.js +0 -504
- package/dist/mcp-server/index.js.map +0 -1
- package/dist/mcp-server/index.test.d.ts +0 -1
- package/dist/mcp-server/index.test.js +0 -746
- package/dist/mcp-server/index.test.js.map +0 -1
- package/dist/mcp-server/mcp-tool-audit.d.ts +0 -6
- package/dist/mcp-server/mcp-tool-audit.js +0 -47
- package/dist/mcp-server/mcp-tool-audit.js.map +0 -1
- package/dist/mcp-server/stdio.d.ts +0 -2
- package/dist/mcp-server/stdio.js +0 -7
- package/dist/mcp-server/stdio.js.map +0 -1
- package/dist/mcp.d.ts +0 -2
- package/dist/mcp.js +0 -19
- package/dist/mcp.js.map +0 -1
- package/dist/open-storage-driver.d.ts +0 -55
- package/dist/open-storage-driver.js +0 -73
- package/dist/open-storage-driver.js.map +0 -1
- package/dist/open-synchronize-stores.d.ts +0 -24
- package/dist/open-synchronize-stores.js +0 -34
- package/dist/open-synchronize-stores.js.map +0 -1
- package/dist/project-identity.d.ts +0 -23
- package/dist/project-identity.js +0 -121
- package/dist/project-identity.js.map +0 -1
- package/dist/runtime-access-boundary.d.ts +0 -7
- package/dist/runtime-access-boundary.js +0 -182
- package/dist/runtime-access-boundary.js.map +0 -1
- package/dist/service-discovery.d.ts +0 -10
- package/dist/service-discovery.js +0 -64
- package/dist/service-discovery.js.map +0 -1
- package/dist/site/assets.d.ts +0 -4
- package/dist/site/assets.js +0 -46
- package/dist/site/assets.js.map +0 -1
- package/dist/site/cloud-events-relay.d.ts +0 -16
- package/dist/site/cloud-events-relay.js +0 -78
- package/dist/site/cloud-events-relay.js.map +0 -1
- package/dist/site/index.d.ts +0 -1
- package/dist/site/index.js +0 -2
- package/dist/site/index.js.map +0 -1
- package/dist/site/server.d.ts +0 -42
- package/dist/site/server.js +0 -632
- package/dist/site/server.js.map +0 -1
- package/dist/skill-installer.d.ts +0 -35
- package/dist/skill-installer.js +0 -180
- package/dist/skill-installer.js.map +0 -1
- package/dist/vitest-setup.d.ts +0 -1
- package/dist/vitest-setup.js +0 -7
- 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"));
|