botnote 0.1.36 → 0.1.38
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/db/schema.d.ts +3 -1
- package/dist/db/schema.js +2 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/mcp/http-client.d.ts +17 -1
- package/dist/mcp/http-client.js +14 -0
- package/dist/mcp/http-client.js.map +1 -1
- package/dist/mcp/server.js +101 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/rest/routes.js +30 -1
- package/dist/rest/routes.js.map +1 -1
- package/dist/service/feedback.d.ts +12 -0
- package/dist/service/feedback.js +45 -0
- package/dist/service/feedback.js.map +1 -0
- package/dist/service/index.d.ts +1 -0
- package/dist/service/index.js +1 -0
- package/dist/service/index.js.map +1 -1
- package/dist/service/search.js +1 -0
- package/dist/service/search.js.map +1 -1
- package/dist/service/types.d.ts +58 -10
- package/dist/service/types.js +21 -1
- package/dist/service/types.js.map +1 -1
- package/package.json +1 -1
- package/web/dist/assets/{index-CMxxEyK8.js → index-Cu1LYblO.js} +2 -2
- package/web/dist/assets/{index-BtZ_Me98.css → index-D-qUm124.css} +1 -1
- package/web/dist/index.html +2 -2
|
@@ -461,8 +461,8 @@ Error generating stack: `+v.message+`
|
|
|
461
461
|
`,...s.current()});return/^[\t ]/.test(h)&&(h=xc(h.charCodeAt(0))+h.slice(1)),h=h?l+" "+h:l,t.options.closeAtx&&(h+=" "+l),u(),o(),h}Kj.peek=ZV;function Kj(n){return n.value||""}function ZV(){return"<"}Jj.peek=XV;function Jj(n,e,t,r){const i=W0(t),s=i==='"'?"Quote":"Apostrophe",l=t.enter("image");let o=t.enter("label");const u=t.createTracker(r);let h=u.move("![");return h+=u.move(t.safe(n.alt,{before:h,after:"]",...u.current()})),h+=u.move("]("),o(),!n.url&&n.title||/[\0- \u007F]/.test(n.url)?(o=t.enter("destinationLiteral"),h+=u.move("<"),h+=u.move(t.safe(n.url,{before:h,after:">",...u.current()})),h+=u.move(">")):(o=t.enter("destinationRaw"),h+=u.move(t.safe(n.url,{before:h,after:n.title?" ":")",...u.current()}))),o(),n.title&&(o=t.enter(`title${s}`),h+=u.move(" "+i),h+=u.move(t.safe(n.title,{before:h,after:i,...u.current()})),h+=u.move(i),o()),h+=u.move(")"),l(),h}function XV(){return"!"}eE.peek=BV;function eE(n,e,t,r){const i=n.referenceType,s=t.enter("imageReference");let l=t.enter("label");const o=t.createTracker(r);let u=o.move("![");const h=t.safe(n.alt,{before:u,after:"]",...o.current()});u+=o.move(h+"]["),l();const f=t.stack;t.stack=[],l=t.enter("reference");const p=t.safe(t.associationId(n),{before:u,after:"]",...o.current()});return l(),t.stack=f,s(),i==="full"||!h||h!==p?u+=o.move(p+"]"):i==="shortcut"?u=u.slice(0,-1):u+=o.move("]"),u}function BV(){return"!"}tE.peek=WV;function tE(n,e,t){let r=n.value||"",i="`",s=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++s<t.unsafe.length;){const l=t.unsafe[s],o=t.compilePattern(l);let u;if(l.atBreak)for(;u=o.exec(r);){let h=u.index;r.charCodeAt(h)===10&&r.charCodeAt(h-1)===13&&h--,r=r.slice(0,h)+" "+r.slice(u.index+1)}}return i+r+i}function WV(){return"`"}function nE(n,e){const t=N0(n);return!!(!e.options.resourceLink&&n.url&&!n.title&&n.children&&n.children.length===1&&n.children[0].type==="text"&&(t===n.url||"mailto:"+t===n.url)&&/^[a-z][a-z+.-]+:/i.test(n.url)&&!/[\0- <>\u007F]/.test(n.url))}rE.peek=qV;function rE(n,e,t,r){const i=W0(t),s=i==='"'?"Quote":"Apostrophe",l=t.createTracker(r);let o,u;if(nE(n,t)){const f=t.stack;t.stack=[],o=t.enter("autolink");let p=l.move("<");return p+=l.move(t.containerPhrasing(n,{before:p,after:">",...l.current()})),p+=l.move(">"),o(),t.stack=f,p}o=t.enter("link"),u=t.enter("label");let h=l.move("[");return h+=l.move(t.containerPhrasing(n,{before:h,after:"](",...l.current()})),h+=l.move("]("),u(),!n.url&&n.title||/[\0- \u007F]/.test(n.url)?(u=t.enter("destinationLiteral"),h+=l.move("<"),h+=l.move(t.safe(n.url,{before:h,after:">",...l.current()})),h+=l.move(">")):(u=t.enter("destinationRaw"),h+=l.move(t.safe(n.url,{before:h,after:n.title?" ":")",...l.current()}))),u(),n.title&&(u=t.enter(`title${s}`),h+=l.move(" "+i),h+=l.move(t.safe(n.title,{before:h,after:i,...l.current()})),h+=l.move(i),u()),h+=l.move(")"),o(),h}function qV(n,e,t){return nE(n,t)?"<":"["}iE.peek=VV;function iE(n,e,t,r){const i=n.referenceType,s=t.enter("linkReference");let l=t.enter("label");const o=t.createTracker(r);let u=o.move("[");const h=t.containerPhrasing(n,{before:u,after:"]",...o.current()});u+=o.move(h+"]["),l();const f=t.stack;t.stack=[],l=t.enter("reference");const p=t.safe(t.associationId(n),{before:u,after:"]",...o.current()});return l(),t.stack=f,s(),i==="full"||!h||h!==p?u+=o.move(p+"]"):i==="shortcut"?u=u.slice(0,-1):u+=o.move("]"),u}function VV(){return"["}function q0(n){const e=n.options.bullet||"*";if(e!=="*"&&e!=="+"&&e!=="-")throw new Error("Cannot serialize items with `"+e+"` for `options.bullet`, expected `*`, `+`, or `-`");return e}function FV(n){const e=q0(n),t=n.options.bulletOther;if(!t)return e==="*"?"-":"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(t===e)throw new Error("Expected `bullet` (`"+e+"`) and `bulletOther` (`"+t+"`) to be different");return t}function YV(n){const e=n.options.bulletOrdered||".";if(e!=="."&&e!==")")throw new Error("Cannot serialize items with `"+e+"` for `options.bulletOrdered`, expected `.` or `)`");return e}function sE(n){const e=n.options.rule||"*";if(e!=="*"&&e!=="-"&&e!=="_")throw new Error("Cannot serialize rules with `"+e+"` for `options.rule`, expected `*`, `-`, or `_`");return e}function UV(n,e,t,r){const i=t.enter("list"),s=t.bulletCurrent;let l=n.ordered?YV(t):q0(t);const o=n.ordered?l==="."?")":".":FV(t);let u=e&&t.bulletLastUsed?l===t.bulletLastUsed:!1;if(!n.ordered){const f=n.children?n.children[0]:void 0;if((l==="*"||l==="-")&&f&&(!f.children||!f.children[0])&&t.stack[t.stack.length-1]==="list"&&t.stack[t.stack.length-2]==="listItem"&&t.stack[t.stack.length-3]==="list"&&t.stack[t.stack.length-4]==="listItem"&&t.indexStack[t.indexStack.length-1]===0&&t.indexStack[t.indexStack.length-2]===0&&t.indexStack[t.indexStack.length-3]===0&&(u=!0),sE(t)===l&&f){let p=-1;for(;++p<n.children.length;){const m=n.children[p];if(m&&m.type==="listItem"&&m.children&&m.children[0]&&m.children[0].type==="thematicBreak"){u=!0;break}}}}u&&(l=o),t.bulletCurrent=l;const h=t.containerFlow(n,r);return t.bulletLastUsed=l,t.bulletCurrent=s,i(),h}function GV(n){const e=n.options.listItemIndent||"one";if(e!=="tab"&&e!=="one"&&e!=="mixed")throw new Error("Cannot serialize items with `"+e+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return e}function HV(n,e,t,r){const i=GV(t);let s=t.bulletCurrent||q0(t);e&&e.type==="list"&&e.ordered&&(s=(typeof e.start=="number"&&e.start>-1?e.start:1)+(t.options.incrementListMarker===!1?0:e.children.indexOf(n))+s);let l=s.length+1;(i==="tab"||i==="mixed"&&(e&&e.type==="list"&&e.spread||n.spread))&&(l=Math.ceil(l/4)*4);const o=t.createTracker(r);o.move(s+" ".repeat(l-s.length)),o.shift(l);const u=t.enter("listItem"),h=t.indentLines(t.containerFlow(n,o.current()),f);return u(),h;function f(p,m,y){return m?(y?"":" ".repeat(l))+p:(y?s:s+" ".repeat(l-s.length))+p}}function KV(n,e,t,r){const i=t.enter("paragraph"),s=t.enter("phrasing"),l=t.containerPhrasing(n,r);return s(),i(),l}const JV=hp(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function e8(n,e,t,r){return(n.children.some(function(l){return JV(l)})?t.containerPhrasing:t.containerFlow).call(t,n,r)}function t8(n){const e=n.options.strong||"*";if(e!=="*"&&e!=="_")throw new Error("Cannot serialize strong with `"+e+"` for `options.strong`, expected `*`, or `_`");return e}lE.peek=n8;function lE(n,e,t,r){const i=t8(t),s=t.enter("strong"),l=t.createTracker(r),o=l.move(i+i);let u=l.move(t.containerPhrasing(n,{after:i,before:o,...l.current()}));const h=u.charCodeAt(0),f=Nd(r.before.charCodeAt(r.before.length-1),h,i);f.inside&&(u=xc(h)+u.slice(1));const p=u.charCodeAt(u.length-1),m=Nd(r.after.charCodeAt(0),p,i);m.inside&&(u=u.slice(0,-1)+xc(p));const y=l.move(i+i);return s(),t.attentionEncodeSurroundingInfo={after:m.outside,before:f.outside},o+u+y}function n8(n,e,t){return t.options.strong||"*"}function r8(n,e,t,r){return t.safe(n.value,r)}function i8(n){const e=n.options.ruleRepetition||3;if(e<3)throw new Error("Cannot serialize rules with repetition `"+e+"` for `options.ruleRepetition`, expected `3` or more");return e}function s8(n,e,t){const r=(sE(t)+(t.options.ruleSpaces?" ":"")).repeat(i8(t));return t.options.ruleSpaces?r.slice(0,-1):r}const oE={blockquote:$V,break:LP,code:RV,definition:LV,emphasis:Hj,hardBreak:LP,heading:zV,html:Kj,image:Jj,imageReference:eE,inlineCode:tE,link:rE,linkReference:iE,list:UV,listItem:HV,paragraph:KV,root:e8,strong:lE,text:r8,thematicBreak:s8};function l8(){return{enter:{table:o8,tableData:_P,tableHeader:_P,tableRow:u8},exit:{codeText:c8,table:a8,tableData:xO,tableHeader:xO,tableRow:xO}}}function o8(n){const e=n._align;this.enter({type:"table",align:e.map(function(t){return t==="none"?null:t}),children:[]},n),this.data.inTable=!0}function a8(n){this.exit(n),this.data.inTable=void 0}function u8(n){this.enter({type:"tableRow",children:[]},n)}function xO(n){this.exit(n)}function _P(n){this.enter({type:"tableCell",children:[]},n)}function c8(n){let e=this.resume();this.data.inTable&&(e=e.replace(/\\([\\|])/g,h8));const t=this.stack[this.stack.length-1];t.type,t.value=e,this.exit(n)}function h8(n,e){return e==="|"?e:n}function f8(n){const e=n||{},t=e.tableCellPadding,r=e.tablePipeAlign,i=e.stringLength,s=t?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:`
|
|
462
462
|
`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:m,table:l,tableCell:u,tableRow:o}};function l(y,k,b,w){return h(f(y,b,w),y.align)}function o(y,k,b,w){const S=p(y,b,w),Q=h([S]);return Q.slice(0,Q.indexOf(`
|
|
463
463
|
`))}function u(y,k,b,w){const S=b.enter("tableCell"),Q=b.enter("phrasing"),$=b.containerPhrasing(y,{...w,before:s,after:s});return Q(),S(),$}function h(y,k){return CV(y,{align:k,alignDelimiters:r,padding:t,stringLength:i})}function f(y,k,b){const w=y.children;let S=-1;const Q=[],$=k.enter("table");for(;++S<w.length;)Q[S]=p(w[S],k,b);return $(),Q}function p(y,k,b){const w=y.children;let S=-1;const Q=[],$=k.enter("tableRow");for(;++S<w.length;)Q[S]=u(w[S],y,k,b);return $(),Q}function m(y,k,b){let w=oE.inlineCode(y,k,b);return b.stack.includes("tableCell")&&(w=w.replace(/\|/g,"\\$&")),w}}function d8(){return{exit:{taskListCheckValueChecked:DP,taskListCheckValueUnchecked:DP,paragraph:m8}}}function p8(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:g8}}}function DP(n){const e=this.stack[this.stack.length-2];e.type,e.checked=n.type==="taskListCheckValueChecked"}function m8(n){const e=this.stack[this.stack.length-2];if(e&&e.type==="listItem"&&typeof e.checked=="boolean"){const t=this.stack[this.stack.length-1];t.type;const r=t.children[0];if(r&&r.type==="text"){const i=e.children;let s=-1,l;for(;++s<i.length;){const o=i[s];if(o.type==="paragraph"){l=o;break}}l===t&&(r.value=r.value.slice(1),r.value.length===0?t.children.shift():t.position&&r.position&&typeof r.position.start.offset=="number"&&(r.position.start.column++,r.position.start.offset++,t.position.start=Object.assign({},r.position.start)))}}this.exit(n)}function g8(n,e,t,r){const i=n.children[0],s=typeof n.checked=="boolean"&&i&&i.type==="paragraph",l="["+(n.checked?"x":" ")+"] ",o=t.createTracker(r);s&&o.move(l);let u=oE.listItem(n,e,t,{...r,...o.current()});return s&&(u=u.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,h)),u;function h(f){return f+l}}function O8(){return[Uq(),gV(),kV(),l8(),d8()]}function y8(n){return{extensions:[Gq(),OV(n),vV(),f8(n),p8()]}}const x8={tokenize:P8,partial:!0},aE={tokenize:C8,partial:!0},uE={tokenize:Q8,partial:!0},cE={tokenize:$8,partial:!0},k8={tokenize:T8,partial:!0},hE={name:"wwwAutolink",tokenize:w8,previous:dE},fE={name:"protocolAutolink",tokenize:S8,previous:pE},Ui={name:"emailAutolink",tokenize:b8,previous:mE},bi={};function v8(){return{text:bi}}let fl=48;for(;fl<123;)bi[fl]=Ui,fl++,fl===58?fl=65:fl===91&&(fl=97);bi[43]=Ui;bi[45]=Ui;bi[46]=Ui;bi[95]=Ui;bi[72]=[Ui,fE];bi[104]=[Ui,fE];bi[87]=[Ui,hE];bi[119]=[Ui,hE];function b8(n,e,t){const r=this;let i,s;return l;function l(p){return!ax(p)||!mE.call(r,r.previous)||V0(r.events)?t(p):(n.enter("literalAutolink"),n.enter("literalAutolinkEmail"),o(p))}function o(p){return ax(p)?(n.consume(p),o):p===64?(n.consume(p),u):t(p)}function u(p){return p===46?n.check(k8,f,h)(p):p===45||p===95||mn(p)?(s=!0,n.consume(p),u):f(p)}function h(p){return n.consume(p),i=!0,u}function f(p){return s&&i&&Sn(r.previous)?(n.exit("literalAutolinkEmail"),n.exit("literalAutolink"),e(p)):t(p)}}function w8(n,e,t){const r=this;return i;function i(l){return l!==87&&l!==119||!dE.call(r,r.previous)||V0(r.events)?t(l):(n.enter("literalAutolink"),n.enter("literalAutolinkWww"),n.check(x8,n.attempt(aE,n.attempt(uE,s),t),t)(l))}function s(l){return n.exit("literalAutolinkWww"),n.exit("literalAutolink"),e(l)}}function S8(n,e,t){const r=this;let i="",s=!1;return l;function l(p){return(p===72||p===104)&&pE.call(r,r.previous)&&!V0(r.events)?(n.enter("literalAutolink"),n.enter("literalAutolinkHttp"),i+=String.fromCodePoint(p),n.consume(p),o):t(p)}function o(p){if(Sn(p)&&i.length<5)return i+=String.fromCodePoint(p),n.consume(p),o;if(p===58){const m=i.toLowerCase();if(m==="http"||m==="https")return n.consume(p),u}return t(p)}function u(p){return p===47?(n.consume(p),s?h:(s=!0,u)):t(p)}function h(p){return p===null||Md(p)||ft(p)||zl(p)||ap(p)?t(p):n.attempt(aE,n.attempt(uE,f),t)(p)}function f(p){return n.exit("literalAutolinkHttp"),n.exit("literalAutolink"),e(p)}}function P8(n,e,t){let r=0;return i;function i(l){return(l===87||l===119)&&r<3?(r++,n.consume(l),i):l===46&&r===3?(n.consume(l),s):t(l)}function s(l){return l===null?t(l):e(l)}}function C8(n,e,t){let r,i,s;return l;function l(h){return h===46||h===95?n.check(cE,u,o)(h):h===null||ft(h)||zl(h)||h!==45&&ap(h)?u(h):(s=!0,n.consume(h),l)}function o(h){return h===95?r=!0:(i=r,r=void 0),n.consume(h),l}function u(h){return i||r||!s?t(h):e(h)}}function Q8(n,e){let t=0,r=0;return i;function i(l){return l===40?(t++,n.consume(l),i):l===41&&r<t?s(l):l===33||l===34||l===38||l===39||l===41||l===42||l===44||l===46||l===58||l===59||l===60||l===63||l===93||l===95||l===126?n.check(cE,e,s)(l):l===null||ft(l)||zl(l)?e(l):(n.consume(l),i)}function s(l){return l===41&&r++,n.consume(l),i}}function $8(n,e,t){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(n.consume(o),r):o===38?(n.consume(o),s):o===93?(n.consume(o),i):o===60||o===null||ft(o)||zl(o)?e(o):t(o)}function i(o){return o===null||o===40||o===91||ft(o)||zl(o)?e(o):r(o)}function s(o){return Sn(o)?l(o):t(o)}function l(o){return o===59?(n.consume(o),r):Sn(o)?(n.consume(o),l):t(o)}}function T8(n,e,t){return r;function r(s){return n.consume(s),i}function i(s){return mn(s)?t(s):e(s)}}function dE(n){return n===null||n===40||n===42||n===95||n===91||n===93||n===126||ft(n)}function pE(n){return!Sn(n)}function mE(n){return!(n===47||ax(n))}function ax(n){return n===43||n===45||n===46||n===95||mn(n)}function V0(n){let e=n.length,t=!1;for(;e--;){const r=n[e][1];if((r.type==="labelLink"||r.type==="labelImage")&&!r._balanced){t=!0;break}if(r._gfmAutolinkLiteralWalkedInto){t=!1;break}}return n.length>0&&!t&&(n[n.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),t}const j8={tokenize:D8,partial:!0};function E8(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:N8,continuation:{tokenize:L8},exit:_8}},text:{91:{name:"gfmFootnoteCall",tokenize:R8},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:M8,resolveTo:A8}}}}function M8(n,e,t){const r=this;let i=r.events.length;const s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let l;for(;i--;){const u=r.events[i][1];if(u.type==="labelImage"){l=u;break}if(u.type==="gfmFootnoteCall"||u.type==="labelLink"||u.type==="label"||u.type==="image"||u.type==="link")break}return o;function o(u){if(!l||!l._balanced)return t(u);const h=zr(r.sliceSerialize({start:l.end,end:r.now()}));return h.codePointAt(0)!==94||!s.includes(h.slice(1))?t(u):(n.enter("gfmFootnoteCallLabelMarker"),n.consume(u),n.exit("gfmFootnoteCallLabelMarker"),e(u))}}function A8(n,e){let t=n.length;for(;t--;)if(n[t][1].type==="labelImage"&&n[t][0]==="enter"){n[t][1];break}n[t+1][1].type="data",n[t+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},n[t+3][1].start),end:Object.assign({},n[n.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},n[t+3][1].end),end:Object.assign({},n[t+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const s={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},n[n.length-1][1].start)},l={type:"chunkString",contentType:"string",start:Object.assign({},s.start),end:Object.assign({},s.end)},o=[n[t+1],n[t+2],["enter",r,e],n[t+3],n[t+4],["enter",i,e],["exit",i,e],["enter",s,e],["enter",l,e],["exit",l,e],["exit",s,e],n[n.length-2],n[n.length-1],["exit",r,e]];return n.splice(t,n.length-t+1,...o),n}function R8(n,e,t){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s=0,l;return o;function o(p){return n.enter("gfmFootnoteCall"),n.enter("gfmFootnoteCallLabelMarker"),n.consume(p),n.exit("gfmFootnoteCallLabelMarker"),u}function u(p){return p!==94?t(p):(n.enter("gfmFootnoteCallMarker"),n.consume(p),n.exit("gfmFootnoteCallMarker"),n.enter("gfmFootnoteCallString"),n.enter("chunkString").contentType="string",h)}function h(p){if(s>999||p===93&&!l||p===null||p===91||ft(p))return t(p);if(p===93){n.exit("chunkString");const m=n.exit("gfmFootnoteCallString");return i.includes(zr(r.sliceSerialize(m)))?(n.enter("gfmFootnoteCallLabelMarker"),n.consume(p),n.exit("gfmFootnoteCallLabelMarker"),n.exit("gfmFootnoteCall"),e):t(p)}return ft(p)||(l=!0),s++,n.consume(p),p===92?f:h}function f(p){return p===91||p===92||p===93?(n.consume(p),s++,h):h(p)}}function N8(n,e,t){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s,l=0,o;return u;function u(k){return n.enter("gfmFootnoteDefinition")._container=!0,n.enter("gfmFootnoteDefinitionLabel"),n.enter("gfmFootnoteDefinitionLabelMarker"),n.consume(k),n.exit("gfmFootnoteDefinitionLabelMarker"),h}function h(k){return k===94?(n.enter("gfmFootnoteDefinitionMarker"),n.consume(k),n.exit("gfmFootnoteDefinitionMarker"),n.enter("gfmFootnoteDefinitionLabelString"),n.enter("chunkString").contentType="string",f):t(k)}function f(k){if(l>999||k===93&&!o||k===null||k===91||ft(k))return t(k);if(k===93){n.exit("chunkString");const b=n.exit("gfmFootnoteDefinitionLabelString");return s=zr(r.sliceSerialize(b)),n.enter("gfmFootnoteDefinitionLabelMarker"),n.consume(k),n.exit("gfmFootnoteDefinitionLabelMarker"),n.exit("gfmFootnoteDefinitionLabel"),m}return ft(k)||(o=!0),l++,n.consume(k),k===92?p:f}function p(k){return k===91||k===92||k===93?(n.consume(k),l++,f):f(k)}function m(k){return k===58?(n.enter("definitionMarker"),n.consume(k),n.exit("definitionMarker"),i.includes(s)||i.push(s),Ge(n,y,"gfmFootnoteDefinitionWhitespace")):t(k)}function y(k){return e(k)}}function L8(n,e,t){return n.check(Dc,e,n.attempt(j8,e,t))}function _8(n){n.exit("gfmFootnoteDefinition")}function D8(n,e,t){const r=this;return Ge(n,i,"gfmFootnoteDefinitionIndent",5);function i(s){const l=r.events[r.events.length-1];return l&&l[1].type==="gfmFootnoteDefinitionIndent"&&l[2].sliceSerialize(l[1],!0).length===4?e(s):t(s)}}function I8(n){let t=(n||{}).singleTilde;const r={name:"strikethrough",tokenize:s,resolveAll:i};return t==null&&(t=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(l,o){let u=-1;for(;++u<l.length;)if(l[u][0]==="enter"&&l[u][1].type==="strikethroughSequenceTemporary"&&l[u][1]._close){let h=u;for(;h--;)if(l[h][0]==="exit"&&l[h][1].type==="strikethroughSequenceTemporary"&&l[h][1]._open&&l[u][1].end.offset-l[u][1].start.offset===l[h][1].end.offset-l[h][1].start.offset){l[u][1].type="strikethroughSequence",l[h][1].type="strikethroughSequence";const f={type:"strikethrough",start:Object.assign({},l[h][1].start),end:Object.assign({},l[u][1].end)},p={type:"strikethroughText",start:Object.assign({},l[h][1].end),end:Object.assign({},l[u][1].start)},m=[["enter",f,o],["enter",l[h][1],o],["exit",l[h][1],o],["enter",p,o]],y=o.parser.constructs.insideSpan.null;y&&ur(m,m.length,0,up(y,l.slice(h+1,u),o)),ur(m,m.length,0,[["exit",p,o],["enter",l[u][1],o],["exit",l[u][1],o],["exit",f,o]]),ur(l,h-1,u-h+3,m),u=h+m.length-2;break}}for(u=-1;++u<l.length;)l[u][1].type==="strikethroughSequenceTemporary"&&(l[u][1].type="data");return l}function s(l,o,u){const h=this.previous,f=this.events;let p=0;return m;function m(k){return h===126&&f[f.length-1][1].type!=="characterEscape"?u(k):(l.enter("strikethroughSequenceTemporary"),y(k))}function y(k){const b=ca(h);if(k===126)return p>1?u(k):(l.consume(k),p++,y);if(p<2&&!t)return u(k);const w=l.exit("strikethroughSequenceTemporary"),S=ca(k);return w._open=!S||S===2&&!!b,w._close=!b||b===2&&!!S,o(k)}}}class z8{constructor(){this.map=[]}add(e,t,r){Z8(this,e,t,r)}consume(e){if(this.map.sort(function(s,l){return s[0]-l[0]}),this.map.length===0)return;let t=this.map.length;const r=[];for(;t>0;)t-=1,r.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];r.push(e.slice()),e.length=0;let i=r.pop();for(;i;){for(const s of i)e.push(s);i=r.pop()}this.map.length=0}}function Z8(n,e,t,r){let i=0;if(!(t===0&&r.length===0)){for(;i<n.map.length;){if(n.map[i][0]===e){n.map[i][1]+=t,n.map[i][2].push(...r);return}i+=1}n.map.push([e,t,r])}}function X8(n,e){let t=!1;const r=[];for(;e<n.length;){const i=n[e];if(t){if(i[0]==="enter")i[1].type==="tableContent"&&r.push(n[e+1][1].type==="tableDelimiterMarker"?"left":"none");else if(i[1].type==="tableContent"){if(n[e-1][1].type==="tableDelimiterMarker"){const s=r.length-1;r[s]=r[s]==="left"?"center":"right"}}else if(i[1].type==="tableDelimiterRow")break}else i[0]==="enter"&&i[1].type==="tableDelimiterRow"&&(t=!0);e+=1}return r}function B8(){return{flow:{null:{name:"table",tokenize:W8,resolveAll:q8}}}}function W8(n,e,t){const r=this;let i=0,s=0,l;return o;function o(_){let G=r.events.length-1;for(;G>-1;){const J=r.events[G][1].type;if(J==="lineEnding"||J==="linePrefix")G--;else break}const F=G>-1?r.events[G][1].type:null,le=F==="tableHead"||F==="tableRow"?T:u;return le===T&&r.parser.lazy[r.now().line]?t(_):le(_)}function u(_){return n.enter("tableHead"),n.enter("tableRow"),h(_)}function h(_){return _===124||(l=!0,s+=1),f(_)}function f(_){return _===null?t(_):Ee(_)?s>1?(s=0,r.interrupt=!0,n.exit("tableRow"),n.enter("lineEnding"),n.consume(_),n.exit("lineEnding"),y):t(_):We(_)?Ge(n,f,"whitespace")(_):(s+=1,l&&(l=!1,i+=1),_===124?(n.enter("tableCellDivider"),n.consume(_),n.exit("tableCellDivider"),l=!0,f):(n.enter("data"),p(_)))}function p(_){return _===null||_===124||ft(_)?(n.exit("data"),f(_)):(n.consume(_),_===92?m:p)}function m(_){return _===92||_===124?(n.consume(_),p):p(_)}function y(_){return r.interrupt=!1,r.parser.lazy[r.now().line]?t(_):(n.enter("tableDelimiterRow"),l=!1,We(_)?Ge(n,k,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(_):k(_))}function k(_){return _===45||_===58?w(_):_===124?(l=!0,n.enter("tableCellDivider"),n.consume(_),n.exit("tableCellDivider"),b):I(_)}function b(_){return We(_)?Ge(n,w,"whitespace")(_):w(_)}function w(_){return _===58?(s+=1,l=!0,n.enter("tableDelimiterMarker"),n.consume(_),n.exit("tableDelimiterMarker"),S):_===45?(s+=1,S(_)):_===null||Ee(_)?A(_):I(_)}function S(_){return _===45?(n.enter("tableDelimiterFiller"),Q(_)):I(_)}function Q(_){return _===45?(n.consume(_),Q):_===58?(l=!0,n.exit("tableDelimiterFiller"),n.enter("tableDelimiterMarker"),n.consume(_),n.exit("tableDelimiterMarker"),$):(n.exit("tableDelimiterFiller"),$(_))}function $(_){return We(_)?Ge(n,A,"whitespace")(_):A(_)}function A(_){return _===124?k(_):_===null||Ee(_)?!l||i!==s?I(_):(n.exit("tableDelimiterRow"),n.exit("tableHead"),e(_)):I(_)}function I(_){return t(_)}function T(_){return n.enter("tableRow"),X(_)}function X(_){return _===124?(n.enter("tableCellDivider"),n.consume(_),n.exit("tableCellDivider"),X):_===null||Ee(_)?(n.exit("tableRow"),e(_)):We(_)?Ge(n,X,"whitespace")(_):(n.enter("data"),z(_))}function z(_){return _===null||_===124||ft(_)?(n.exit("data"),X(_)):(n.consume(_),_===92?K:z)}function K(_){return _===92||_===124?(n.consume(_),z):z(_)}}function q8(n,e){let t=-1,r=!0,i=0,s=[0,0,0,0],l=[0,0,0,0],o=!1,u=0,h,f,p;const m=new z8;for(;++t<n.length;){const y=n[t],k=y[1];y[0]==="enter"?k.type==="tableHead"?(o=!1,u!==0&&(IP(m,e,u,h,f),f=void 0,u=0),h={type:"table",start:Object.assign({},k.start),end:Object.assign({},k.end)},m.add(t,0,[["enter",h,e]])):k.type==="tableRow"||k.type==="tableDelimiterRow"?(r=!0,p=void 0,s=[0,0,0,0],l=[0,t+1,0,0],o&&(o=!1,f={type:"tableBody",start:Object.assign({},k.start),end:Object.assign({},k.end)},m.add(t,0,[["enter",f,e]])),i=k.type==="tableDelimiterRow"?2:f?3:1):i&&(k.type==="data"||k.type==="tableDelimiterMarker"||k.type==="tableDelimiterFiller")?(r=!1,l[2]===0&&(s[1]!==0&&(l[0]=l[1],p=Tf(m,e,s,i,void 0,p),s=[0,0,0,0]),l[2]=t)):k.type==="tableCellDivider"&&(r?r=!1:(s[1]!==0&&(l[0]=l[1],p=Tf(m,e,s,i,void 0,p)),s=l,l=[s[1],t,0,0])):k.type==="tableHead"?(o=!0,u=t):k.type==="tableRow"||k.type==="tableDelimiterRow"?(u=t,s[1]!==0?(l[0]=l[1],p=Tf(m,e,s,i,t,p)):l[1]!==0&&(p=Tf(m,e,l,i,t,p)),i=0):i&&(k.type==="data"||k.type==="tableDelimiterMarker"||k.type==="tableDelimiterFiller")&&(l[3]=t)}for(u!==0&&IP(m,e,u,h,f),m.consume(e.events),t=-1;++t<e.events.length;){const y=e.events[t];y[0]==="enter"&&y[1].type==="table"&&(y[1]._align=X8(e.events,t))}return n}function Tf(n,e,t,r,i,s){const l=r===1?"tableHeader":r===2?"tableDelimiter":"tableData",o="tableContent";t[0]!==0&&(s.end=Object.assign({},Co(e.events,t[0])),n.add(t[0],0,[["exit",s,e]]));const u=Co(e.events,t[1]);if(s={type:l,start:Object.assign({},u),end:Object.assign({},u)},n.add(t[1],0,[["enter",s,e]]),t[2]!==0){const h=Co(e.events,t[2]),f=Co(e.events,t[3]),p={type:o,start:Object.assign({},h),end:Object.assign({},f)};if(n.add(t[2],0,[["enter",p,e]]),r!==2){const m=e.events[t[2]],y=e.events[t[3]];if(m[1].end=Object.assign({},y[1].end),m[1].type="chunkText",m[1].contentType="text",t[3]>t[2]+1){const k=t[2]+1,b=t[3]-t[2]-1;n.add(k,b,[])}}n.add(t[3]+1,0,[["exit",p,e]])}return i!==void 0&&(s.end=Object.assign({},Co(e.events,i)),n.add(i,0,[["exit",s,e]]),s=void 0),s}function IP(n,e,t,r,i){const s=[],l=Co(e.events,t);i&&(i.end=Object.assign({},l),s.push(["exit",i,e])),r.end=Object.assign({},l),s.push(["exit",r,e]),n.add(t+1,0,s)}function Co(n,e){const t=n[e],r=t[0]==="enter"?"start":"end";return t[1][r]}const V8={name:"tasklistCheck",tokenize:Y8};function F8(){return{text:{91:V8}}}function Y8(n,e,t){const r=this;return i;function i(u){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?t(u):(n.enter("taskListCheck"),n.enter("taskListCheckMarker"),n.consume(u),n.exit("taskListCheckMarker"),s)}function s(u){return ft(u)?(n.enter("taskListCheckValueUnchecked"),n.consume(u),n.exit("taskListCheckValueUnchecked"),l):u===88||u===120?(n.enter("taskListCheckValueChecked"),n.consume(u),n.exit("taskListCheckValueChecked"),l):t(u)}function l(u){return u===93?(n.enter("taskListCheckMarker"),n.consume(u),n.exit("taskListCheckMarker"),n.exit("taskListCheck"),o):t(u)}function o(u){return Ee(u)?e(u):We(u)?n.check({tokenize:U8},e,t)(u):t(u)}}function U8(n,e,t){return Ge(n,r,"whitespace");function r(i){return i===null?t(i):e(i)}}function G8(n){return Pj([v8(),E8(),I8(n),B8(),F8()])}const H8={};function gE(n){const e=this,t=n||H8,r=e.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),s=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),l=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(G8(t)),s.push(O8()),l.push(y8(t))}const K8="",OE="/login",J8=new Set(["/v1/auth/login","/v1/auth/logout","/v1/auth/whoami","/health"]);function eF(n){if(typeof window>"u"||window.location.pathname===OE)return!1;for(const e of J8)if(n.startsWith(e))return!1;return!0}async function Ve(n,e){const t=new Headers(e==null?void 0:e.headers);(e==null?void 0:e.body)!==void 0&&(e==null?void 0:e.body)!==null&&!t.has("content-type")&&t.set("content-type","application/json");const r=await fetch(`${K8}${n}`,{...e,credentials:"include",headers:t});if(r.status===401&&eF(n)){const i=window.location.pathname+window.location.search;throw window.location.href=`${OE}?next=${encodeURIComponent(i)}`,new Error("unauthenticated")}if(!r.ok){let i="";try{i=await r.text()}catch{}throw new Error(`${(e==null?void 0:e.method)??"GET"} ${n} -> ${r.status} ${i}`)}if(r.status!==204)return await r.json()}const tt={health:()=>Ve("/health"),listProjects:(n={})=>{const e=new URLSearchParams;n.includeArchived&&e.set("includeArchived","true");const t=e.size?`?${e.toString()}`:"";return Ve(`/v1/projects${t}`)},getProject:n=>Ve(`/v1/projects/${n}`),getProjectByKey:n=>Ve(`/v1/projects/by-key/${encodeURIComponent(n)}`),createProject:n=>Ve("/v1/projects",{method:"POST",body:JSON.stringify(n)}),updateProject:(n,e)=>Ve(`/v1/projects/${n}`,{method:"PATCH",body:JSON.stringify(e)}),openingBrief:(n,e=10)=>Ve(`/v1/projects/${n}/opening-brief`,{method:"POST",body:JSON.stringify({recentLimit:e})}),getEntity:n=>Ve(`/v1/entities/${n}`),getEntityByKey:(n,e)=>Ve(`/v1/projects/by-key/${encodeURIComponent(n)}/entities/by-seq/${e}`),createTask:n=>Ve("/v1/tasks",{method:"POST",body:JSON.stringify(n)}),createNote:n=>Ve("/v1/notes",{method:"POST",body:JSON.stringify(n)}),writeEntity:n=>{if(n.kind==="task"){const{kind:r,...i}=n;return Ve("/v1/tasks",{method:"POST",body:JSON.stringify(i)})}const{kind:e,...t}=n;return Ve("/v1/notes",{method:"POST",body:JSON.stringify(t)})},updateEntity:(n,e)=>Ve(`/v1/entities/${n}`,{method:"PATCH",body:JSON.stringify(e)}),deleteEntity:n=>Ve(`/v1/entities/${n}`,{method:"DELETE"}),relatedEntities:n=>Ve(`/v1/entities/${n}/related`),recent:(n={})=>Ve("/v1/recent",{method:"POST",body:JSON.stringify(n)}),search:n=>Ve("/v1/search",{method:"POST",body:JSON.stringify(n)}),getEmbeddingSettings:()=>Ve("/v1/settings/embedding"),updateEmbeddingSettings:n=>Ve("/v1/settings/embedding",{method:"PATCH",body:JSON.stringify(n)}),backfillEmbeddings:n=>Ve("/v1/settings/embedding/backfill",{method:"POST",body:JSON.stringify(n==null?{}:{limit:n})}),getWorkspaceSettings:()=>Ve("/v1/settings/workspace"),updateWorkspaceSettings:n=>Ve("/v1/settings/workspace",{method:"PATCH",body:JSON.stringify(n)}),tasksRange:n=>Ve("/v1/tasks/range",{method:"POST",body:JSON.stringify(n)}),configureRecurrence:(n,e)=>Ve(`/v1/tasks/${n}/recurrence`,{method:"POST",body:JSON.stringify(e)}),getRecurrence:n=>Ve(`/v1/tasks/${n}/recurrence`),skipOccurrence:(n,e)=>Ve(`/v1/tasks/${n}/skip-occurrence`,{method:"POST",body:JSON.stringify(e?{reason:e,actorKind:"human"}:{actorKind:"human"})}),stopRecurrence:(n,e)=>Ve(`/v1/recurrences/${n}/stop`,{method:"POST",body:JSON.stringify(e?{reason:e}:{})}),splitRecurrence:(n,e)=>Ve(`/v1/recurrences/${n}/split`,{method:"POST",body:JSON.stringify(e)}),listTokens:()=>Ve("/v1/tokens"),createToken:n=>Ve("/v1/tokens",{method:"POST",body:JSON.stringify({name:n})}),revokeToken:n=>Ve(`/v1/tokens/${n}`,{method:"DELETE"}),login:n=>Ve("/v1/auth/login",{method:"POST",body:JSON.stringify({password:n})}),logout:()=>Ve("/v1/auth/logout",{method:"POST"}),whoami:()=>Ve("/v1/auth/whoami")},dp=3e4;function tF(){return qn({queryKey:["health"],queryFn:tt.health,staleTime:5*6e4})}function Tr(n={}){const e=!!n.includeArchived;return qn({queryKey:["projects",e],queryFn:()=>tt.listProjects({includeArchived:e})})}function nF(n){return qn({queryKey:["project",n],queryFn:()=>tt.getProject(n),enabled:!!n})}function yE(n){return qn({queryKey:["project","by-key",n],queryFn:()=>tt.getProjectByKey(n),enabled:!!n})}function zP(n){return qn({queryKey:["entity",n],queryFn:()=>tt.getEntity(n),enabled:!!n})}function rF(n){return qn({queryKey:["related",n],queryFn:()=>tt.relatedEntities(n),enabled:!!n})}function iF(n,e={}){return qn({queryKey:["recent",n],queryFn:()=>tt.recent(n),refetchInterval:e.poll===!1?!1:dp})}function F0(n,e,t={}){return qn({queryKey:["entity-list",n,e],queryFn:()=>tt.recent({projectId:n??null,kinds:e??null,limit:100}),enabled:!!n,refetchInterval:t.poll===!1?!1:dp})}function xE(n){return qn({queryKey:["search",n],queryFn:()=>tt.search(n),enabled:!!(n&&n.query.length>0)})}function sF(){return qn({queryKey:["settings","embedding"],queryFn:tt.getEmbeddingSettings,refetchInterval:dp})}function lF(){const n=sn();return Qn({mutationFn:e=>tt.updateEmbeddingSettings(e),onSuccess:e=>{n.setQueryData(["settings","embedding"],e),n.invalidateQueries({queryKey:["health"]})}})}function oF(){const n=sn();return Qn({mutationFn:e=>tt.backfillEmbeddings(e),onSuccess:e=>{n.setQueryData(["settings","embedding"],e.settings)}})}function aF(){return qn({queryKey:["settings","workspace"],queryFn:tt.getWorkspaceSettings})}function uF(){const n=sn();return Qn({mutationFn:e=>tt.updateWorkspaceSettings(e),onSuccess:e=>{n.setQueryData(["settings","workspace"],e)}})}function Qa(n,e={}){return qn({queryKey:["tasks-range",n],queryFn:()=>tt.tasksRange(n),refetchInterval:e.poll===!1?!1:dp})}function cF(n){return qn({queryKey:["recurrence",n],queryFn:()=>tt.getRecurrence(n),enabled:!!n,retry:!1})}function kE(){const n=sn();return Qn({mutationFn:({taskId:e,input:t})=>tt.configureRecurrence(e,t),onSuccess:e=>{n.invalidateQueries({queryKey:["entity",e.currentOccurrenceId??void 0]}),n.invalidateQueries({queryKey:["recurrence"]}),n.invalidateQueries({queryKey:["tasks-range"]}),n.invalidateQueries({queryKey:["recent"]}),n.invalidateQueries({queryKey:["entity-list"]})}})}function hF(){const n=sn();return Qn({mutationFn:({taskId:e,reason:t})=>tt.skipOccurrence(e,t),onSuccess:e=>{n.invalidateQueries({queryKey:["entity",e.skipped.id]}),e.next&&n.invalidateQueries({queryKey:["entity",e.next.id]}),n.invalidateQueries({queryKey:["recurrence"]}),n.invalidateQueries({queryKey:["tasks-range"]}),n.invalidateQueries({queryKey:["recent"]}),n.invalidateQueries({queryKey:["entity-list"]})}})}function fF(){const n=sn();return Qn({mutationFn:({ruleId:e,reason:t})=>tt.stopRecurrence(e,t),onSuccess:()=>{n.invalidateQueries({queryKey:["recurrence"]}),n.invalidateQueries({queryKey:["tasks-range"]}),n.invalidateQueries({queryKey:["recent"]}),n.invalidateQueries({queryKey:["entity-list"]})}})}function dF(){const n=sn();return Qn({mutationFn:({ruleId:e,input:t})=>tt.splitRecurrence(e,t),onSuccess:e=>{n.invalidateQueries({queryKey:["entity",e.currentOccurrenceId??void 0]}),n.invalidateQueries({queryKey:["recurrence"]}),n.invalidateQueries({queryKey:["tasks-range"]}),n.invalidateQueries({queryKey:["recent"]}),n.invalidateQueries({queryKey:["entity-list"]})}})}function pF(){const n=sn();return Qn({mutationFn:e=>tt.createProject(e),onSuccess:()=>{n.invalidateQueries({queryKey:["projects"]})}})}function mF(){const n=sn();return Qn({mutationFn:({id:e,fields:t})=>tt.updateProject(e,t),onSuccess:e=>{n.invalidateQueries({queryKey:["projects"]}),n.setQueryData(["project",e.id],e),n.invalidateQueries({queryKey:["project","by-key",e.key]}),n.invalidateQueries({queryKey:["opening-brief",e.id]})}})}function gF(){const n=sn();return Qn({mutationFn:e=>tt.writeEntity(e),onSuccess:e=>{n.invalidateQueries({queryKey:["entity-list",e.projectId??void 0]}),n.invalidateQueries({queryKey:["opening-brief",e.projectId??void 0]}),n.invalidateQueries({queryKey:["recent"]}),n.invalidateQueries({queryKey:["tasks-range"]}),e.parentId&&n.invalidateQueries({queryKey:["related",e.parentId]})}})}function ql(){const n=sn();return Qn({mutationFn:({id:e,fields:t})=>tt.updateEntity(e,t),onSuccess:e=>{n.invalidateQueries({queryKey:["entity",e.id]}),n.invalidateQueries({queryKey:["entity-list",e.projectId??void 0]}),n.invalidateQueries({queryKey:["opening-brief",e.projectId??void 0]}),n.invalidateQueries({queryKey:["tasks-range"]}),n.invalidateQueries({queryKey:["related"]})}})}function vE(){const n=sn();return Qn({mutationFn:e=>tt.deleteEntity(e),onSuccess:()=>{n.invalidateQueries({queryKey:["tasks-range"]}),n.invalidateQueries({queryKey:["recent"]}),n.invalidateQueries({queryKey:["entity-list"]}),n.invalidateQueries({queryKey:["opening-brief"]}),n.invalidateQueries({queryKey:["related"]})}})}function OF(){const n=sn();return Qn({mutationFn:({id:e,agentsMd:t})=>tt.updateProject(e,{agentsMd:t}),onSuccess:e=>{n.invalidateQueries({queryKey:["project","by-key",e.key]}),n.invalidateQueries({queryKey:["opening-brief",e.id]}),n.invalidateQueries({queryKey:["projects"]})}})}function yF(){return qn({queryKey:["tokens"],queryFn:tt.listTokens})}function xF(){const n=sn();return Qn({mutationFn:e=>tt.createToken(e),onSuccess:()=>{n.invalidateQueries({queryKey:["tokens"]})}})}function kF(){const n=sn();return Qn({mutationFn:e=>tt.revokeToken(e),onSuccess:(e,t)=>{n.setQueryData(["tokens"],r=>(r==null?void 0:r.filter(i=>i.id!==t))??r),n.invalidateQueries({queryKey:["tokens"],refetchType:"active"})}})}const vF=["task","note"],bE=["planned","active","watching","paused","archived"],wE=["urgent","high","medium","low","none"];function Gi(){const[n,e]=Cc(),t=n.get("d"),r=R.useCallback(s=>{e(l=>{const o=new URLSearchParams(l);return o.set("d",s),o})},[e]),i=R.useCallback(()=>{e(s=>{const l=new URLSearchParams(s);return l.delete("d"),l})},[e]);return{openId:t,open:r,close:i}}function Cn(n){var t;if(n.title&&n.title.trim())return n.title;const e=((t=n.body.split(`
|
|
464
|
-
`).find(r=>r.trim()))==null?void 0:t.trim())??"";return e?e.length>60?`${e.slice(0,60)}…`:e:"Untitled"}function Oi(n){return!n.title||!n.title.trim()}const SE=["hourly","daily","weekly","monthly","yearly"],ux=["MO","TU","WE","TH","FR","SA","SU"];function bF(n){if(!n)return;const e=n.match(/^(\d{4})(\d{2})(\d{2})/);if(e)return`${e[1]}-${e[2]}-${e[3]}`;const t=new Date(n);return Number.isNaN(t.getTime())?void 0:t.toISOString().slice(0,10)}function PE(n){var o;const e=new Map(n.replace(/^RRULE:/i,"").split(";").map(u=>u.split("=")).filter(u=>u.length===2).map(([u,h])=>[u.toUpperCase(),h])),t=(o=e.get("FREQ"))==null?void 0:o.toLowerCase(),r=SE.includes(t)?t:void 0,i=Number(e.get("INTERVAL")??1),s=Number(e.get("COUNT")),l=(e.get("BYDAY")??"").split(",").filter(u=>ux.includes(u));return{preset:r,interval:Number.isFinite(i)&&i>0?i:1,byWeekday:l,count:Number.isFinite(s)&&s>0?s:void 0,until:bF(e.get("UNTIL"))}}const wF=["title","body","tags","priority"];function SF(n,e,t){return!e||!wF.some(i=>i in n)?n:{...n,recurrenceScope:t}}const PF={task:{glyph:"☑",color:"text-blue-600 bg-blue-50 border-blue-100"},note:{glyph:"✎",color:"text-slate-700 bg-slate-50 border-slate-200"},comment:{glyph:"💬",color:"text-amber-700 bg-amber-50 border-amber-100"}};function Y0({kind:n,compact:e=!1}){const t=PF[n];return O.jsxs("span",{className:`inline-flex items-center gap-1 px-1.5 h-5 text-xxs rounded border ${t.color}`,title:n,children:[O.jsx("span",{children:t.glyph}),!e&&O.jsx("span",{className:"uppercase tracking-wider",children:n})]})}const CE=[{name:"circle",Icon:Uy},{name:"square",Icon:w6},{name:"triangle",Icon:Q6},{name:"hexagon",Icon:c6},{name:"folder",Icon:o6},{name:"briefcase",Icon:YB},{name:"rocket",Icon:y6},{name:"sparkles",Icon:v6},{name:"target",Icon:P6},{name:"layers",Icon:f6},{name:"code",Icon:KB},{name:"book",Icon:qB},{name:"flame",Icon:s6},{name:"zap",Icon:$6},{name:"star",Icon:S6},{name:"heart",Icon:u6},{name:"box",Icon:VB},{name:"lightbulb",Icon:p6},{name:"pencil",Icon:nj},{name:"hash",Icon:a6}],CF=new Map(CE.map(n=>[n.name,n.Icon]));function QF(n){return n?CF.get(n)??Uy:Uy}const $F=[{name:"gray",value:"#6f6f76"},{name:"red",value:"#ef4444"},{name:"orange",value:"#f59e0b"},{name:"yellow",value:"#eab308"},{name:"green",value:"#10b981"},{name:"teal",value:"#14b8a6"},{name:"cyan",value:"#06b6d4"},{name:"blue",value:"#3b82f6"},{name:"indigo",value:"#5e6ad2"},{name:"purple",value:"#8b5cf6"},{name:"pink",value:"#ec4899"}],QE="#5e6ad2",$E="circle";function TF(n){return n==="circle"||n==="square"||n==="triangle"}function Us({color:n,icon:e,size:t=12,className:r=""}){const i=QF(e),s=TF(e);return O.jsx(i,{size:t,className:`shrink-0 ${r}`,color:n,fill:s?n:"none",strokeWidth:s?1.2:1.8})}function cx({status:n,size:e=14}){const t="currentColor";return n==="done"?O.jsxs("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-statusDone shrink-0",children:[O.jsx("circle",{cx:"7",cy:"7",r:"6",fill:"currentColor"}),O.jsx("path",{d:"M4 7.4L6.2 9.5L10 5.5",stroke:"white",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]}):n==="in_progress"?O.jsxs("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-statusInProgress shrink-0",children:[O.jsx("circle",{cx:"7",cy:"7",r:"6",stroke:t,strokeWidth:"1.4",fill:"none"}),O.jsx("path",{d:"M7 1 a6 6 0 0 1 0 12 z",fill:"currentColor"})]}):n==="rejected"?O.jsxs("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-statusRejected shrink-0",children:[O.jsx("circle",{cx:"7",cy:"7",r:"6",stroke:t,strokeWidth:"1.4",fill:"none"}),O.jsx("path",{d:"M4 4l6 6M10 4l-6 6",stroke:t,strokeWidth:"1.4",strokeLinecap:"round"})]}):O.jsx("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-statusOpen shrink-0",children:O.jsx("circle",{cx:"7",cy:"7",r:"6",stroke:t,strokeWidth:"1.4",fill:"none"})})}function ha({priority:n,size:e=14}){return n==="urgent"?O.jsxs("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-prioUrgent shrink-0",children:[O.jsx("rect",{x:"2",y:"2",width:"10",height:"10",rx:"2",fill:"currentColor"}),O.jsx("path",{d:"M7 4v3.5M7 9.5h.01",stroke:"white",strokeWidth:"1.6",strokeLinecap:"round"})]}):n==="high"?O.jsxs("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-prioHigh shrink-0",children:[O.jsx("rect",{x:"2",y:"8",width:"2.5",height:"4",rx:"0.5",fill:"currentColor"}),O.jsx("rect",{x:"5.75",y:"5",width:"2.5",height:"7",rx:"0.5",fill:"currentColor"}),O.jsx("rect",{x:"9.5",y:"2",width:"2.5",height:"10",rx:"0.5",fill:"currentColor"})]}):n==="medium"?O.jsxs("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-prioMedium shrink-0",children:[O.jsx("rect",{x:"2",y:"8",width:"2.5",height:"4",rx:"0.5",fill:"currentColor"}),O.jsx("rect",{x:"5.75",y:"5",width:"2.5",height:"7",rx:"0.5",fill:"currentColor"}),O.jsx("rect",{x:"9.5",y:"2",width:"2.5",height:"10",rx:"0.5",opacity:"0.3",fill:"currentColor"})]}):n==="low"?O.jsxs("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-prioLow shrink-0",children:[O.jsx("rect",{x:"2",y:"8",width:"2.5",height:"4",rx:"0.5",fill:"currentColor"}),O.jsx("rect",{x:"5.75",y:"5",width:"2.5",height:"7",rx:"0.5",opacity:"0.3",fill:"currentColor"}),O.jsx("rect",{x:"9.5",y:"2",width:"2.5",height:"10",rx:"0.5",opacity:"0.3",fill:"currentColor"})]}):O.jsx("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-faint shrink-0",children:O.jsx("line",{x1:"3",y1:"7",x2:"11",y2:"7",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeDasharray:"1.5 1.5"})})}function pp({size:n=12,className:e=""}){return O.jsxs("svg",{width:n,height:n,viewBox:"0 0 14 14",fill:"none",className:`shrink-0 ${e}`,"aria-hidden":"true",children:[O.jsx("path",{d:"M2.5 7a4.5 4.5 0 0 1 7.7-3.2L11.5 5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),O.jsx("path",{d:"M11.5 2v3h-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),O.jsx("path",{d:"M11.5 7a4.5 4.5 0 0 1-7.7 3.2L2.5 9",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),O.jsx("path",{d:"M2.5 12V9h3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]})}const fa={urgent:"Urgent",high:"High",medium:"Medium",low:"Low",none:"No priority"},Ld={open:"Todo",in_progress:"In progress",done:"Done",rejected:"Cancelled"},TE=["open","in_progress","done","rejected"];function U0({trigger:n,children:e,align:t="start"}){const[r,i]=R.useState(!1),[s,l]=R.useState(null),o=R.useRef(null),u=R.useRef(null),h=R.useCallback(()=>{const f=o.current,p=u.current;if(!f||!p)return;const m=8,y=4,k=f.getBoundingClientRect(),b=p.offsetWidth,w=p.offsetHeight,S=window.innerWidth-b-m,Q=k.bottom+y,$=k.top-w-y,A=Q+w<=window.innerHeight-m,I=$>=m,T=t==="end"?k.right-b:k.left,X=A||!I?Q:$,z=window.innerHeight-w-m;l({top:Math.min(Math.max(m,X),Math.max(m,z)),left:Math.min(Math.max(m,T),Math.max(m,S))})},[t]);return R.useEffect(()=>{if(!r)return;const f=m=>{var k,b;const y=m.target;!((k=o.current)!=null&&k.contains(y))&&!((b=u.current)!=null&&b.contains(y))&&i(!1)},p=m=>{m.key==="Escape"&&i(!1)};return window.addEventListener("mousedown",f),window.addEventListener("keydown",p),()=>{window.removeEventListener("mousedown",f),window.removeEventListener("keydown",p)}},[r]),R.useLayoutEffect(()=>{if(!r){l(null);return}h();const f=window.requestAnimationFrame(h);return window.addEventListener("resize",h),window.addEventListener("scroll",h,!0),()=>{window.cancelAnimationFrame(f),window.removeEventListener("resize",h),window.removeEventListener("scroll",h,!0)}},[r,h]),O.jsxs(O.Fragment,{children:[O.jsx("span",{ref:o,onClick:f=>{f.stopPropagation(),i(p=>!p)},children:n}),r&&RR.createPortal(O.jsx("div",{ref:u,className:"popover",style:{position:"fixed",top:(s==null?void 0:s.top)??-9999,left:(s==null?void 0:s.left)??-9999,visibility:s?"visible":"hidden"},onClick:f=>f.stopPropagation(),children:e(()=>i(!1))}),document.body)]})}function mp({task:n,size:e=14,className:t="",align:r="start",onStatusChange:i}){const s=ql();return O.jsx(U0,{align:r,trigger:O.jsx("button",{type:"button",draggable:!1,className:`inline-flex shrink-0 items-center justify-center rounded p-0.5 -m-0.5 hover:bg-line/40 disabled:opacity-60 ${t}`,onPointerDown:l=>l.stopPropagation(),onMouseDown:l=>l.stopPropagation(),onKeyDown:l=>l.stopPropagation(),onKeyUp:l=>l.stopPropagation(),onDragStart:l=>{l.preventDefault(),l.stopPropagation()},disabled:s.isPending,title:`Change status (${Ld[n.status]??n.status})`,"aria-label":"Change status","aria-haspopup":"menu",children:O.jsx(cx,{status:n.status,size:e})}),children:l=>O.jsx(O.Fragment,{children:TE.map(o=>O.jsxs("button",{className:"popover-item",role:"menuitemradio","aria-checked":n.status===o,onClick:u=>{if(u.stopPropagation(),l(),n.status===o)return;const h=n.status;i==null||i(o),s.mutate({id:n.id,fields:{status:o}},{onError:()=>i==null?void 0:i(h)})},children:[O.jsx(cx,{status:o,size:12}),O.jsx("span",{children:Ld[o]??o}),n.status===o&&O.jsx("span",{className:"ml-auto text-faint",children:"✓"})]},o))})})}const jF=600,jE={hourly:"Hourly",daily:"Daily",weekly:"Weekly",monthly:"Monthly",yearly:"Yearly"},EF={hourly:"hour",daily:"day",weekly:"week",monthly:"month",yearly:"year"};function MF(){const{openId:n,close:e}=Gi();return R.useEffect(()=>{if(!n)return;const t=r=>{if(r.key!=="Escape")return;const i=r.target;if(i&&(i.tagName==="INPUT"||i.tagName==="TEXTAREA"||i.closest(".cm-editor"))){i.blur();return}e()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[n,e]),n?O.jsxs("div",{className:"fixed inset-0 z-30 flex",children:[O.jsx("div",{className:"flex-1 bg-ink/10 backdrop-blur-[1px] cursor-pointer",onClick:e}),O.jsx("aside",{className:"w-[min(680px,92vw)] bg-surface border-l border-line shadow-modal flex flex-col",children:O.jsx(AF,{id:n,onClose:e})})]}):null}function AF({id:n,onClose:e}){var $n,Nt;const{data:t,isLoading:r}=zP(n),{data:i}=Tr(),{data:s}=rF(n),{data:l}=zP((t==null?void 0:t.parentId)??void 0),{data:o}=cF((t==null?void 0:t.kind)==="task"?n:void 0),u=ql(),h=vE(),f=kE(),p=hF(),m=fF(),y=dF(),{open:k}=Zt(),{open:b}=Gi(),[w,S]=R.useState(""),[Q,$]=R.useState(""),[A,I]=R.useState(""),[T,X]=R.useState("open"),[z,K]=R.useState(""),[_,G]=R.useState("none"),[F,le]=R.useState(!1),[J,Y]=R.useState("idle"),[pe,ye]=R.useState("future"),ee=R.useRef(null);R.useEffect(()=>{t&&ee.current!==t.id&&(S(t.title??""),$(t.body),I(t.tags.join(", ")),X(t.status),K(t.dueAt?t.dueAt.slice(0,10):""),G(t.priority),le(!1),Y("idle"),ee.current=t.id)},[t==null?void 0:t.id,t]);const ie=R.useMemo(()=>{if(!F||!t||ee.current!==t.id)return null;const Je=t.kind==="note",kt=w.trim(),Xt=kt||(Je?null:kt),wi=A.split(",").map(Gs=>Gs.trim()).filter(Boolean),on={};Xt!==(t.title??"")&&!(Xt===null&&t.title===null)&&Xt!==t.title&&(on.title=Xt===""?null:Xt),Q!==t.body&&(on.body=Q),JSON.stringify(wi)!==JSON.stringify(t.tags)&&(on.tags=wi),T!==t.status&&(on.status=T),_!==t.priority&&(on.priority=_);const Fr=t.dueAt?t.dueAt.slice(0,10):"";return z!==Fr&&(on.dueAt=z?new Date(z).toISOString():null),on},[F,t,w,Q,A,T,_,z]),C=t!=null&&((Nt=($n=t.metadata)==null?void 0:$n.recurrence)==null?void 0:Nt.role)==="occurrence";function D(Je){return SF(Je,C,pe)}if(R.useEffect(()=>{if(!F||!t||!ie||Object.keys(ie).length===0)return;Y("idle");const Je=setTimeout(async()=>{Y("saving");try{await u.mutateAsync({id:t.id,fields:D(ie)}),Y("saved")}catch{Y("error")}},jF);return()=>clearTimeout(Je)},[F,ie]),r||!t)return O.jsxs("div",{className:"p-6 text-sm text-muted flex items-center justify-between",children:[O.jsx("span",{children:"Loading…"}),O.jsx("button",{onClick:e,className:"text-faint hover:text-ink",children:O.jsx(Hy,{size:14})})]});const q=t,E=i==null?void 0:i.find(Je=>Je.id===q.projectId),ce=E?`/p/${E.key}`:"",$e=q.kind==="note",we=ie?Object.keys(ie).length>0:!1;function Ie(){S(q.title??""),$(q.body),I(q.tags.join(", ")),X(q.status),K(q.dueAt?q.dueAt.slice(0,10):""),G(q.priority),Y("idle"),ye("future"),le(!0)}async function _e(){if(!we||!ie){le(!1);return}Y("saving");try{await u.mutateAsync({id:q.id,fields:D(ie)}),Y("saved"),le(!1)}catch{Y("error")}}async function De(){confirm(`Delete "${Cn(t)}"? This cannot be undone.`)&&(await h.mutateAsync(t.id),e())}async function at(){if(!o||!confirm("Skip this recurring occurrence?"))return;const Je=await p.mutateAsync({taskId:q.id});Je.next&&b(Je.next.id)}async function Fn(){!o||!confirm("Stop this recurrence series?")||await m.mutateAsync({ruleId:o.rule.id})}async function Hi(Je,kt){if(!kt)throw new Error("First due date is required");const Xt=q.dueAt?q.dueAt.slice(0,10):"";kt!==Xt&&await u.mutateAsync({id:q.id,fields:{dueAt:new Date(`${kt}T12:00:00Z`).toISOString()}}),await f.mutateAsync({taskId:q.id,input:Je})}async function Vr(Je){if(!o)return;const{dtstart:kt,...Xt}=Je;await y.mutateAsync({ruleId:o.rule.id,input:Xt})}return O.jsxs(O.Fragment,{children:[O.jsxs("header",{className:"h-12 px-3 border-b border-line flex items-center gap-2 shrink-0",children:[O.jsx("button",{onClick:e,className:"p-1 -m-1 text-faint hover:text-ink rounded hover:bg-sidebar",title:"Close (Esc)",children:O.jsx(Hy,{size:16})}),O.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted min-w-0",children:[E&&O.jsxs(O.Fragment,{children:[O.jsxs(ga,{to:ce,className:"flex items-center gap-1 hover:opacity-80",children:[O.jsx(Us,{color:E.color,icon:E.icon,size:12}),O.jsx("span",{className:"font-mono tabular-nums",style:{color:E.color},children:E.key})]}),O.jsx(lp,{size:11,className:"text-faint shrink-0"})]}),O.jsx(Y0,{kind:t.kind,compact:!0}),t.sequenceId&&E&&O.jsxs("span",{className:"font-mono text-faint tabular-nums",children:[E.key,"-",t.sequenceId]})]}),O.jsxs("div",{className:"ml-auto flex items-center gap-1.5",children:[F&&O.jsx(_F,{state:J,dirty:we}),$e&&O.jsx("button",{className:`p-1 -m-1 rounded hover:bg-sidebar ${t.pinned?"text-accent":"text-faint hover:text-ink"}`,onClick:()=>u.mutate({id:t.id,fields:{pinned:!t.pinned}}),title:t.pinned?"Unpin from opening brief":"Pin to opening brief",children:O.jsx($0,{size:13,fill:t.pinned?"currentColor":"none"})}),F?O.jsx("button",{className:"p-1 -m-1 text-faint hover:text-ink rounded hover:bg-sidebar",onClick:_e,title:"Finish editing",children:O.jsx(Sa,{size:13})}):O.jsx("button",{className:"p-1 -m-1 text-faint hover:text-ink rounded hover:bg-sidebar",onClick:Ie,title:"Edit",children:O.jsx(nj,{size:13})}),O.jsx("button",{className:"p-1 -m-1 text-faint hover:text-danger rounded hover:bg-danger/10",onClick:De,title:"Delete",children:O.jsx(cj,{size:13})})]})]}),O.jsx("div",{className:"flex-1 overflow-y-auto scrollbar-thin",children:O.jsxs("div",{className:"px-6 py-5 space-y-4",children:[F?O.jsx("input",{className:`w-full text-lg font-semibold bg-transparent border-none outline-none focus:outline-none px-0 py-1 ${w?"":"placeholder:text-muted/60 placeholder:italic"}`,value:w,placeholder:$e?"Untitled":"Title",onChange:Je=>S(Je.target.value),autoFocus:!0}):O.jsx("h2",{className:`text-lg font-semibold py-1 ${Oi(t)?"italic text-muted":"text-ink"}`,children:Cn(t)}),O.jsx(LF,{isEditing:F,isTask:t.kind==="task",status:T,setStatus:X,dueDate:z,setDueDate:K,priority:_,setPriority:G,tagsStr:A,setTagsStr:I,completedAt:t.completedAt,createdAt:t.createdAt,actorKind:t.actorKind,task:q.kind==="task"?{...q,status:T}:void 0,onStatusChange:X,recurrence:o,recurrenceBusy:u.isPending||f.isPending||p.isPending||m.isPending||y.isPending,onSaveRecurrence:Hi,onSkipOccurrence:at,onStopRecurrence:Fn,onSplitRecurrence:Vr,isRecurringOccurrence:C,occurrenceScope:pe,setOccurrenceScope:ye}),$e&&l&&O.jsxs("button",{className:"w-full text-left flex items-center gap-2 text-xs px-3 py-2 rounded border border-line bg-sidebar/50 hover:border-accent hover:bg-accentSoft/40 transition-colors",onClick:()=>b(l.id),title:"Open linked task",children:[O.jsx(m6,{size:12,className:"text-faint"}),O.jsx("span",{className:"text-faint",children:"Linked to task:"}),l.sequenceId&&E&&O.jsxs("span",{className:"font-mono text-faint tabular-nums",children:[E.key,"-",l.sequenceId]}),O.jsx("span",{className:"text-ink truncate",children:Cn(l)})]}),O.jsx("div",{className:"border border-line rounded-md overflow-hidden bg-surface",children:F?O.jsx(C0,{value:Q,onChange:Je=>$(Je),extensions:[iT()],basicSetup:{lineNumbers:!1,foldGutter:!1,highlightActiveLine:!1,highlightActiveLineGutter:!1},theme:"light",minHeight:"220px",placeholder:"Write in Markdown…"}):Q?O.jsx("div",{className:"min-h-[120px] p-3",children:O.jsx(XP,{body:Q})}):O.jsx("div",{className:"min-h-[120px] p-3 text-xs text-faint",children:"No description."})}),F&&Q&&O.jsxs("details",{className:"text-xxs text-muted",children:[O.jsx("summary",{className:"cursor-pointer hover:text-ink",children:"Preview rendered Markdown"}),O.jsx("div",{className:"mt-2 p-3 border border-line rounded bg-sidebar/30",children:O.jsx(XP,{body:Q})})]}),t.kind==="task"&&O.jsx(DF,{related:s??[],onOpen:b,onAdd:()=>{E&&k({kind:"quick-create",projectId:E.id,initialKind:"note",parentId:t.id})},project:E})]})})]})}function RF(n){const e=n.rule,t=PE(e.rrule),r=t.preset??"daily",i=t.interval??1,s=i>1?`Every ${i} ${EF[r]}s`:jE[r],l=t.byWeekday.length?` · ${t.byWeekday.join(", ")}`:"",o=e.anchor==="completion"?"after completion":"scheduled",u=e.enabled?"":" · stopped",h=e.nextOccurrenceAt?` · next ${new Date(e.nextOccurrenceAt).toLocaleDateString()}`:"";return`${s}${l} · ${o}${h}${u}`}function ZP(n){const e=n?PE(n.rule.rrule):void 0;return{preset:n?(e==null?void 0:e.preset)??"weekly":"none",interval:(e==null?void 0:e.interval)??1,anchor:(n==null?void 0:n.rule.anchor)??"scheduled",byWeekday:(e==null?void 0:e.byWeekday)??[],count:e!=null&&e.count?String(e.count):"",until:(e==null?void 0:e.until)??""}}function NF({isEditing:n,task:e,dueDate:t,recurrence:r,onSave:i,onSkip:s,onStop:l,onSplit:o,busy:u}){const[h,f]=R.useState(()=>ZP(r)),[p,m]=R.useState(null);if(R.useEffect(()=>{f(ZP(r)),m(null)},[n,e==null?void 0:e.id,e==null?void 0:e.dueAt,r==null?void 0:r.rule.id,r==null?void 0:r.rule.rrule,r==null?void 0:r.rule.anchor]),!e)return null;const y=["done","rejected"].includes(e.status),k=!!(r!=null&&r.rule.enabled)&&(r==null?void 0:r.rule.currentOccurrenceId)===e.id,b=!!(r!=null&&r.rule.enabled),w=h.preset!=="none",S=!!i&&t.length>0&&w&&h.interval>=1,Q=!!o&&!!(r!=null&&r.rule.enabled)&&w&&h.interval>=1;function $(z){f(K=>({...K,...z})),m(null)}function A(z){const K=new Set(h.byWeekday);K.has(z)?K.delete(z):K.add(z),$({byWeekday:ux.filter(_=>K.has(_))})}function I(){const z={preset:h.preset,interval:h.interval,anchor:h.anchor,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,allDay:!0};return h.preset==="weekly"&&h.byWeekday.length>0&&(z.byWeekday=h.byWeekday),h.count&&(z.count=Number(h.count)),h.until&&(z.until=new Date(`${h.until}T23:59:59Z`).toISOString()),z}async function T(){if(h.preset==="none"){m(null);return}if(!t){m("Set due date first");return}if(h.count&&h.until){m("Use count or until");return}try{await(i==null?void 0:i(I(),t)),m(null)}catch(z){m(z instanceof Error?z.message:"Could not save repeat")}}async function X(){if(h.preset!=="none"){if(h.count&&h.until){m("Use count or until");return}try{await(o==null?void 0:o(I())),m(null)}catch(z){m(z instanceof Error?z.message:"Could not split series")}}}return!n||y?O.jsxs("span",{className:"min-w-0 flex items-center gap-2",children:[O.jsx("span",{className:r?"text-muted truncate":"text-faint",children:r?RF(r):"None"}),k&&s&&O.jsx("button",{className:"text-faint hover:text-ink disabled:opacity-40 shrink-0",onClick:s,disabled:u,title:"Skip occurrence",children:"Skip"})]}):O.jsxs("span",{className:"min-w-0 flex flex-col gap-1",children:[O.jsxs("span",{className:"flex flex-wrap items-center gap-1.5",children:[O.jsxs("select",{className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:h.preset,onChange:z=>$({preset:z.target.value}),title:"Repeat",children:[O.jsx("option",{value:"none",children:"None"}),SE.map(z=>O.jsx("option",{value:z,children:jE[z]},z))]}),w&&O.jsxs(O.Fragment,{children:[O.jsx("input",{type:"number",min:1,max:999,className:"w-14 bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 focus:outline-none focus:ring-1 focus:ring-accent",value:h.interval,onChange:z=>$({interval:Math.max(1,Number(z.target.value)||1)}),title:"Interval"}),O.jsxs("select",{className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:h.anchor,onChange:z=>$({anchor:z.target.value}),title:"Anchor",children:[O.jsx("option",{value:"scheduled",children:"Scheduled"}),O.jsx("option",{value:"completion",children:"Completion"})]}),O.jsx("button",{className:"text-accent hover:underline disabled:opacity-40",onClick:T,disabled:u||!S,children:"Save"}),Q&&O.jsx("button",{className:"text-faint hover:text-ink disabled:opacity-40",onClick:X,disabled:u,title:"Keep past occurrences on the old cadence; apply this cadence going forward",children:"Split"})]}),b&&l&&O.jsx("button",{className:"text-faint hover:text-danger disabled:opacity-40",onClick:l,disabled:u,title:"Stop series",children:"Stop"})]}),w&&h.preset==="weekly"&&O.jsx("span",{className:"flex flex-wrap gap-1",children:ux.map(z=>O.jsx("button",{type:"button",className:`px-1.5 py-0.5 rounded border text-[10px] ${h.byWeekday.includes(z)?"border-accent bg-accentSoft text-accent":"border-line bg-surface text-muted hover:text-ink"}`,onClick:()=>A(z),children:z},z))}),w&&O.jsxs("span",{className:"flex flex-wrap items-center gap-1.5",children:[O.jsx("input",{type:"number",min:1,max:1e4,className:"w-20 bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 focus:outline-none focus:ring-1 focus:ring-accent",value:h.count,onChange:z=>$({count:z.target.value,until:z.target.value?"":h.until}),placeholder:"Count",title:"Count"}),O.jsx("input",{type:"date",className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:h.until,onChange:z=>$({until:z.target.value,count:z.target.value?"":h.count}),title:"Until"}),!t&&O.jsx("span",{className:"text-faint text-xxs",children:"Set due date first"}),p&&O.jsx("span",{className:"text-danger text-xxs truncate",children:p})]})]})}function LF({isEditing:n,isTask:e,status:t,setStatus:r,dueDate:i,setDueDate:s,priority:l,setPriority:o,tagsStr:u,setTagsStr:h,completedAt:f,createdAt:p,actorKind:m,task:y,onStatusChange:k,recurrence:b,recurrenceBusy:w,onSaveRecurrence:S,onSkipOccurrence:Q,onStopRecurrence:$,onSplitRecurrence:A,isRecurringOccurrence:I,occurrenceScope:T,setOccurrenceScope:X}){return O.jsxs("div",{className:"grid grid-cols-[80px_1fr] gap-x-3 gap-y-1.5 items-center text-xs",children:[e&&O.jsxs(O.Fragment,{children:[O.jsx("span",{className:"text-faint",children:"Status"}),O.jsxs("span",{className:"flex items-center gap-1.5",children:[n||!y?O.jsx(cx,{status:t,size:12}):O.jsx(mp,{task:y,size:12,onStatusChange:k}),n?O.jsx("select",{className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:t,onChange:z=>r(z.target.value),children:TE.map(z=>O.jsx("option",{value:z,children:Ld[z]??z},z))}):O.jsx("span",{className:"text-ink",children:Ld[t]??t})]}),O.jsx("span",{className:"text-faint",children:"Due"}),O.jsx("span",{className:"flex items-center gap-1.5",children:n?O.jsxs(O.Fragment,{children:[O.jsx("input",{type:"date",className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:i,onChange:z=>s(z.target.value)}),!i&&O.jsx("span",{className:"text-faint text-xxs",children:"inbox"}),i&&O.jsx("button",{className:"text-faint hover:text-danger text-xxs",onClick:()=>s(""),title:"Clear",children:"✕"})]}):O.jsx("span",{className:i?"text-ink":"text-faint text-xxs",children:i||"inbox"})}),(b||n&&y&&!["done","rejected"].includes(t))&&O.jsxs(O.Fragment,{children:[O.jsx("span",{className:"text-faint",children:"Repeat"}),O.jsx(NF,{isEditing:n,task:y,dueDate:i,recurrence:b,busy:!!w,onSave:S,onSkip:Q,onStop:$,onSplit:A})]}),n&&I&&O.jsxs(O.Fragment,{children:[O.jsx("span",{className:"text-faint",children:"Apply to"}),O.jsx("span",{className:"flex items-center gap-1.5",children:O.jsxs("select",{className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:T??"future",onChange:z=>X==null?void 0:X(z.target.value),title:"Recurrence edit scope",children:[O.jsx("option",{value:"future",children:"This and future"}),O.jsx("option",{value:"this",children:"This occurrence only"})]})})]}),O.jsx("span",{className:"text-faint",children:"Priority"}),O.jsxs("span",{className:"flex items-center gap-1.5",children:[O.jsx(ha,{priority:l,size:12}),n?O.jsx("select",{className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:l,onChange:z=>o(z.target.value),children:wE.map(z=>O.jsx("option",{value:z,children:fa[z]},z))}):O.jsx("span",{className:"text-ink",children:fa[l]})]}),t==="done"&&O.jsxs(O.Fragment,{children:[O.jsx("span",{className:"text-faint",children:"Completed"}),O.jsx("span",{className:"text-muted",children:f?new Date(f).toLocaleString():"Not recorded"})]})]}),O.jsx("span",{className:"text-faint",children:"Tags"}),n?O.jsx("input",{className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:u,onChange:z=>h(z.target.value),placeholder:"comma, separated"}):O.jsx("span",{className:u?"text-muted":"text-faint",children:u||"none"}),O.jsx("span",{className:"text-faint",children:"Created"}),O.jsxs("span",{className:"text-muted",children:[new Date(p).toLocaleString()," · ",O.jsx("span",{className:"text-ink",children:m})]})]})}function _F({state:n,dirty:e}){return n==="saving"?O.jsxs("span",{className:"flex items-center gap-1 text-xxs text-muted",children:[O.jsx(ej,{size:11,className:"animate-spin"}),"Saving…"]}):n==="saved"&&!e?O.jsxs("span",{className:"flex items-center gap-1 text-xxs text-faint",children:[O.jsx(HB,{size:11}),"Saved"]}):n==="error"?O.jsx("span",{className:"text-xxs text-danger",children:"Save failed"}):e?O.jsxs("span",{className:"flex items-center gap-1 text-xxs text-faint",children:[O.jsx(GB,{size:11}),"Unsaved"]}):null}function DF({related:n,onOpen:e,onAdd:t,project:r}){const i=n.filter(s=>s.kind==="note");return O.jsxs("div",{children:[O.jsxs("div",{className:"flex items-baseline justify-between mb-1.5",children:[O.jsxs("h3",{className:"text-xxs uppercase tracking-wider text-muted font-semibold",children:["Related notes ",O.jsx("span",{className:"text-faint",children:i.length})]}),O.jsx("button",{onClick:t,className:"text-xs text-accent hover:underline",children:"+ Add note"})]}),i.length===0?O.jsx("div",{className:"text-xs text-faint border border-dashed border-line rounded p-3 text-center",children:"No linked notes yet."}):O.jsx("div",{className:"border border-line rounded-md divide-y divide-lineSoft overflow-hidden",children:i.map(s=>O.jsxs("button",{className:"w-full text-left px-3 py-2 hover:bg-sidebar flex items-start gap-2",onClick:()=>e(s.id),children:[O.jsxs("div",{className:"flex-1 min-w-0",children:[O.jsx("div",{className:`text-sm truncate ${Oi(s)?"italic text-muted":"text-ink"}`,children:Cn(s)}),!Oi(s)&&s.body&&O.jsx("div",{className:"text-xxs text-muted truncate mt-0.5",children:s.body.replace(/\n/g," ").slice(0,140)})]}),s.pinned&&O.jsx($0,{size:11,className:"text-accent shrink-0 mt-1",fill:"currentColor"})]},s.id))}),!r&&O.jsx("div",{className:"text-xxs text-faint mt-1",children:"No project context — link picker unavailable."})]})}function XP({body:n}){return O.jsx("div",{className:"text-sm leading-relaxed text-ink space-y-2 [&_h1]:text-lg [&_h1]:font-semibold [&_h1]:mt-3 [&_h1]:mb-1.5 [&_h2]:text-base [&_h2]:font-semibold [&_h2]:mt-3 [&_h2]:mb-1 [&_h3]:font-semibold [&_h3]:mt-2 [&_p]:my-1 [&_ul]:list-disc [&_ul]:pl-5 [&_ol]:list-decimal [&_ol]:pl-5 [&_li]:my-0.5 [&_code]:bg-sidebar [&_code]:px-1 [&_code]:py-0.5 [&_code]:rounded [&_code]:text-xs [&_pre]:bg-sidebar [&_pre]:p-2 [&_pre]:rounded [&_pre]:overflow-x-auto [&_pre_code]:bg-transparent [&_pre_code]:p-0 [&_a]:text-accent [&_a]:underline [&_blockquote]:border-l-2 [&_blockquote]:border-line [&_blockquote]:pl-3 [&_blockquote]:text-muted [&_table]:border-collapse [&_th]:border [&_th]:border-line [&_th]:px-2 [&_th]:py-1 [&_td]:border [&_td]:border-line [&_td]:px-2 [&_td]:py-1",children:O.jsx(Vj,{remarkPlugins:[gE],children:n})})}function hx(n,e){const[t,r]=R.useState(()=>{if(typeof window>"u")return e;try{const s=window.localStorage.getItem(n);return s===null?e:JSON.parse(s)}catch{return e}});R.useEffect(()=>{if(!(typeof window>"u"))try{window.localStorage.setItem(n,JSON.stringify(t))}catch{}},[n,t]);const i=R.useCallback(s=>r(s),[]);return[t,i]}const Zl={planned:"Planned",active:"Active",watching:"Watching",paused:"Paused",archived:"Archived"},EE={planned:"Committed, not started",active:"Currently being built",watching:"Built, in maintenance",paused:"Intentionally on hold",archived:"Hidden from active work"},fx=["planned","active","watching","paused","archived"],kO={key:"Key (A→Z)",name:"Name (A→Z)",recent:"Recently active"},BP={archived:!0};function IF(n,e){const t=[...n];return e==="key"?t.sort((r,i)=>r.key.localeCompare(i.key)):e==="name"?t.sort((r,i)=>r.name.localeCompare(i.name)):t.sort((r,i)=>+new Date(i.updatedAt)-+new Date(r.updatedAt))}function zF(){const{open:n}=Zt(),{key:e}=Bd(),[t,r]=hx("botnote.projectSort","key"),[i,s]=hx("botnote.sidebar.projectGroups.collapsed",BP),{data:l,isLoading:o}=Tr({includeArchived:!0}),u=R.useMemo(()=>{const m=l??[];return new Map(fx.map(y=>[y,IF(m.filter(k=>k.status===y),t)]))},[l,t]),h=(l==null?void 0:l.length)??0,f=m=>i[m]??BP[m]??!1,p=m=>{const y=f(m);s({...i,[m]:!y})};return O.jsxs("aside",{className:"w-52 shrink-0 border-r border-line bg-sidebar flex flex-col scrollbar-thin overflow-y-auto text-sm",children:[O.jsxs("nav",{className:"px-1.5 pt-2 space-y-px",children:[O.jsx(Pu,{to:"/",end:!0,icon:O.jsx(UB,{size:12,className:"opacity-70"}),label:"Tasks"}),O.jsx(Pu,{to:"/today",icon:O.jsx(aj,{size:12,className:"opacity-70"}),label:"Today"}),O.jsx(Pu,{to:"/inbox",icon:O.jsx(Ed,{size:12,className:"opacity-70"}),label:"Inbox"}),O.jsx(Pu,{to:"/dashboard",icon:O.jsx(d6,{size:12,className:"opacity-70"}),label:"Workspace"})]}),O.jsxs("div",{className:"mt-3 px-3 py-1.5 flex items-center justify-between",children:[O.jsx("div",{className:"text-xxs uppercase tracking-wider text-muted font-medium",children:"Projects"}),O.jsxs("div",{className:"flex items-center gap-0.5",children:[O.jsx(U0,{trigger:O.jsx("button",{className:"text-muted hover:text-ink p-0.5 rounded hover:bg-sidebarHover flex items-center gap-0.5",title:`Sort: ${kO[t]}`,children:O.jsx(Yy,{size:11})}),align:"end",children:m=>O.jsx(O.Fragment,{children:Object.keys(kO).map(y=>O.jsxs("button",{className:"popover-item",onClick:()=>{r(y),m()},children:[O.jsx("span",{children:kO[y]}),t===y&&O.jsx("span",{className:"ml-auto text-faint",children:"✓"})]},y))})}),O.jsx("button",{className:"text-muted hover:text-ink p-0.5 rounded hover:bg-sidebarHover",title:"New project (n)",onClick:()=>n({kind:"new-project"}),children:O.jsx(op,{size:11})})]})]}),O.jsxs("nav",{className:"px-1.5 space-y-px flex-1",children:[o&&O.jsx("div",{className:"px-2 py-1 text-xs text-faint",children:"Loading…"}),!o&&h===0&&O.jsxs("button",{className:"w-full text-left px-2 py-1 text-xs text-muted hover:bg-sidebarHover rounded",onClick:()=>n({kind:"new-project"}),children:["No projects yet. ",O.jsx("span",{className:"text-accent",children:"Create →"})]}),fx.map(m=>{const y=u.get(m)??[];if(o||y.length===0)return null;const k=f(m);return O.jsxs("div",{className:"pt-2 first:pt-0",children:[O.jsxs("button",{type:"button",className:"w-full px-1.5 pb-1 flex items-center gap-1 text-xxs uppercase tracking-wider text-muted font-medium hover:text-ink",onClick:()=>p(m),title:`${k?"Expand":"Collapse"} ${Zl[m]}`,children:[k?O.jsx(lp,{size:10}):O.jsx(Yy,{size:10}),O.jsx("span",{children:Zl[m]}),O.jsx("span",{className:"ml-auto text-faint tabular-nums",children:y.length})]}),!k&&y.map(b=>O.jsx(ZF,{project:b,activeKey:e},b.id))]},m)})]}),O.jsx("div",{className:"border-t border-line/60 px-1.5 py-1.5",children:O.jsx(Pu,{to:"/settings",icon:O.jsx(Q0,{size:12,className:"opacity-70"}),label:"Settings"})})]})}function ZF({project:n,activeKey:e}){return O.jsxs(I2,{to:`/p/${n.key}`,title:n.status==="archived"?`${n.name} (archived)`:n.name,className:({isActive:t})=>`flex items-center gap-2 px-2 py-1 text-xs rounded ${t||e===n.key?"bg-accentSoft text-accentText":"text-ink2 hover:bg-sidebarHover"} ${n.status==="archived"?"opacity-60":""}`,children:[O.jsx(Us,{color:n.color,icon:n.icon,size:11}),O.jsx("span",{className:"font-mono text-xxs tabular-nums opacity-90 shrink-0",style:{color:n.color},children:n.key}),O.jsx("span",{className:"truncate text-muted",children:n.name})]})}function Pu({to:n,end:e,icon:t,label:r}){return O.jsxs(I2,{to:n,end:e,className:({isActive:i})=>`flex items-center gap-2 px-2 py-1 rounded text-xs ${i?"bg-accentSoft text-accentText":"text-ink2 hover:bg-sidebarHover"}`,children:[t,O.jsx("span",{children:r})]})}function XF(){const{open:n}=Zt(),e=Vs(),t=typeof navigator<"u"&&navigator.platform.includes("Mac")?"⌘":"Ctrl";async function r(){try{await tt.logout()}catch{}e("/login",{replace:!0})}return O.jsxs("header",{className:"h-11 flex items-center justify-between px-3 border-b border-line bg-surface",children:[O.jsxs(ga,{to:"/",className:"flex items-center gap-1.5 text-ink hover:opacity-90",children:[O.jsx("img",{src:"/favicon.svg",alt:"","aria-hidden":"true",className:"w-[18px] h-[18px]"}),O.jsx("span",{className:"text-xs font-semibold tracking-tight",children:"botnote"})]}),O.jsxs("div",{className:"flex items-center gap-1.5",children:[O.jsxs("button",{className:"btn !pl-2 !pr-1.5 gap-2 min-w-[220px] !justify-between text-muted",onClick:()=>n({kind:"search"}),title:"Search (⌘K)",children:[O.jsxs("div",{className:"flex items-center gap-1.5",children:[O.jsx(lj,{size:12}),O.jsx("span",{className:"text-xs",children:"Search…"})]}),O.jsxs("kbd",{children:[t,"K"]})]}),O.jsxs("button",{className:"btn btn-primary",onClick:()=>n({kind:"quick-create"}),title:"Quick create (c)",children:[O.jsx(op,{size:12}),O.jsx("span",{className:"text-xs",children:"New"}),O.jsx("kbd",{className:"!bg-white/15 !border-white/25 !text-white",children:"c"})]}),O.jsx("button",{className:"btn !px-1.5 !py-1 text-muted hover:!text-red-500",onClick:r,title:"Log out","aria-label":"Log out",children:O.jsx(tj,{size:12})})]})]})}function BF(){return W5(),O.jsxs("div",{className:"h-full w-full flex flex-col",children:[O.jsx(XF,{}),O.jsxs("div",{className:"flex-1 min-h-0 flex",children:[O.jsx(zF,{}),O.jsx("main",{className:"flex-1 min-w-0 min-h-0 overflow-hidden bg-bg",children:O.jsx(P5,{})})]}),O.jsx(MF,{})]})}function ME({icon:n,color:e,onIconChange:t,onColorChange:r}){return O.jsxs("div",{className:"space-y-2",children:[O.jsxs("div",{children:[O.jsx("div",{className:"text-xxs text-muted uppercase tracking-wider mb-1",children:"Color"}),O.jsx("div",{className:"flex flex-wrap gap-1.5",children:$F.map(i=>O.jsx("button",{type:"button",onClick:()=>r(i.value),className:"relative w-6 h-6 rounded-full border border-line/80 hover:scale-110 transition-transform",style:{backgroundColor:i.value},title:i.name,children:e===i.value&&O.jsx(Sa,{size:12,className:"absolute inset-0 m-auto text-white",strokeWidth:3})},i.value))})]}),O.jsxs("div",{children:[O.jsx("div",{className:"text-xxs text-muted uppercase tracking-wider mb-1",children:"Icon"}),O.jsx("div",{className:"flex flex-wrap gap-1",children:CE.map(i=>O.jsx("button",{type:"button",onClick:()=>t(i.name),className:`w-7 h-7 rounded flex items-center justify-center border transition-colors ${n===i.name?"border-accent bg-accentSoft":"border-line bg-surface hover:bg-sidebar"}`,title:i.name,children:O.jsx(Us,{color:e,icon:i.name,size:14})},i.name))})]})]})}function kc({title:n,children:e,width:t="max-w-2xl"}){const{close:r}=Zt();return R.useEffect(()=>{const i=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=i}},[]),O.jsx("div",{className:"fixed inset-0 z-50 flex items-start justify-center pt-20 px-4 bg-ink/20",onClick:r,children:O.jsxs("div",{className:`w-full ${t} bg-surface border border-line rounded-lg shadow-2xl overflow-hidden`,onClick:i=>i.stopPropagation(),children:[O.jsxs("div",{className:"h-9 px-3 flex items-center justify-between border-b border-line",children:[O.jsx("div",{className:"text-xs font-semibold text-ink",children:n}),O.jsx("button",{onClick:r,className:"text-muted hover:text-ink p-0.5 rounded hover:bg-line/60",title:"Close (Esc)",children:O.jsx(Hy,{size:14})})]}),e]})})}function WF({projectId:n}){const{data:e}=nF(n),t=mF(),{close:r}=Zt(),[i,s]=R.useState(""),[l,o]=R.useState("active"),[u,h]=R.useState(QE),[f,p]=R.useState($E);if(R.useEffect(()=>{e&&(s(e.name),o(e.status),h(e.color),p(e.icon))},[e==null?void 0:e.id,e==null?void 0:e.name,e==null?void 0:e.status,e==null?void 0:e.color,e==null?void 0:e.icon]),!e)return O.jsx(kc,{title:"Project settings",width:"max-w-md",children:O.jsx("div",{className:"p-4 text-sm text-muted",children:"Loading…"})});const m=e,y=i!==m.name||l!==m.status||u!==m.color||f!==m.icon,k=i.trim().length>0;return O.jsx(kc,{title:`Settings · ${m.key}`,width:"max-w-md",children:O.jsxs("form",{onSubmit:async b=>{b.preventDefault(),!(!y||!k)&&(await t.mutateAsync({id:m.id,fields:{name:i.trim(),status:l,color:u,icon:f}}),r())},className:"p-3 space-y-3",children:[O.jsxs("div",{children:[O.jsx("label",{className:"block text-xxs text-muted uppercase tracking-wider mb-1",children:"Name"}),O.jsx("input",{autoFocus:!0,className:"input",value:i,onChange:b=>s(b.target.value)})]}),O.jsx(ME,{icon:f,color:u,onIconChange:p,onColorChange:h}),O.jsxs("div",{children:[O.jsx("label",{className:"block text-xxs text-muted uppercase tracking-wider mb-1",children:"Status"}),O.jsx("select",{className:"input",value:l,onChange:b=>o(b.target.value),children:bE.map(b=>O.jsxs("option",{value:b,children:[Zl[b]," · ",EE[b]]},b))})]}),O.jsx("div",{className:"flex justify-end items-center pt-1",children:O.jsxs("div",{className:"flex gap-2",children:[O.jsx("button",{type:"button",className:"btn",onClick:r,children:"Cancel"}),O.jsx("button",{type:"submit",className:"btn btn-primary",disabled:!y||!k||t.isPending,children:t.isPending?"Saving…":"Save"})]})}),t.error&&O.jsx("div",{className:"text-xs text-danger",children:t.error.message})]})})}function qF(){const[n,e]=R.useState(""),[t,r]=R.useState(""),[i,s]=R.useState("active"),[l,o]=R.useState(""),[u,h]=R.useState(QE),[f,p]=R.useState($E),m=pF(),{close:y}=Zt(),k=Vs(),b=/^[A-Z][A-Z0-9_]{0,19}$/.test(n)&&t.trim().length>0;return O.jsx(kc,{title:"New project",width:"max-w-md",children:O.jsxs("form",{onSubmit:async w=>{if(w.preventDefault(),!b)return;const S=await m.mutateAsync({key:n.trim(),name:t.trim(),status:i,color:u,icon:f,agentsMd:l.trim()});y(),k(`/p/${S.key}`)},className:"p-3 space-y-3",children:[O.jsxs("div",{children:[O.jsx("label",{className:"block text-xxs text-muted uppercase tracking-wider mb-1",children:"Key (uppercase, e.g. BOT)"}),O.jsx("input",{autoFocus:!0,className:"input font-mono uppercase",value:n,onChange:w=>e(w.target.value.toUpperCase()),placeholder:"BOT",maxLength:20})]}),O.jsxs("div",{children:[O.jsx("label",{className:"block text-xxs text-muted uppercase tracking-wider mb-1",children:"Name"}),O.jsx("input",{className:"input",value:t,onChange:w=>r(w.target.value),placeholder:"botnote"})]}),O.jsx(ME,{icon:f,color:u,onIconChange:p,onColorChange:h}),O.jsxs("div",{children:[O.jsx("label",{className:"block text-xxs text-muted uppercase tracking-wider mb-1",children:"Status"}),O.jsx("select",{className:"input",value:i,onChange:w=>s(w.target.value),children:bE.map(w=>O.jsxs("option",{value:w,children:[Zl[w]," · ",EE[w]]},w))})]}),O.jsxs("div",{children:[O.jsx("label",{className:"block text-xxs text-muted uppercase tracking-wider mb-1",children:"AGENTS.md (optional)"}),O.jsx("textarea",{className:"input !h-24 py-1.5 font-mono text-xs leading-snug resize-y",value:l,onChange:w=>o(w.target.value),placeholder:`## Critical
|
|
465
|
-
- ALWAYS run pnpm typecheck before commit.`})]}),O.jsxs("div",{className:"flex justify-end gap-2 pt-1",children:[O.jsx("button",{type:"button",className:"btn",onClick:y,children:"Cancel"}),O.jsx("button",{type:"submit",className:"btn btn-primary",disabled:!b||m.isPending,children:m.isPending?"Creating…":"Create project"})]}),m.error&&O.jsx("div",{className:"text-xs text-danger",children:m.error.message})]})})}function VF({initialProjectId:n,initialKind:e,initialParentId:t}){const{data:r}=Tr(),[i,s]=R.useState(e??"task"),[l,o]=R.useState(n??""),[u,h]=R.useState(""),[f,p]=R.useState(""),[m,y]=R.useState(""),[k,b]=R.useState(""),[w,S]=R.useState("none"),[Q,$]=R.useState("none"),[A,I]=R.useState(1),[T,X]=R.useState("scheduled"),[z,K]=R.useState(!1),[_,G]=R.useState(t??""),F=gF(),le=kE(),{close:J}=Zt(),{open:Y}=Gi(),pe=r==null?void 0:r.find(C=>C.id===l),ye=i==="note",{data:ee}=F0(ye&&l?l:void 0,["task"]),ie=l.length>0&&(ye?u.trim().length>0||f.trim().length>0:u.trim().length>0&&(Q==="none"||k.length>0));return O.jsx(kc,{title:"Quick create",width:"max-w-xl",children:O.jsxs("form",{onSubmit:async C=>{if(C.preventDefault(),!ie)return;const D=u.trim(),q=m.split(",").map(ce=>ce.trim()).filter(Boolean),E=i==="task"?await F.mutateAsync({kind:"task",projectId:l,title:D,body:f.trim(),tags:q,actorKind:"human",dueAt:k?new Date(k).toISOString():null,priority:w}):await F.mutateAsync({kind:"note",projectId:l,title:D||null,body:f.trim(),tags:q,actorKind:"human",pinned:z,parentId:_||null});i==="task"&&Q!=="none"&&await le.mutateAsync({taskId:E.id,input:{preset:Q,interval:A,anchor:T,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,allDay:!0}}),J(),Y(E.id)},className:"p-3 space-y-3",children:[O.jsxs("div",{className:"flex gap-2",children:[O.jsx("div",{className:"seg w-32",children:vF.map(C=>O.jsx("button",{type:"button","data-active":i===C,onClick:()=>s(C),className:"flex-1 justify-center capitalize",children:C},C))}),O.jsxs("select",{className:"input flex-1",value:l,onChange:C=>o(C.target.value),children:[O.jsx("option",{value:"",children:"— pick a project —"}),r==null?void 0:r.map(C=>O.jsxs("option",{value:C.id,children:[C.key," · ",C.name]},C.id))]})]}),O.jsx("input",{autoFocus:!0,className:"input",placeholder:ye?"Title (optional)":"Title",value:u,onChange:C=>h(C.target.value)}),O.jsx("textarea",{className:"input !h-32 py-1.5 font-mono text-xs leading-snug resize-y",placeholder:"Body (Markdown, optional)",value:f,onChange:C=>p(C.target.value)}),O.jsxs("div",{className:"flex gap-2",children:[O.jsx("input",{className:"input flex-1",placeholder:"Tags (comma-separated, optional)",value:m,onChange:C=>y(C.target.value)}),i==="task"&&O.jsxs(O.Fragment,{children:[O.jsx("input",{type:"date",className:"input w-36",value:k,onChange:C=>b(C.target.value),title:"Due date"}),O.jsx("select",{className:"input w-36",value:w,onChange:C=>S(C.target.value),title:"Priority",children:wE.map(C=>O.jsx("option",{value:C,children:fa[C]},C))})]})]}),i==="task"&&O.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-[1fr_84px_132px] gap-2",children:[O.jsxs("select",{className:"input",value:Q,onChange:C=>$(C.target.value),title:"Repeat",children:[O.jsx("option",{value:"none",children:"Repeat: none"}),O.jsx("option",{value:"hourly",children:"Hourly"}),O.jsx("option",{value:"daily",children:"Daily"}),O.jsx("option",{value:"weekly",children:"Weekly"}),O.jsx("option",{value:"monthly",children:"Monthly"}),O.jsx("option",{value:"yearly",children:"Yearly"})]}),O.jsx("input",{type:"number",min:1,max:999,className:"input",value:A,disabled:Q==="none",onChange:C=>I(Math.max(1,Number(C.target.value)||1)),title:"Repeat interval"}),O.jsxs("select",{className:"input",value:T,disabled:Q==="none",onChange:C=>X(C.target.value),title:"Repeat anchor",children:[O.jsx("option",{value:"scheduled",children:"Scheduled"}),O.jsx("option",{value:"completion",children:"Completion"})]})]}),i==="task"&&w!=="none"&&O.jsxs("div",{className:"flex items-center gap-1.5 text-xxs text-muted",children:[O.jsx(ha,{priority:w,size:11}),O.jsxs("span",{children:[fa[w]," priority"]})]}),ye&&O.jsxs(O.Fragment,{children:[O.jsxs("label",{className:"flex items-center gap-2 text-xs text-muted cursor-pointer",children:[O.jsx("input",{type:"checkbox",checked:z,onChange:C=>K(C.target.checked)}),O.jsx("span",{children:"📌 Pin to project — auto-include in agent opening brief"})]}),ee&&ee.length>0&&O.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted",children:[O.jsx("span",{className:"shrink-0",children:"Link to task:"}),O.jsxs("select",{className:"input flex-1 !h-7 text-xs",value:_,onChange:C=>G(C.target.value),children:[O.jsx("option",{value:"",children:"— none —"}),ee.map(C=>O.jsxs("option",{value:C.id,children:[pe!=null&&pe.key&&C.sequenceId?`${pe.key}-${C.sequenceId} · `:"",Cn(C)]},C.id))]})]})]}),O.jsxs("div",{className:"flex justify-between items-center pt-1",children:[O.jsxs("div",{className:"text-xxs text-muted",children:[O.jsx("kbd",{children:"⌘"}),"+",O.jsx("kbd",{children:"Enter"})," to submit · ",O.jsx("kbd",{children:"Esc"})," to close"]}),O.jsxs("div",{className:"flex gap-2",children:[O.jsx("button",{type:"button",className:"btn",onClick:J,children:"Cancel"}),O.jsx("button",{type:"submit",className:"btn btn-primary",disabled:!ie||F.isPending,children:F.isPending?"Creating…":`Create ${i}`})]})]}),F.error&&O.jsx("div",{className:"text-xs text-danger",children:F.error.message})]})})}const FF={task:"task",note:"note",comment:"comment"};function YF(){const[n,e]=R.useState(""),[t,r]=R.useState(""),{close:i}=Zt(),{open:s}=Gi(),{data:l}=Tr();R.useEffect(()=>{const f=setTimeout(()=>r(n.trim()),200);return()=>clearTimeout(f)},[n]);const{data:o,isFetching:u}=xE(t?{query:t,limit:20}:null),h=R.useMemo(()=>{const f=new Map;return l==null||l.forEach(p=>f.set(p.id,p.key)),f},[l]);return O.jsxs(kc,{title:"Search",children:[O.jsx("div",{className:"p-3 pb-1",children:O.jsxs("div",{className:"flex items-center gap-2 px-2 h-9 border border-line rounded bg-surface focus-within:border-accent focus-within:ring-1 focus-within:ring-accentSoft",children:[O.jsx(lj,{size:14,className:"text-muted"}),O.jsx("input",{autoFocus:!0,placeholder:"Hybrid search (BM25 + vector + time decay)",className:"flex-1 bg-transparent border-none outline-none text-sm",value:n,onChange:f=>e(f.target.value)}),u&&O.jsx("span",{className:"text-xxs text-muted",children:"searching…"})]})}),O.jsxs("div",{className:"max-h-[60vh] overflow-y-auto scrollbar-thin",children:[t&&!u&&(!o||o.hits.length===0)&&O.jsx("div",{className:"px-4 py-6 text-center text-sm text-muted",children:"No matches."}),o==null?void 0:o.hits.map(f=>{const p=f.entity.projectId?h.get(f.entity.projectId):null;return O.jsxs("button",{onClick:()=>{i(),s(f.entity.id)},className:"w-full px-3 py-2 row-hover text-left flex items-start gap-3 border-t border-line/60",children:[O.jsx("span",{className:"chip mt-0.5",children:FF[f.entity.kind]}),O.jsxs("div",{className:"flex-1 min-w-0",children:[O.jsx("div",{className:"text-sm text-ink truncate",children:Cn(f.entity)}),O.jsx("div",{className:"text-xs text-muted truncate mt-0.5",children:f.entity.body.replace(/\n/g," ").slice(0,140)||"—"}),O.jsxs("div",{className:"text-xxs text-faint mt-0.5 flex gap-2",children:[p&&O.jsxs("span",{children:["· ",p]}),O.jsxs("span",{children:["· score ",f.score.toFixed(3)]}),f.components.bm25&&O.jsx("span",{children:"· bm25"}),f.components.cosine&&O.jsx("span",{children:"· vec"})]})]}),O.jsx(WB,{size:13,className:"text-faint mt-1"})]},f.entity.id)}),o&&O.jsxs("div",{className:"px-3 py-2 text-xxs text-muted border-t border-line/60",children:[o.hits.length," result(s) · embedding ",o.embeddingUsed?"ON":"OFF (BM25-only)"]})]})]})}function UF(){const{active:n}=Zt();if(!n)return null;switch(n.kind){case"search":return O.jsx(YF,{});case"quick-create":return O.jsx(VF,{initialProjectId:n.projectId,initialKind:n.initialKind,initialParentId:n.parentId});case"new-project":return O.jsx(qF,{});case"edit-project":return O.jsx(WF,{projectId:n.projectId})}}const GF=`## Critical
|
|
464
|
+
`).find(r=>r.trim()))==null?void 0:t.trim())??"";return e?e.length>60?`${e.slice(0,60)}…`:e:"Untitled"}function Oi(n){return!n.title||!n.title.trim()}const SE=["hourly","daily","weekly","monthly","yearly"],ux=["MO","TU","WE","TH","FR","SA","SU"];function bF(n){if(!n)return;const e=n.match(/^(\d{4})(\d{2})(\d{2})/);if(e)return`${e[1]}-${e[2]}-${e[3]}`;const t=new Date(n);return Number.isNaN(t.getTime())?void 0:t.toISOString().slice(0,10)}function PE(n){var o;const e=new Map(n.replace(/^RRULE:/i,"").split(";").map(u=>u.split("=")).filter(u=>u.length===2).map(([u,h])=>[u.toUpperCase(),h])),t=(o=e.get("FREQ"))==null?void 0:o.toLowerCase(),r=SE.includes(t)?t:void 0,i=Number(e.get("INTERVAL")??1),s=Number(e.get("COUNT")),l=(e.get("BYDAY")??"").split(",").filter(u=>ux.includes(u));return{preset:r,interval:Number.isFinite(i)&&i>0?i:1,byWeekday:l,count:Number.isFinite(s)&&s>0?s:void 0,until:bF(e.get("UNTIL"))}}const wF=["title","body","tags","priority"];function SF(n,e,t){return!e||!wF.some(i=>i in n)?n:{...n,recurrenceScope:t}}const PF={task:{glyph:"☑",color:"text-blue-600 bg-blue-50 border-blue-100"},note:{glyph:"✎",color:"text-slate-700 bg-slate-50 border-slate-200"},comment:{glyph:"💬",color:"text-amber-700 bg-amber-50 border-amber-100"},feedback:{glyph:"📣",color:"text-purple-700 bg-purple-50 border-purple-100"}};function Y0({kind:n,compact:e=!1}){const t=PF[n];return O.jsxs("span",{className:`inline-flex items-center gap-1 px-1.5 h-5 text-xxs rounded border ${t.color}`,title:n,children:[O.jsx("span",{children:t.glyph}),!e&&O.jsx("span",{className:"uppercase tracking-wider",children:n})]})}const CE=[{name:"circle",Icon:Uy},{name:"square",Icon:w6},{name:"triangle",Icon:Q6},{name:"hexagon",Icon:c6},{name:"folder",Icon:o6},{name:"briefcase",Icon:YB},{name:"rocket",Icon:y6},{name:"sparkles",Icon:v6},{name:"target",Icon:P6},{name:"layers",Icon:f6},{name:"code",Icon:KB},{name:"book",Icon:qB},{name:"flame",Icon:s6},{name:"zap",Icon:$6},{name:"star",Icon:S6},{name:"heart",Icon:u6},{name:"box",Icon:VB},{name:"lightbulb",Icon:p6},{name:"pencil",Icon:nj},{name:"hash",Icon:a6}],CF=new Map(CE.map(n=>[n.name,n.Icon]));function QF(n){return n?CF.get(n)??Uy:Uy}const $F=[{name:"gray",value:"#6f6f76"},{name:"red",value:"#ef4444"},{name:"orange",value:"#f59e0b"},{name:"yellow",value:"#eab308"},{name:"green",value:"#10b981"},{name:"teal",value:"#14b8a6"},{name:"cyan",value:"#06b6d4"},{name:"blue",value:"#3b82f6"},{name:"indigo",value:"#5e6ad2"},{name:"purple",value:"#8b5cf6"},{name:"pink",value:"#ec4899"}],QE="#5e6ad2",$E="circle";function TF(n){return n==="circle"||n==="square"||n==="triangle"}function Us({color:n,icon:e,size:t=12,className:r=""}){const i=QF(e),s=TF(e);return O.jsx(i,{size:t,className:`shrink-0 ${r}`,color:n,fill:s?n:"none",strokeWidth:s?1.2:1.8})}function cx({status:n,size:e=14}){const t="currentColor";return n==="done"?O.jsxs("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-statusDone shrink-0",children:[O.jsx("circle",{cx:"7",cy:"7",r:"6",fill:"currentColor"}),O.jsx("path",{d:"M4 7.4L6.2 9.5L10 5.5",stroke:"white",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]}):n==="in_progress"?O.jsxs("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-statusInProgress shrink-0",children:[O.jsx("circle",{cx:"7",cy:"7",r:"6",stroke:t,strokeWidth:"1.4",fill:"none"}),O.jsx("path",{d:"M7 1 a6 6 0 0 1 0 12 z",fill:"currentColor"})]}):n==="rejected"?O.jsxs("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-statusRejected shrink-0",children:[O.jsx("circle",{cx:"7",cy:"7",r:"6",stroke:t,strokeWidth:"1.4",fill:"none"}),O.jsx("path",{d:"M4 4l6 6M10 4l-6 6",stroke:t,strokeWidth:"1.4",strokeLinecap:"round"})]}):O.jsx("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-statusOpen shrink-0",children:O.jsx("circle",{cx:"7",cy:"7",r:"6",stroke:t,strokeWidth:"1.4",fill:"none"})})}function ha({priority:n,size:e=14}){return n==="urgent"?O.jsxs("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-prioUrgent shrink-0",children:[O.jsx("rect",{x:"2",y:"2",width:"10",height:"10",rx:"2",fill:"currentColor"}),O.jsx("path",{d:"M7 4v3.5M7 9.5h.01",stroke:"white",strokeWidth:"1.6",strokeLinecap:"round"})]}):n==="high"?O.jsxs("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-prioHigh shrink-0",children:[O.jsx("rect",{x:"2",y:"8",width:"2.5",height:"4",rx:"0.5",fill:"currentColor"}),O.jsx("rect",{x:"5.75",y:"5",width:"2.5",height:"7",rx:"0.5",fill:"currentColor"}),O.jsx("rect",{x:"9.5",y:"2",width:"2.5",height:"10",rx:"0.5",fill:"currentColor"})]}):n==="medium"?O.jsxs("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-prioMedium shrink-0",children:[O.jsx("rect",{x:"2",y:"8",width:"2.5",height:"4",rx:"0.5",fill:"currentColor"}),O.jsx("rect",{x:"5.75",y:"5",width:"2.5",height:"7",rx:"0.5",fill:"currentColor"}),O.jsx("rect",{x:"9.5",y:"2",width:"2.5",height:"10",rx:"0.5",opacity:"0.3",fill:"currentColor"})]}):n==="low"?O.jsxs("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-prioLow shrink-0",children:[O.jsx("rect",{x:"2",y:"8",width:"2.5",height:"4",rx:"0.5",fill:"currentColor"}),O.jsx("rect",{x:"5.75",y:"5",width:"2.5",height:"7",rx:"0.5",opacity:"0.3",fill:"currentColor"}),O.jsx("rect",{x:"9.5",y:"2",width:"2.5",height:"10",rx:"0.5",opacity:"0.3",fill:"currentColor"})]}):O.jsx("svg",{width:e,height:e,viewBox:"0 0 14 14",className:"text-faint shrink-0",children:O.jsx("line",{x1:"3",y1:"7",x2:"11",y2:"7",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeDasharray:"1.5 1.5"})})}function pp({size:n=12,className:e=""}){return O.jsxs("svg",{width:n,height:n,viewBox:"0 0 14 14",fill:"none",className:`shrink-0 ${e}`,"aria-hidden":"true",children:[O.jsx("path",{d:"M2.5 7a4.5 4.5 0 0 1 7.7-3.2L11.5 5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),O.jsx("path",{d:"M11.5 2v3h-3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),O.jsx("path",{d:"M11.5 7a4.5 4.5 0 0 1-7.7 3.2L2.5 9",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"}),O.jsx("path",{d:"M2.5 12V9h3",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]})}const fa={urgent:"Urgent",high:"High",medium:"Medium",low:"Low",none:"No priority"},Ld={open:"Todo",in_progress:"In progress",done:"Done",rejected:"Cancelled"},TE=["open","in_progress","done","rejected"];function U0({trigger:n,children:e,align:t="start"}){const[r,i]=R.useState(!1),[s,l]=R.useState(null),o=R.useRef(null),u=R.useRef(null),h=R.useCallback(()=>{const f=o.current,p=u.current;if(!f||!p)return;const m=8,y=4,k=f.getBoundingClientRect(),b=p.offsetWidth,w=p.offsetHeight,S=window.innerWidth-b-m,Q=k.bottom+y,$=k.top-w-y,A=Q+w<=window.innerHeight-m,I=$>=m,T=t==="end"?k.right-b:k.left,X=A||!I?Q:$,z=window.innerHeight-w-m;l({top:Math.min(Math.max(m,X),Math.max(m,z)),left:Math.min(Math.max(m,T),Math.max(m,S))})},[t]);return R.useEffect(()=>{if(!r)return;const f=m=>{var k,b;const y=m.target;!((k=o.current)!=null&&k.contains(y))&&!((b=u.current)!=null&&b.contains(y))&&i(!1)},p=m=>{m.key==="Escape"&&i(!1)};return window.addEventListener("mousedown",f),window.addEventListener("keydown",p),()=>{window.removeEventListener("mousedown",f),window.removeEventListener("keydown",p)}},[r]),R.useLayoutEffect(()=>{if(!r){l(null);return}h();const f=window.requestAnimationFrame(h);return window.addEventListener("resize",h),window.addEventListener("scroll",h,!0),()=>{window.cancelAnimationFrame(f),window.removeEventListener("resize",h),window.removeEventListener("scroll",h,!0)}},[r,h]),O.jsxs(O.Fragment,{children:[O.jsx("span",{ref:o,onClick:f=>{f.stopPropagation(),i(p=>!p)},children:n}),r&&RR.createPortal(O.jsx("div",{ref:u,className:"popover",style:{position:"fixed",top:(s==null?void 0:s.top)??-9999,left:(s==null?void 0:s.left)??-9999,visibility:s?"visible":"hidden"},onClick:f=>f.stopPropagation(),children:e(()=>i(!1))}),document.body)]})}function mp({task:n,size:e=14,className:t="",align:r="start",onStatusChange:i}){const s=ql();return O.jsx(U0,{align:r,trigger:O.jsx("button",{type:"button",draggable:!1,className:`inline-flex shrink-0 items-center justify-center rounded p-0.5 -m-0.5 hover:bg-line/40 disabled:opacity-60 ${t}`,onPointerDown:l=>l.stopPropagation(),onMouseDown:l=>l.stopPropagation(),onKeyDown:l=>l.stopPropagation(),onKeyUp:l=>l.stopPropagation(),onDragStart:l=>{l.preventDefault(),l.stopPropagation()},disabled:s.isPending,title:`Change status (${Ld[n.status]??n.status})`,"aria-label":"Change status","aria-haspopup":"menu",children:O.jsx(cx,{status:n.status,size:e})}),children:l=>O.jsx(O.Fragment,{children:TE.map(o=>O.jsxs("button",{className:"popover-item",role:"menuitemradio","aria-checked":n.status===o,onClick:u=>{if(u.stopPropagation(),l(),n.status===o)return;const h=n.status;i==null||i(o),s.mutate({id:n.id,fields:{status:o}},{onError:()=>i==null?void 0:i(h)})},children:[O.jsx(cx,{status:o,size:12}),O.jsx("span",{children:Ld[o]??o}),n.status===o&&O.jsx("span",{className:"ml-auto text-faint",children:"✓"})]},o))})})}const jF=600,jE={hourly:"Hourly",daily:"Daily",weekly:"Weekly",monthly:"Monthly",yearly:"Yearly"},EF={hourly:"hour",daily:"day",weekly:"week",monthly:"month",yearly:"year"};function MF(){const{openId:n,close:e}=Gi();return R.useEffect(()=>{if(!n)return;const t=r=>{if(r.key!=="Escape")return;const i=r.target;if(i&&(i.tagName==="INPUT"||i.tagName==="TEXTAREA"||i.closest(".cm-editor"))){i.blur();return}e()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[n,e]),n?O.jsxs("div",{className:"fixed inset-0 z-30 flex",children:[O.jsx("div",{className:"flex-1 bg-ink/10 backdrop-blur-[1px] cursor-pointer",onClick:e}),O.jsx("aside",{className:"w-[min(680px,92vw)] bg-surface border-l border-line shadow-modal flex flex-col",children:O.jsx(AF,{id:n,onClose:e})})]}):null}function AF({id:n,onClose:e}){var $n,Nt;const{data:t,isLoading:r}=zP(n),{data:i}=Tr(),{data:s}=rF(n),{data:l}=zP((t==null?void 0:t.parentId)??void 0),{data:o}=cF((t==null?void 0:t.kind)==="task"?n:void 0),u=ql(),h=vE(),f=kE(),p=hF(),m=fF(),y=dF(),{open:k}=Zt(),{open:b}=Gi(),[w,S]=R.useState(""),[Q,$]=R.useState(""),[A,I]=R.useState(""),[T,X]=R.useState("open"),[z,K]=R.useState(""),[_,G]=R.useState("none"),[F,le]=R.useState(!1),[J,Y]=R.useState("idle"),[pe,ye]=R.useState("future"),ee=R.useRef(null);R.useEffect(()=>{t&&ee.current!==t.id&&(S(t.title??""),$(t.body),I(t.tags.join(", ")),X(t.status),K(t.dueAt?t.dueAt.slice(0,10):""),G(t.priority),le(!1),Y("idle"),ee.current=t.id)},[t==null?void 0:t.id,t]);const ie=R.useMemo(()=>{if(!F||!t||ee.current!==t.id)return null;const Je=t.kind==="note",kt=w.trim(),Xt=kt||(Je?null:kt),wi=A.split(",").map(Gs=>Gs.trim()).filter(Boolean),on={};Xt!==(t.title??"")&&!(Xt===null&&t.title===null)&&Xt!==t.title&&(on.title=Xt===""?null:Xt),Q!==t.body&&(on.body=Q),JSON.stringify(wi)!==JSON.stringify(t.tags)&&(on.tags=wi),T!==t.status&&(on.status=T),_!==t.priority&&(on.priority=_);const Fr=t.dueAt?t.dueAt.slice(0,10):"";return z!==Fr&&(on.dueAt=z?new Date(z).toISOString():null),on},[F,t,w,Q,A,T,_,z]),C=t!=null&&((Nt=($n=t.metadata)==null?void 0:$n.recurrence)==null?void 0:Nt.role)==="occurrence";function D(Je){return SF(Je,C,pe)}if(R.useEffect(()=>{if(!F||!t||!ie||Object.keys(ie).length===0)return;Y("idle");const Je=setTimeout(async()=>{Y("saving");try{await u.mutateAsync({id:t.id,fields:D(ie)}),Y("saved")}catch{Y("error")}},jF);return()=>clearTimeout(Je)},[F,ie]),r||!t)return O.jsxs("div",{className:"p-6 text-sm text-muted flex items-center justify-between",children:[O.jsx("span",{children:"Loading…"}),O.jsx("button",{onClick:e,className:"text-faint hover:text-ink",children:O.jsx(Hy,{size:14})})]});const q=t,E=i==null?void 0:i.find(Je=>Je.id===q.projectId),ce=E?`/p/${E.key}`:"",$e=q.kind==="note",we=ie?Object.keys(ie).length>0:!1;function Ie(){S(q.title??""),$(q.body),I(q.tags.join(", ")),X(q.status),K(q.dueAt?q.dueAt.slice(0,10):""),G(q.priority),Y("idle"),ye("future"),le(!0)}async function _e(){if(!we||!ie){le(!1);return}Y("saving");try{await u.mutateAsync({id:q.id,fields:D(ie)}),Y("saved"),le(!1)}catch{Y("error")}}async function De(){confirm(`Delete "${Cn(t)}"? This cannot be undone.`)&&(await h.mutateAsync(t.id),e())}async function at(){if(!o||!confirm("Skip this recurring occurrence?"))return;const Je=await p.mutateAsync({taskId:q.id});Je.next&&b(Je.next.id)}async function Fn(){!o||!confirm("Stop this recurrence series?")||await m.mutateAsync({ruleId:o.rule.id})}async function Hi(Je,kt){if(!kt)throw new Error("First due date is required");const Xt=q.dueAt?q.dueAt.slice(0,10):"";kt!==Xt&&await u.mutateAsync({id:q.id,fields:{dueAt:new Date(`${kt}T12:00:00Z`).toISOString()}}),await f.mutateAsync({taskId:q.id,input:Je})}async function Vr(Je){if(!o)return;const{dtstart:kt,...Xt}=Je;await y.mutateAsync({ruleId:o.rule.id,input:Xt})}return O.jsxs(O.Fragment,{children:[O.jsxs("header",{className:"h-12 px-3 border-b border-line flex items-center gap-2 shrink-0",children:[O.jsx("button",{onClick:e,className:"p-1 -m-1 text-faint hover:text-ink rounded hover:bg-sidebar",title:"Close (Esc)",children:O.jsx(Hy,{size:16})}),O.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted min-w-0",children:[E&&O.jsxs(O.Fragment,{children:[O.jsxs(ga,{to:ce,className:"flex items-center gap-1 hover:opacity-80",children:[O.jsx(Us,{color:E.color,icon:E.icon,size:12}),O.jsx("span",{className:"font-mono tabular-nums",style:{color:E.color},children:E.key})]}),O.jsx(lp,{size:11,className:"text-faint shrink-0"})]}),O.jsx(Y0,{kind:t.kind,compact:!0}),t.sequenceId&&E&&O.jsxs("span",{className:"font-mono text-faint tabular-nums",children:[E.key,"-",t.sequenceId]})]}),O.jsxs("div",{className:"ml-auto flex items-center gap-1.5",children:[F&&O.jsx(_F,{state:J,dirty:we}),$e&&O.jsx("button",{className:`p-1 -m-1 rounded hover:bg-sidebar ${t.pinned?"text-accent":"text-faint hover:text-ink"}`,onClick:()=>u.mutate({id:t.id,fields:{pinned:!t.pinned}}),title:t.pinned?"Unpin from opening brief":"Pin to opening brief",children:O.jsx($0,{size:13,fill:t.pinned?"currentColor":"none"})}),F?O.jsx("button",{className:"p-1 -m-1 text-faint hover:text-ink rounded hover:bg-sidebar",onClick:_e,title:"Finish editing",children:O.jsx(Sa,{size:13})}):O.jsx("button",{className:"p-1 -m-1 text-faint hover:text-ink rounded hover:bg-sidebar",onClick:Ie,title:"Edit",children:O.jsx(nj,{size:13})}),O.jsx("button",{className:"p-1 -m-1 text-faint hover:text-danger rounded hover:bg-danger/10",onClick:De,title:"Delete",children:O.jsx(cj,{size:13})})]})]}),O.jsx("div",{className:"flex-1 overflow-y-auto scrollbar-thin",children:O.jsxs("div",{className:"px-6 py-5 space-y-4",children:[F?O.jsx("input",{className:`w-full text-lg font-semibold bg-transparent border-none outline-none focus:outline-none px-0 py-1 ${w?"":"placeholder:text-muted/60 placeholder:italic"}`,value:w,placeholder:$e?"Untitled":"Title",onChange:Je=>S(Je.target.value),autoFocus:!0}):O.jsx("h2",{className:`text-lg font-semibold py-1 ${Oi(t)?"italic text-muted":"text-ink"}`,children:Cn(t)}),O.jsx(LF,{isEditing:F,isTask:t.kind==="task",status:T,setStatus:X,dueDate:z,setDueDate:K,priority:_,setPriority:G,tagsStr:A,setTagsStr:I,completedAt:t.completedAt,createdAt:t.createdAt,actorKind:t.actorKind,task:q.kind==="task"?{...q,status:T}:void 0,onStatusChange:X,recurrence:o,recurrenceBusy:u.isPending||f.isPending||p.isPending||m.isPending||y.isPending,onSaveRecurrence:Hi,onSkipOccurrence:at,onStopRecurrence:Fn,onSplitRecurrence:Vr,isRecurringOccurrence:C,occurrenceScope:pe,setOccurrenceScope:ye}),$e&&l&&O.jsxs("button",{className:"w-full text-left flex items-center gap-2 text-xs px-3 py-2 rounded border border-line bg-sidebar/50 hover:border-accent hover:bg-accentSoft/40 transition-colors",onClick:()=>b(l.id),title:"Open linked task",children:[O.jsx(m6,{size:12,className:"text-faint"}),O.jsx("span",{className:"text-faint",children:"Linked to task:"}),l.sequenceId&&E&&O.jsxs("span",{className:"font-mono text-faint tabular-nums",children:[E.key,"-",l.sequenceId]}),O.jsx("span",{className:"text-ink truncate",children:Cn(l)})]}),O.jsx("div",{className:"border border-line rounded-md overflow-hidden bg-surface",children:F?O.jsx(C0,{value:Q,onChange:Je=>$(Je),extensions:[iT()],basicSetup:{lineNumbers:!1,foldGutter:!1,highlightActiveLine:!1,highlightActiveLineGutter:!1},theme:"light",minHeight:"220px",placeholder:"Write in Markdown…"}):Q?O.jsx("div",{className:"min-h-[120px] p-3",children:O.jsx(XP,{body:Q})}):O.jsx("div",{className:"min-h-[120px] p-3 text-xs text-faint",children:"No description."})}),F&&Q&&O.jsxs("details",{className:"text-xxs text-muted",children:[O.jsx("summary",{className:"cursor-pointer hover:text-ink",children:"Preview rendered Markdown"}),O.jsx("div",{className:"mt-2 p-3 border border-line rounded bg-sidebar/30",children:O.jsx(XP,{body:Q})})]}),t.kind==="task"&&O.jsx(DF,{related:s??[],onOpen:b,onAdd:()=>{E&&k({kind:"quick-create",projectId:E.id,initialKind:"note",parentId:t.id})},project:E})]})})]})}function RF(n){const e=n.rule,t=PE(e.rrule),r=t.preset??"daily",i=t.interval??1,s=i>1?`Every ${i} ${EF[r]}s`:jE[r],l=t.byWeekday.length?` · ${t.byWeekday.join(", ")}`:"",o=e.anchor==="completion"?"after completion":"scheduled",u=e.enabled?"":" · stopped",h=e.nextOccurrenceAt?` · next ${new Date(e.nextOccurrenceAt).toLocaleDateString()}`:"";return`${s}${l} · ${o}${h}${u}`}function ZP(n){const e=n?PE(n.rule.rrule):void 0;return{preset:n?(e==null?void 0:e.preset)??"weekly":"none",interval:(e==null?void 0:e.interval)??1,anchor:(n==null?void 0:n.rule.anchor)??"scheduled",byWeekday:(e==null?void 0:e.byWeekday)??[],count:e!=null&&e.count?String(e.count):"",until:(e==null?void 0:e.until)??""}}function NF({isEditing:n,task:e,dueDate:t,recurrence:r,onSave:i,onSkip:s,onStop:l,onSplit:o,busy:u}){const[h,f]=R.useState(()=>ZP(r)),[p,m]=R.useState(null);if(R.useEffect(()=>{f(ZP(r)),m(null)},[n,e==null?void 0:e.id,e==null?void 0:e.dueAt,r==null?void 0:r.rule.id,r==null?void 0:r.rule.rrule,r==null?void 0:r.rule.anchor]),!e)return null;const y=["done","rejected"].includes(e.status),k=!!(r!=null&&r.rule.enabled)&&(r==null?void 0:r.rule.currentOccurrenceId)===e.id,b=!!(r!=null&&r.rule.enabled),w=h.preset!=="none",S=!!i&&t.length>0&&w&&h.interval>=1,Q=!!o&&!!(r!=null&&r.rule.enabled)&&w&&h.interval>=1;function $(z){f(K=>({...K,...z})),m(null)}function A(z){const K=new Set(h.byWeekday);K.has(z)?K.delete(z):K.add(z),$({byWeekday:ux.filter(_=>K.has(_))})}function I(){const z={preset:h.preset,interval:h.interval,anchor:h.anchor,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,allDay:!0};return h.preset==="weekly"&&h.byWeekday.length>0&&(z.byWeekday=h.byWeekday),h.count&&(z.count=Number(h.count)),h.until&&(z.until=new Date(`${h.until}T23:59:59Z`).toISOString()),z}async function T(){if(h.preset==="none"){m(null);return}if(!t){m("Set due date first");return}if(h.count&&h.until){m("Use count or until");return}try{await(i==null?void 0:i(I(),t)),m(null)}catch(z){m(z instanceof Error?z.message:"Could not save repeat")}}async function X(){if(h.preset!=="none"){if(h.count&&h.until){m("Use count or until");return}try{await(o==null?void 0:o(I())),m(null)}catch(z){m(z instanceof Error?z.message:"Could not split series")}}}return!n||y?O.jsxs("span",{className:"min-w-0 flex items-center gap-2",children:[O.jsx("span",{className:r?"text-muted truncate":"text-faint",children:r?RF(r):"None"}),k&&s&&O.jsx("button",{className:"text-faint hover:text-ink disabled:opacity-40 shrink-0",onClick:s,disabled:u,title:"Skip occurrence",children:"Skip"})]}):O.jsxs("span",{className:"min-w-0 flex flex-col gap-1",children:[O.jsxs("span",{className:"flex flex-wrap items-center gap-1.5",children:[O.jsxs("select",{className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:h.preset,onChange:z=>$({preset:z.target.value}),title:"Repeat",children:[O.jsx("option",{value:"none",children:"None"}),SE.map(z=>O.jsx("option",{value:z,children:jE[z]},z))]}),w&&O.jsxs(O.Fragment,{children:[O.jsx("input",{type:"number",min:1,max:999,className:"w-14 bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 focus:outline-none focus:ring-1 focus:ring-accent",value:h.interval,onChange:z=>$({interval:Math.max(1,Number(z.target.value)||1)}),title:"Interval"}),O.jsxs("select",{className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:h.anchor,onChange:z=>$({anchor:z.target.value}),title:"Anchor",children:[O.jsx("option",{value:"scheduled",children:"Scheduled"}),O.jsx("option",{value:"completion",children:"Completion"})]}),O.jsx("button",{className:"text-accent hover:underline disabled:opacity-40",onClick:T,disabled:u||!S,children:"Save"}),Q&&O.jsx("button",{className:"text-faint hover:text-ink disabled:opacity-40",onClick:X,disabled:u,title:"Keep past occurrences on the old cadence; apply this cadence going forward",children:"Split"})]}),b&&l&&O.jsx("button",{className:"text-faint hover:text-danger disabled:opacity-40",onClick:l,disabled:u,title:"Stop series",children:"Stop"})]}),w&&h.preset==="weekly"&&O.jsx("span",{className:"flex flex-wrap gap-1",children:ux.map(z=>O.jsx("button",{type:"button",className:`px-1.5 py-0.5 rounded border text-[10px] ${h.byWeekday.includes(z)?"border-accent bg-accentSoft text-accent":"border-line bg-surface text-muted hover:text-ink"}`,onClick:()=>A(z),children:z},z))}),w&&O.jsxs("span",{className:"flex flex-wrap items-center gap-1.5",children:[O.jsx("input",{type:"number",min:1,max:1e4,className:"w-20 bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 focus:outline-none focus:ring-1 focus:ring-accent",value:h.count,onChange:z=>$({count:z.target.value,until:z.target.value?"":h.until}),placeholder:"Count",title:"Count"}),O.jsx("input",{type:"date",className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:h.until,onChange:z=>$({until:z.target.value,count:z.target.value?"":h.count}),title:"Until"}),!t&&O.jsx("span",{className:"text-faint text-xxs",children:"Set due date first"}),p&&O.jsx("span",{className:"text-danger text-xxs truncate",children:p})]})]})}function LF({isEditing:n,isTask:e,status:t,setStatus:r,dueDate:i,setDueDate:s,priority:l,setPriority:o,tagsStr:u,setTagsStr:h,completedAt:f,createdAt:p,actorKind:m,task:y,onStatusChange:k,recurrence:b,recurrenceBusy:w,onSaveRecurrence:S,onSkipOccurrence:Q,onStopRecurrence:$,onSplitRecurrence:A,isRecurringOccurrence:I,occurrenceScope:T,setOccurrenceScope:X}){return O.jsxs("div",{className:"grid grid-cols-[80px_1fr] gap-x-3 gap-y-1.5 items-center text-xs",children:[e&&O.jsxs(O.Fragment,{children:[O.jsx("span",{className:"text-faint",children:"Status"}),O.jsxs("span",{className:"flex items-center gap-1.5",children:[n||!y?O.jsx(cx,{status:t,size:12}):O.jsx(mp,{task:y,size:12,onStatusChange:k}),n?O.jsx("select",{className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:t,onChange:z=>r(z.target.value),children:TE.map(z=>O.jsx("option",{value:z,children:Ld[z]??z},z))}):O.jsx("span",{className:"text-ink",children:Ld[t]??t})]}),O.jsx("span",{className:"text-faint",children:"Due"}),O.jsx("span",{className:"flex items-center gap-1.5",children:n?O.jsxs(O.Fragment,{children:[O.jsx("input",{type:"date",className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:i,onChange:z=>s(z.target.value)}),!i&&O.jsx("span",{className:"text-faint text-xxs",children:"inbox"}),i&&O.jsx("button",{className:"text-faint hover:text-danger text-xxs",onClick:()=>s(""),title:"Clear",children:"✕"})]}):O.jsx("span",{className:i?"text-ink":"text-faint text-xxs",children:i||"inbox"})}),(b||n&&y&&!["done","rejected"].includes(t))&&O.jsxs(O.Fragment,{children:[O.jsx("span",{className:"text-faint",children:"Repeat"}),O.jsx(NF,{isEditing:n,task:y,dueDate:i,recurrence:b,busy:!!w,onSave:S,onSkip:Q,onStop:$,onSplit:A})]}),n&&I&&O.jsxs(O.Fragment,{children:[O.jsx("span",{className:"text-faint",children:"Apply to"}),O.jsx("span",{className:"flex items-center gap-1.5",children:O.jsxs("select",{className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:T??"future",onChange:z=>X==null?void 0:X(z.target.value),title:"Recurrence edit scope",children:[O.jsx("option",{value:"future",children:"This and future"}),O.jsx("option",{value:"this",children:"This occurrence only"})]})})]}),O.jsx("span",{className:"text-faint",children:"Priority"}),O.jsxs("span",{className:"flex items-center gap-1.5",children:[O.jsx(ha,{priority:l,size:12}),n?O.jsx("select",{className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:l,onChange:z=>o(z.target.value),children:wE.map(z=>O.jsx("option",{value:z,children:fa[z]},z))}):O.jsx("span",{className:"text-ink",children:fa[l]})]}),t==="done"&&O.jsxs(O.Fragment,{children:[O.jsx("span",{className:"text-faint",children:"Completed"}),O.jsx("span",{className:"text-muted",children:f?new Date(f).toLocaleString():"Not recorded"})]})]}),O.jsx("span",{className:"text-faint",children:"Tags"}),n?O.jsx("input",{className:"bg-transparent border-none text-xs text-ink hover:bg-sidebar rounded px-1 -mx-1 focus:outline-none focus:ring-1 focus:ring-accent",value:u,onChange:z=>h(z.target.value),placeholder:"comma, separated"}):O.jsx("span",{className:u?"text-muted":"text-faint",children:u||"none"}),O.jsx("span",{className:"text-faint",children:"Created"}),O.jsxs("span",{className:"text-muted",children:[new Date(p).toLocaleString()," · ",O.jsx("span",{className:"text-ink",children:m})]})]})}function _F({state:n,dirty:e}){return n==="saving"?O.jsxs("span",{className:"flex items-center gap-1 text-xxs text-muted",children:[O.jsx(ej,{size:11,className:"animate-spin"}),"Saving…"]}):n==="saved"&&!e?O.jsxs("span",{className:"flex items-center gap-1 text-xxs text-faint",children:[O.jsx(HB,{size:11}),"Saved"]}):n==="error"?O.jsx("span",{className:"text-xxs text-danger",children:"Save failed"}):e?O.jsxs("span",{className:"flex items-center gap-1 text-xxs text-faint",children:[O.jsx(GB,{size:11}),"Unsaved"]}):null}function DF({related:n,onOpen:e,onAdd:t,project:r}){const i=n.filter(s=>s.kind==="note");return O.jsxs("div",{children:[O.jsxs("div",{className:"flex items-baseline justify-between mb-1.5",children:[O.jsxs("h3",{className:"text-xxs uppercase tracking-wider text-muted font-semibold",children:["Related notes ",O.jsx("span",{className:"text-faint",children:i.length})]}),O.jsx("button",{onClick:t,className:"text-xs text-accent hover:underline",children:"+ Add note"})]}),i.length===0?O.jsx("div",{className:"text-xs text-faint border border-dashed border-line rounded p-3 text-center",children:"No linked notes yet."}):O.jsx("div",{className:"border border-line rounded-md divide-y divide-lineSoft overflow-hidden",children:i.map(s=>O.jsxs("button",{className:"w-full text-left px-3 py-2 hover:bg-sidebar flex items-start gap-2",onClick:()=>e(s.id),children:[O.jsxs("div",{className:"flex-1 min-w-0",children:[O.jsx("div",{className:`text-sm truncate ${Oi(s)?"italic text-muted":"text-ink"}`,children:Cn(s)}),!Oi(s)&&s.body&&O.jsx("div",{className:"text-xxs text-muted truncate mt-0.5",children:s.body.replace(/\n/g," ").slice(0,140)})]}),s.pinned&&O.jsx($0,{size:11,className:"text-accent shrink-0 mt-1",fill:"currentColor"})]},s.id))}),!r&&O.jsx("div",{className:"text-xxs text-faint mt-1",children:"No project context — link picker unavailable."})]})}function XP({body:n}){return O.jsx("div",{className:"text-sm leading-relaxed text-ink space-y-2 [&_h1]:text-lg [&_h1]:font-semibold [&_h1]:mt-3 [&_h1]:mb-1.5 [&_h2]:text-base [&_h2]:font-semibold [&_h2]:mt-3 [&_h2]:mb-1 [&_h3]:font-semibold [&_h3]:mt-2 [&_p]:my-1 [&_ul]:list-disc [&_ul]:pl-5 [&_ol]:list-decimal [&_ol]:pl-5 [&_li]:my-0.5 [&_code]:bg-sidebar [&_code]:px-1 [&_code]:py-0.5 [&_code]:rounded [&_code]:text-xs [&_pre]:bg-sidebar [&_pre]:p-2 [&_pre]:rounded [&_pre]:overflow-x-auto [&_pre_code]:bg-transparent [&_pre_code]:p-0 [&_a]:text-accent [&_a]:underline [&_blockquote]:border-l-2 [&_blockquote]:border-line [&_blockquote]:pl-3 [&_blockquote]:text-muted [&_table]:border-collapse [&_th]:border [&_th]:border-line [&_th]:px-2 [&_th]:py-1 [&_td]:border [&_td]:border-line [&_td]:px-2 [&_td]:py-1",children:O.jsx(Vj,{remarkPlugins:[gE],children:n})})}function hx(n,e){const[t,r]=R.useState(()=>{if(typeof window>"u")return e;try{const s=window.localStorage.getItem(n);return s===null?e:JSON.parse(s)}catch{return e}});R.useEffect(()=>{if(!(typeof window>"u"))try{window.localStorage.setItem(n,JSON.stringify(t))}catch{}},[n,t]);const i=R.useCallback(s=>r(s),[]);return[t,i]}const Zl={planned:"Planned",active:"Active",watching:"Watching",paused:"Paused",archived:"Archived"},EE={planned:"Committed, not started",active:"Currently being built",watching:"Built, in maintenance",paused:"Intentionally on hold",archived:"Hidden from active work"},fx=["planned","active","watching","paused","archived"],kO={key:"Key (A→Z)",name:"Name (A→Z)",recent:"Recently active"},BP={archived:!0};function IF(n,e){const t=[...n];return e==="key"?t.sort((r,i)=>r.key.localeCompare(i.key)):e==="name"?t.sort((r,i)=>r.name.localeCompare(i.name)):t.sort((r,i)=>+new Date(i.updatedAt)-+new Date(r.updatedAt))}function zF(){const{open:n}=Zt(),{key:e}=Bd(),[t,r]=hx("botnote.projectSort","key"),[i,s]=hx("botnote.sidebar.projectGroups.collapsed",BP),{data:l,isLoading:o}=Tr({includeArchived:!0}),u=R.useMemo(()=>{const m=l??[];return new Map(fx.map(y=>[y,IF(m.filter(k=>k.status===y),t)]))},[l,t]),h=(l==null?void 0:l.length)??0,f=m=>i[m]??BP[m]??!1,p=m=>{const y=f(m);s({...i,[m]:!y})};return O.jsxs("aside",{className:"w-52 shrink-0 border-r border-line bg-sidebar flex flex-col scrollbar-thin overflow-y-auto text-sm",children:[O.jsxs("nav",{className:"px-1.5 pt-2 space-y-px",children:[O.jsx(Pu,{to:"/",end:!0,icon:O.jsx(UB,{size:12,className:"opacity-70"}),label:"Tasks"}),O.jsx(Pu,{to:"/today",icon:O.jsx(aj,{size:12,className:"opacity-70"}),label:"Today"}),O.jsx(Pu,{to:"/inbox",icon:O.jsx(Ed,{size:12,className:"opacity-70"}),label:"Inbox"}),O.jsx(Pu,{to:"/dashboard",icon:O.jsx(d6,{size:12,className:"opacity-70"}),label:"Workspace"})]}),O.jsxs("div",{className:"mt-3 px-3 py-1.5 flex items-center justify-between",children:[O.jsx("div",{className:"text-xxs uppercase tracking-wider text-muted font-medium",children:"Projects"}),O.jsxs("div",{className:"flex items-center gap-0.5",children:[O.jsx(U0,{trigger:O.jsx("button",{className:"text-muted hover:text-ink p-0.5 rounded hover:bg-sidebarHover flex items-center gap-0.5",title:`Sort: ${kO[t]}`,children:O.jsx(Yy,{size:11})}),align:"end",children:m=>O.jsx(O.Fragment,{children:Object.keys(kO).map(y=>O.jsxs("button",{className:"popover-item",onClick:()=>{r(y),m()},children:[O.jsx("span",{children:kO[y]}),t===y&&O.jsx("span",{className:"ml-auto text-faint",children:"✓"})]},y))})}),O.jsx("button",{className:"text-muted hover:text-ink p-0.5 rounded hover:bg-sidebarHover",title:"New project (n)",onClick:()=>n({kind:"new-project"}),children:O.jsx(op,{size:11})})]})]}),O.jsxs("nav",{className:"px-1.5 space-y-px flex-1",children:[o&&O.jsx("div",{className:"px-2 py-1 text-xs text-faint",children:"Loading…"}),!o&&h===0&&O.jsxs("button",{className:"w-full text-left px-2 py-1 text-xs text-muted hover:bg-sidebarHover rounded",onClick:()=>n({kind:"new-project"}),children:["No projects yet. ",O.jsx("span",{className:"text-accent",children:"Create →"})]}),fx.map(m=>{const y=u.get(m)??[];if(o||y.length===0)return null;const k=f(m);return O.jsxs("div",{className:"pt-2 first:pt-0",children:[O.jsxs("button",{type:"button",className:"w-full px-1.5 pb-1 flex items-center gap-1 text-xxs uppercase tracking-wider text-muted font-medium hover:text-ink",onClick:()=>p(m),title:`${k?"Expand":"Collapse"} ${Zl[m]}`,children:[k?O.jsx(lp,{size:10}):O.jsx(Yy,{size:10}),O.jsx("span",{children:Zl[m]}),O.jsx("span",{className:"ml-auto text-faint tabular-nums",children:y.length})]}),!k&&y.map(b=>O.jsx(ZF,{project:b,activeKey:e},b.id))]},m)})]}),O.jsx("div",{className:"border-t border-line/60 px-1.5 py-1.5",children:O.jsx(Pu,{to:"/settings",icon:O.jsx(Q0,{size:12,className:"opacity-70"}),label:"Settings"})})]})}function ZF({project:n,activeKey:e}){return O.jsxs(I2,{to:`/p/${n.key}`,title:n.status==="archived"?`${n.name} (archived)`:n.name,className:({isActive:t})=>`flex items-center gap-2 px-2 py-1 text-xs rounded ${t||e===n.key?"bg-accentSoft text-accentText":"text-ink2 hover:bg-sidebarHover"} ${n.status==="archived"?"opacity-60":""}`,children:[O.jsx(Us,{color:n.color,icon:n.icon,size:11}),O.jsx("span",{className:"font-mono text-xxs tabular-nums opacity-90 shrink-0",style:{color:n.color},children:n.key}),O.jsx("span",{className:"truncate text-muted",children:n.name})]})}function Pu({to:n,end:e,icon:t,label:r}){return O.jsxs(I2,{to:n,end:e,className:({isActive:i})=>`flex items-center gap-2 px-2 py-1 rounded text-xs ${i?"bg-accentSoft text-accentText":"text-ink2 hover:bg-sidebarHover"}`,children:[t,O.jsx("span",{children:r})]})}function XF(){const{open:n}=Zt(),e=Vs(),t=typeof navigator<"u"&&navigator.platform.includes("Mac")?"⌘":"Ctrl";async function r(){try{await tt.logout()}catch{}e("/login",{replace:!0})}return O.jsxs("header",{className:"h-11 flex items-center justify-between px-3 border-b border-line bg-surface",children:[O.jsxs(ga,{to:"/",className:"flex items-center gap-1.5 text-ink hover:opacity-90",children:[O.jsx("img",{src:"/favicon.svg",alt:"","aria-hidden":"true",className:"w-[18px] h-[18px]"}),O.jsx("span",{className:"text-xs font-semibold tracking-tight",children:"botnote"})]}),O.jsxs("div",{className:"flex items-center gap-1.5",children:[O.jsxs("button",{className:"btn !pl-2 !pr-1.5 gap-2 min-w-[220px] !justify-between text-muted",onClick:()=>n({kind:"search"}),title:"Search (⌘K)",children:[O.jsxs("div",{className:"flex items-center gap-1.5",children:[O.jsx(lj,{size:12}),O.jsx("span",{className:"text-xs",children:"Search…"})]}),O.jsxs("kbd",{children:[t,"K"]})]}),O.jsxs("button",{className:"btn btn-primary",onClick:()=>n({kind:"quick-create"}),title:"Quick create (c)",children:[O.jsx(op,{size:12}),O.jsx("span",{className:"text-xs",children:"New"}),O.jsx("kbd",{className:"!bg-white/15 !border-white/25 !text-white",children:"c"})]}),O.jsx("button",{className:"btn !px-1.5 !py-1 text-muted hover:!text-red-500",onClick:r,title:"Log out","aria-label":"Log out",children:O.jsx(tj,{size:12})})]})]})}function BF(){return W5(),O.jsxs("div",{className:"h-full w-full flex flex-col",children:[O.jsx(XF,{}),O.jsxs("div",{className:"flex-1 min-h-0 flex",children:[O.jsx(zF,{}),O.jsx("main",{className:"flex-1 min-w-0 min-h-0 overflow-hidden bg-bg",children:O.jsx(P5,{})})]}),O.jsx(MF,{})]})}function ME({icon:n,color:e,onIconChange:t,onColorChange:r}){return O.jsxs("div",{className:"space-y-2",children:[O.jsxs("div",{children:[O.jsx("div",{className:"text-xxs text-muted uppercase tracking-wider mb-1",children:"Color"}),O.jsx("div",{className:"flex flex-wrap gap-1.5",children:$F.map(i=>O.jsx("button",{type:"button",onClick:()=>r(i.value),className:"relative w-6 h-6 rounded-full border border-line/80 hover:scale-110 transition-transform",style:{backgroundColor:i.value},title:i.name,children:e===i.value&&O.jsx(Sa,{size:12,className:"absolute inset-0 m-auto text-white",strokeWidth:3})},i.value))})]}),O.jsxs("div",{children:[O.jsx("div",{className:"text-xxs text-muted uppercase tracking-wider mb-1",children:"Icon"}),O.jsx("div",{className:"flex flex-wrap gap-1",children:CE.map(i=>O.jsx("button",{type:"button",onClick:()=>t(i.name),className:`w-7 h-7 rounded flex items-center justify-center border transition-colors ${n===i.name?"border-accent bg-accentSoft":"border-line bg-surface hover:bg-sidebar"}`,title:i.name,children:O.jsx(Us,{color:e,icon:i.name,size:14})},i.name))})]})]})}function kc({title:n,children:e,width:t="max-w-2xl"}){const{close:r}=Zt();return R.useEffect(()=>{const i=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=i}},[]),O.jsx("div",{className:"fixed inset-0 z-50 flex items-start justify-center pt-20 px-4 bg-ink/20",onClick:r,children:O.jsxs("div",{className:`w-full ${t} bg-surface border border-line rounded-lg shadow-2xl overflow-hidden`,onClick:i=>i.stopPropagation(),children:[O.jsxs("div",{className:"h-9 px-3 flex items-center justify-between border-b border-line",children:[O.jsx("div",{className:"text-xs font-semibold text-ink",children:n}),O.jsx("button",{onClick:r,className:"text-muted hover:text-ink p-0.5 rounded hover:bg-line/60",title:"Close (Esc)",children:O.jsx(Hy,{size:14})})]}),e]})})}function WF({projectId:n}){const{data:e}=nF(n),t=mF(),{close:r}=Zt(),[i,s]=R.useState(""),[l,o]=R.useState("active"),[u,h]=R.useState(QE),[f,p]=R.useState($E);if(R.useEffect(()=>{e&&(s(e.name),o(e.status),h(e.color),p(e.icon))},[e==null?void 0:e.id,e==null?void 0:e.name,e==null?void 0:e.status,e==null?void 0:e.color,e==null?void 0:e.icon]),!e)return O.jsx(kc,{title:"Project settings",width:"max-w-md",children:O.jsx("div",{className:"p-4 text-sm text-muted",children:"Loading…"})});const m=e,y=i!==m.name||l!==m.status||u!==m.color||f!==m.icon,k=i.trim().length>0;return O.jsx(kc,{title:`Settings · ${m.key}`,width:"max-w-md",children:O.jsxs("form",{onSubmit:async b=>{b.preventDefault(),!(!y||!k)&&(await t.mutateAsync({id:m.id,fields:{name:i.trim(),status:l,color:u,icon:f}}),r())},className:"p-3 space-y-3",children:[O.jsxs("div",{children:[O.jsx("label",{className:"block text-xxs text-muted uppercase tracking-wider mb-1",children:"Name"}),O.jsx("input",{autoFocus:!0,className:"input",value:i,onChange:b=>s(b.target.value)})]}),O.jsx(ME,{icon:f,color:u,onIconChange:p,onColorChange:h}),O.jsxs("div",{children:[O.jsx("label",{className:"block text-xxs text-muted uppercase tracking-wider mb-1",children:"Status"}),O.jsx("select",{className:"input",value:l,onChange:b=>o(b.target.value),children:bE.map(b=>O.jsxs("option",{value:b,children:[Zl[b]," · ",EE[b]]},b))})]}),O.jsx("div",{className:"flex justify-end items-center pt-1",children:O.jsxs("div",{className:"flex gap-2",children:[O.jsx("button",{type:"button",className:"btn",onClick:r,children:"Cancel"}),O.jsx("button",{type:"submit",className:"btn btn-primary",disabled:!y||!k||t.isPending,children:t.isPending?"Saving…":"Save"})]})}),t.error&&O.jsx("div",{className:"text-xs text-danger",children:t.error.message})]})})}function qF(){const[n,e]=R.useState(""),[t,r]=R.useState(""),[i,s]=R.useState("active"),[l,o]=R.useState(""),[u,h]=R.useState(QE),[f,p]=R.useState($E),m=pF(),{close:y}=Zt(),k=Vs(),b=/^[A-Z][A-Z0-9_]{0,19}$/.test(n)&&t.trim().length>0;return O.jsx(kc,{title:"New project",width:"max-w-md",children:O.jsxs("form",{onSubmit:async w=>{if(w.preventDefault(),!b)return;const S=await m.mutateAsync({key:n.trim(),name:t.trim(),status:i,color:u,icon:f,agentsMd:l.trim()});y(),k(`/p/${S.key}`)},className:"p-3 space-y-3",children:[O.jsxs("div",{children:[O.jsx("label",{className:"block text-xxs text-muted uppercase tracking-wider mb-1",children:"Key (uppercase, e.g. BOT)"}),O.jsx("input",{autoFocus:!0,className:"input font-mono uppercase",value:n,onChange:w=>e(w.target.value.toUpperCase()),placeholder:"BOT",maxLength:20})]}),O.jsxs("div",{children:[O.jsx("label",{className:"block text-xxs text-muted uppercase tracking-wider mb-1",children:"Name"}),O.jsx("input",{className:"input",value:t,onChange:w=>r(w.target.value),placeholder:"botnote"})]}),O.jsx(ME,{icon:f,color:u,onIconChange:p,onColorChange:h}),O.jsxs("div",{children:[O.jsx("label",{className:"block text-xxs text-muted uppercase tracking-wider mb-1",children:"Status"}),O.jsx("select",{className:"input",value:i,onChange:w=>s(w.target.value),children:bE.map(w=>O.jsxs("option",{value:w,children:[Zl[w]," · ",EE[w]]},w))})]}),O.jsxs("div",{children:[O.jsx("label",{className:"block text-xxs text-muted uppercase tracking-wider mb-1",children:"AGENTS.md (optional)"}),O.jsx("textarea",{className:"input !h-24 py-1.5 font-mono text-xs leading-snug resize-y",value:l,onChange:w=>o(w.target.value),placeholder:`## Critical
|
|
465
|
+
- ALWAYS run pnpm typecheck before commit.`})]}),O.jsxs("div",{className:"flex justify-end gap-2 pt-1",children:[O.jsx("button",{type:"button",className:"btn",onClick:y,children:"Cancel"}),O.jsx("button",{type:"submit",className:"btn btn-primary",disabled:!b||m.isPending,children:m.isPending?"Creating…":"Create project"})]}),m.error&&O.jsx("div",{className:"text-xs text-danger",children:m.error.message})]})})}function VF({initialProjectId:n,initialKind:e,initialParentId:t}){const{data:r}=Tr(),[i,s]=R.useState(e??"task"),[l,o]=R.useState(n??""),[u,h]=R.useState(""),[f,p]=R.useState(""),[m,y]=R.useState(""),[k,b]=R.useState(""),[w,S]=R.useState("none"),[Q,$]=R.useState("none"),[A,I]=R.useState(1),[T,X]=R.useState("scheduled"),[z,K]=R.useState(!1),[_,G]=R.useState(t??""),F=gF(),le=kE(),{close:J}=Zt(),{open:Y}=Gi(),pe=r==null?void 0:r.find(C=>C.id===l),ye=i==="note",{data:ee}=F0(ye&&l?l:void 0,["task"]),ie=l.length>0&&(ye?u.trim().length>0||f.trim().length>0:u.trim().length>0&&(Q==="none"||k.length>0));return O.jsx(kc,{title:"Quick create",width:"max-w-xl",children:O.jsxs("form",{onSubmit:async C=>{if(C.preventDefault(),!ie)return;const D=u.trim(),q=m.split(",").map(ce=>ce.trim()).filter(Boolean),E=i==="task"?await F.mutateAsync({kind:"task",projectId:l,title:D,body:f.trim(),tags:q,actorKind:"human",dueAt:k?new Date(k).toISOString():null,priority:w}):await F.mutateAsync({kind:"note",projectId:l,title:D||null,body:f.trim(),tags:q,actorKind:"human",pinned:z,parentId:_||null});i==="task"&&Q!=="none"&&await le.mutateAsync({taskId:E.id,input:{preset:Q,interval:A,anchor:T,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,allDay:!0}}),J(),Y(E.id)},className:"p-3 space-y-3",children:[O.jsxs("div",{className:"flex gap-2",children:[O.jsx("div",{className:"seg w-32",children:vF.map(C=>O.jsx("button",{type:"button","data-active":i===C,onClick:()=>s(C),className:"flex-1 justify-center capitalize",children:C},C))}),O.jsxs("select",{className:"input flex-1",value:l,onChange:C=>o(C.target.value),children:[O.jsx("option",{value:"",children:"— pick a project —"}),r==null?void 0:r.map(C=>O.jsxs("option",{value:C.id,children:[C.key," · ",C.name]},C.id))]})]}),O.jsx("input",{autoFocus:!0,className:"input",placeholder:ye?"Title (optional)":"Title",value:u,onChange:C=>h(C.target.value)}),O.jsx("textarea",{className:"input !h-32 py-1.5 font-mono text-xs leading-snug resize-y",placeholder:"Body (Markdown, optional)",value:f,onChange:C=>p(C.target.value)}),O.jsxs("div",{className:"flex gap-2",children:[O.jsx("input",{className:"input flex-1",placeholder:"Tags (comma-separated, optional)",value:m,onChange:C=>y(C.target.value)}),i==="task"&&O.jsxs(O.Fragment,{children:[O.jsx("input",{type:"date",className:"input w-36",value:k,onChange:C=>b(C.target.value),title:"Due date"}),O.jsx("select",{className:"input w-36",value:w,onChange:C=>S(C.target.value),title:"Priority",children:wE.map(C=>O.jsx("option",{value:C,children:fa[C]},C))})]})]}),i==="task"&&O.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-[1fr_84px_132px] gap-2",children:[O.jsxs("select",{className:"input",value:Q,onChange:C=>$(C.target.value),title:"Repeat",children:[O.jsx("option",{value:"none",children:"Repeat: none"}),O.jsx("option",{value:"hourly",children:"Hourly"}),O.jsx("option",{value:"daily",children:"Daily"}),O.jsx("option",{value:"weekly",children:"Weekly"}),O.jsx("option",{value:"monthly",children:"Monthly"}),O.jsx("option",{value:"yearly",children:"Yearly"})]}),O.jsx("input",{type:"number",min:1,max:999,className:"input",value:A,disabled:Q==="none",onChange:C=>I(Math.max(1,Number(C.target.value)||1)),title:"Repeat interval"}),O.jsxs("select",{className:"input",value:T,disabled:Q==="none",onChange:C=>X(C.target.value),title:"Repeat anchor",children:[O.jsx("option",{value:"scheduled",children:"Scheduled"}),O.jsx("option",{value:"completion",children:"Completion"})]})]}),i==="task"&&w!=="none"&&O.jsxs("div",{className:"flex items-center gap-1.5 text-xxs text-muted",children:[O.jsx(ha,{priority:w,size:11}),O.jsxs("span",{children:[fa[w]," priority"]})]}),ye&&O.jsxs(O.Fragment,{children:[O.jsxs("label",{className:"flex items-center gap-2 text-xs text-muted cursor-pointer",children:[O.jsx("input",{type:"checkbox",checked:z,onChange:C=>K(C.target.checked)}),O.jsx("span",{children:"📌 Pin to project — auto-include in agent opening brief"})]}),ee&&ee.length>0&&O.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted",children:[O.jsx("span",{className:"shrink-0",children:"Link to task:"}),O.jsxs("select",{className:"input flex-1 !h-7 text-xs",value:_,onChange:C=>G(C.target.value),children:[O.jsx("option",{value:"",children:"— none —"}),ee.map(C=>O.jsxs("option",{value:C.id,children:[pe!=null&&pe.key&&C.sequenceId?`${pe.key}-${C.sequenceId} · `:"",Cn(C)]},C.id))]})]})]}),O.jsxs("div",{className:"flex justify-between items-center pt-1",children:[O.jsxs("div",{className:"text-xxs text-muted",children:[O.jsx("kbd",{children:"⌘"}),"+",O.jsx("kbd",{children:"Enter"})," to submit · ",O.jsx("kbd",{children:"Esc"})," to close"]}),O.jsxs("div",{className:"flex gap-2",children:[O.jsx("button",{type:"button",className:"btn",onClick:J,children:"Cancel"}),O.jsx("button",{type:"submit",className:"btn btn-primary",disabled:!ie||F.isPending,children:F.isPending?"Creating…":`Create ${i}`})]})]}),F.error&&O.jsx("div",{className:"text-xs text-danger",children:F.error.message})]})})}const FF={task:"task",note:"note",comment:"comment",feedback:"feedback"};function YF(){const[n,e]=R.useState(""),[t,r]=R.useState(""),{close:i}=Zt(),{open:s}=Gi(),{data:l}=Tr();R.useEffect(()=>{const f=setTimeout(()=>r(n.trim()),200);return()=>clearTimeout(f)},[n]);const{data:o,isFetching:u}=xE(t?{query:t,limit:20}:null),h=R.useMemo(()=>{const f=new Map;return l==null||l.forEach(p=>f.set(p.id,p.key)),f},[l]);return O.jsxs(kc,{title:"Search",children:[O.jsx("div",{className:"p-3 pb-1",children:O.jsxs("div",{className:"flex items-center gap-2 px-2 h-9 border border-line rounded bg-surface focus-within:border-accent focus-within:ring-1 focus-within:ring-accentSoft",children:[O.jsx(lj,{size:14,className:"text-muted"}),O.jsx("input",{autoFocus:!0,placeholder:"Hybrid search (BM25 + vector + time decay)",className:"flex-1 bg-transparent border-none outline-none text-sm",value:n,onChange:f=>e(f.target.value)}),u&&O.jsx("span",{className:"text-xxs text-muted",children:"searching…"})]})}),O.jsxs("div",{className:"max-h-[60vh] overflow-y-auto scrollbar-thin",children:[t&&!u&&(!o||o.hits.length===0)&&O.jsx("div",{className:"px-4 py-6 text-center text-sm text-muted",children:"No matches."}),o==null?void 0:o.hits.map(f=>{const p=f.entity.projectId?h.get(f.entity.projectId):null;return O.jsxs("button",{onClick:()=>{i(),s(f.entity.id)},className:"w-full px-3 py-2 row-hover text-left flex items-start gap-3 border-t border-line/60",children:[O.jsx("span",{className:"chip mt-0.5",children:FF[f.entity.kind]}),O.jsxs("div",{className:"flex-1 min-w-0",children:[O.jsx("div",{className:"text-sm text-ink truncate",children:Cn(f.entity)}),O.jsx("div",{className:"text-xs text-muted truncate mt-0.5",children:f.entity.body.replace(/\n/g," ").slice(0,140)||"—"}),O.jsxs("div",{className:"text-xxs text-faint mt-0.5 flex gap-2",children:[p&&O.jsxs("span",{children:["· ",p]}),O.jsxs("span",{children:["· score ",f.score.toFixed(3)]}),f.components.bm25&&O.jsx("span",{children:"· bm25"}),f.components.cosine&&O.jsx("span",{children:"· vec"})]})]}),O.jsx(WB,{size:13,className:"text-faint mt-1"})]},f.entity.id)}),o&&O.jsxs("div",{className:"px-3 py-2 text-xxs text-muted border-t border-line/60",children:[o.hits.length," result(s) · embedding ",o.embeddingUsed?"ON":"OFF (BM25-only)"]})]})]})}function UF(){const{active:n}=Zt();if(!n)return null;switch(n.kind){case"search":return O.jsx(YF,{});case"quick-create":return O.jsx(VF,{initialProjectId:n.projectId,initialKind:n.initialKind,initialParentId:n.parentId});case"new-project":return O.jsx(qF,{});case"edit-project":return O.jsx(WF,{projectId:n.projectId})}}const GF=`## Critical
|
|
466
466
|
- NEVER commit credentials.
|
|
467
467
|
- ALWAYS run tests before commit.
|
|
468
468
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{color-scheme:light;--shadow-soft: 0 1px 2px rgba(15, 15, 20, .04), 0 0 0 1px rgba(15, 15, 20, .04)}html,body,#root{height:100%}body{--tw-bg-opacity: 1;background-color:rgb(252 252 253 / var(--tw-bg-opacity, 1));font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14.5px;line-height:20px;--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1));font-feature-settings:"cv11","ss01","ss03","tnum";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-moz-selection{background:#ebecf9;color:#3b46a3}::selection{background:#ebecf9;color:#3b46a3}code,pre,kbd{font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace}kbd{display:inline-flex;height:18px;min-width:18px;align-items:center;justify-content:center;border-radius:3px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:.25rem;padding-right:.25rem;line-height:15px;--tw-text-opacity: 1;color:rgb(111 111 118 / var(--tw-text-opacity, 1));font-size:11px;line-height:1}button,input,textarea,select{font-family:inherit}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.btn{display:inline-flex;height:2rem;align-items:center;justify-content:center;gap:.375rem;border-radius:5px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:.625rem;padding-right:.625rem;font-size:12px;line-height:16px;--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn:hover{--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity, 1))}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{--tw-border-opacity: 1;border-color:rgb(94 106 210 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(94 106 210 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.btn-primary:hover{--tw-bg-opacity: 1;background-color:rgb(79 90 189 / var(--tw-bg-opacity, 1))}.btn-ghost{border-color:transparent;--tw-text-opacity: 1;color:rgb(111 111 118 / var(--tw-text-opacity, 1))}.btn-ghost:hover{--tw-bg-opacity: 1;background-color:rgb(238 239 241 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1))}.chip{display:inline-flex;height:20px;align-items:center;gap:.25rem;border-radius:5px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(236 236 239 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity, 1));padding-left:.375rem;padding-right:.375rem;font-size:11px;line-height:15px;--tw-text-opacity: 1;color:rgb(111 111 118 / var(--tw-text-opacity, 1))}.input{height:2rem;width:100%;border-radius:5px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:.5rem;padding-right:.5rem;font-size:13.5px;line-height:18.5px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.input:focus{--tw-border-opacity: 1;border-color:rgb(94 106 210 / var(--tw-border-opacity, 1));outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(235 236 249 / var(--tw-ring-opacity, 1))}.row-hover{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.row-hover:hover{background-color:#eeeff199}.task-row{display:flex;height:2.25rem;cursor:pointer;align-items:center;gap:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(236 236 239 / var(--tw-border-opacity, 1));padding-left:.75rem;padding-right:.75rem;font-size:13.5px;line-height:18.5px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.task-row:hover{background-color:#eeeff180}.seg{display:inline-flex;overflow:hidden;border-radius:5px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(111 111 118 / var(--tw-text-opacity, 1))}.seg button{height:2rem;padding-left:.625rem;padding-right:.625rem;font-size:12px;line-height:16px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.seg button:hover{--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1))}.seg button[data-active=true]{--tw-bg-opacity: 1;background-color:rgb(12 12 13 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.seg button[data-active=true]:hover{--tw-bg-opacity: 1;background-color:rgb(31 31 36 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.divider{border-top-width:1px;--tw-border-opacity: 1;border-color:rgb(236 236 239 / var(--tw-border-opacity, 1))}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:#e6e6e9 transparent}.scrollbar-thin::-webkit-scrollbar{width:8px;height:8px}.scrollbar-thin::-webkit-scrollbar-thumb{background:#e6e6e9;border-radius:4px;border:2px solid transparent;background-clip:padding-box}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:#6f6f76;background-clip:padding-box}.popover{position:absolute;z-index:40;min-width:160px;border-radius:5px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-top:.25rem;padding-bottom:.25rem;--tw-shadow: 0 2px 6px rgba(15,15,20,.06), 0 0 0 1px rgba(15,15,20,.06);--tw-shadow-colored: 0 2px 6px var(--tw-shadow-color), 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.popover-item{display:flex;width:100%;cursor:pointer;align-items:center;gap:.5rem;padding:.25rem .5rem;text-align:left;font-size:12px;line-height:16px;--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1))}.popover-item:hover{--tw-bg-opacity: 1;background-color:rgb(238 239 241 / var(--tw-bg-opacity, 1))}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.right-0{right:0}.top-0{top:0}.top-9{top:2.25rem}.isolate{isolation:isolate}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.-m-0\.5{margin:-.125rem}.-m-1{margin:-.25rem}.m-auto{margin:auto}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.\!h-24{height:6rem!important}.\!h-32{height:8rem!important}.\!h-4{height:1rem!important}.\!h-6{height:1.5rem!important}.\!h-7{height:1.75rem!important}.h-11{height:2.75rem}.h-12{height:3rem}.h-2{height:.5rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[18px\]{height:18px}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.min-h-0{min-height:0px}.min-h-\[104px\]{min-height:104px}.min-h-\[112px\]{min-height:112px}.min-h-\[120px\]{min-height:120px}.min-h-screen{min-height:100vh}.\!w-6{width:1.5rem!important}.w-14{width:3.5rem}.w-20{width:5rem}.w-32{width:8rem}.w-36{width:9rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-\[18px\]{width:18px}.w-\[2px\]{width:2px}.w-\[min\(680px\,92vw\)\]{width:min(680px,92vw)}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[220px\]{min-width:220px}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize-y{resize:vertical}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[80px_1fr\]{grid-template-columns:80px 1fr}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.\!justify-between{justify-content:space-between!important}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-px{gap:1px}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-1\.5{row-gap:.375rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1px * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-line\/60>:not([hidden])~:not([hidden]){border-color:#e6e6e999}.divide-lineSoft>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(236 236 239 / var(--tw-divide-opacity, 1))}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.rounded{border-radius:5px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:7px}.rounded-md{border-radius:5px}.rounded-sm{border-radius:3px}.border{border-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.\!border-emerald-500\/30{border-color:#10b9814d!important}.\!border-red-500\/30{border-color:#ef44444d!important}.\!border-white\/25{border-color:#ffffff40!important}.border-accent{--tw-border-opacity: 1;border-color:rgb(94 106 210 / var(--tw-border-opacity, 1))}.border-accent\/20{border-color:#5e6ad233}.border-amber-100{--tw-border-opacity: 1;border-color:rgb(254 243 199 / var(--tw-border-opacity, 1))}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-blue-100{--tw-border-opacity: 1;border-color:rgb(219 234 254 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-current{border-color:currentColor}.border-danger\/30{border-color:#eb57574d}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-line{--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1))}.border-line\/60{border-color:#e6e6e999}.border-line\/80{border-color:#e6e6e9cc}.border-lineSoft{--tw-border-opacity: 1;border-color:rgb(236 236 239 / var(--tw-border-opacity, 1))}.border-red-500\/30{border-color:#ef44444d}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-success\/30{border-color:#4cb7824d}.border-warn{--tw-border-opacity: 1;border-color:rgb(242 153 74 / var(--tw-border-opacity, 1))}.border-warn\/30{border-color:#f2994a4d}.\!bg-white\/15{background-color:#ffffff26!important}.bg-accent{--tw-bg-opacity: 1;background-color:rgb(94 106 210 / var(--tw-bg-opacity, 1))}.bg-accentSoft{--tw-bg-opacity: 1;background-color:rgb(235 236 249 / var(--tw-bg-opacity, 1))}.bg-accentSoft\/30{background-color:#ebecf94d}.bg-accentSoft\/40{background-color:#ebecf966}.bg-accentSoft\/50{background-color:#ebecf980}.bg-accentSoft\/60{background-color:#ebecf999}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-bg{--tw-bg-opacity: 1;background-color:rgb(252 252 253 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-danger\/10{background-color:#eb57571a}.bg-danger\/5{background-color:#eb57570d}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-ink\/10{background-color:#0c0c0d1a}.bg-ink\/20{background-color:#0c0c0d33}.bg-line\/30{background-color:#e6e6e94d}.bg-red-500\/10{background-color:#ef44441a}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-sidebar{--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity, 1))}.bg-sidebar\/20{background-color:#f7f8f933}.bg-sidebar\/30{background-color:#f7f8f94d}.bg-sidebar\/40{background-color:#f7f8f966}.bg-sidebar\/50{background-color:#f7f8f980}.bg-sidebar\/60{background-color:#f7f8f999}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-success\/10{background-color:#4cb7821a}.bg-surface{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-warn\/10{background-color:#f2994a1a}.\!p-0{padding:0!important}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.\!px-1\.5{padding-left:.375rem!important;padding-right:.375rem!important}.\!py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.\!pl-2{padding-left:.5rem!important}.\!pr-1\.5{padding-right:.375rem!important}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-6{padding-bottom:1.5rem}.pl-1{padding-left:.25rem}.pr-1\.5{padding-right:.375rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace}.\!text-\[10px\]{font-size:10px!important}.text-\[10px\]{font-size:10px}.text-base{font-size:14.5px;line-height:20px}.text-lg{font-size:17px;line-height:24px}.text-sm{font-size:13.5px;line-height:18.5px}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:12px;line-height:16px}.text-xxs{font-size:11px;line-height:15px}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.\!text-emerald-600{--tw-text-opacity: 1 !important;color:rgb(5 150 105 / var(--tw-text-opacity, 1))!important}.\!text-red-500{--tw-text-opacity: 1 !important;color:rgb(239 68 68 / var(--tw-text-opacity, 1))!important}.\!text-white{--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.text-accent{--tw-text-opacity: 1;color:rgb(94 106 210 / var(--tw-text-opacity, 1))}.text-accentText{--tw-text-opacity: 1;color:rgb(59 70 163 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-danger{--tw-text-opacity: 1;color:rgb(235 87 87 / var(--tw-text-opacity, 1))}.text-emerald-900{--tw-text-opacity: 1;color:rgb(6 78 59 / var(--tw-text-opacity, 1))}.text-faint{--tw-text-opacity: 1;color:rgb(168 168 175 / var(--tw-text-opacity, 1))}.text-ink{--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1))}.text-ink2{--tw-text-opacity: 1;color:rgb(31 31 36 / var(--tw-text-opacity, 1))}.text-muted{--tw-text-opacity: 1;color:rgb(111 111 118 / var(--tw-text-opacity, 1))}.text-prioHigh{--tw-text-opacity: 1;color:rgb(242 153 74 / var(--tw-text-opacity, 1))}.text-prioLow{--tw-text-opacity: 1;color:rgb(168 168 175 / var(--tw-text-opacity, 1))}.text-prioMedium{--tw-text-opacity: 1;color:rgb(94 106 210 / var(--tw-text-opacity, 1))}.text-prioUrgent{--tw-text-opacity: 1;color:rgb(235 87 87 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-rose-900{--tw-text-opacity: 1;color:rgb(136 19 55 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-statusDone{--tw-text-opacity: 1;color:rgb(76 183 130 / var(--tw-text-opacity, 1))}.text-statusInProgress{--tw-text-opacity: 1;color:rgb(242 153 74 / var(--tw-text-opacity, 1))}.text-statusOpen{--tw-text-opacity: 1;color:rgb(168 168 175 / var(--tw-text-opacity, 1))}.text-statusRejected{--tw-text-opacity: 1;color:rgb(235 87 87 / var(--tw-text-opacity, 1))}.text-warn{--tw-text-opacity: 1;color:rgb(242 153 74 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-modal{--tw-shadow: 0 12px 32px rgba(15,15,20,.08), 0 0 0 1px rgba(15,15,20,.06);--tw-shadow-colored: 0 12px 32px var(--tw-shadow-color), 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-accent{--tw-ring-opacity: 1;--tw-ring-color: rgb(94 106 210 / var(--tw-ring-opacity, 1))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-\[1px\]{--tw-backdrop-blur: blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.placeholder\:italic::-moz-placeholder{font-style:italic}.placeholder\:italic::placeholder{font-style:italic}.placeholder\:text-muted\/60::-moz-placeholder{color:#6f6f7699}.placeholder\:text-muted\/60::placeholder{color:#6f6f7699}.first\:pt-0:first-child{padding-top:0}.last\:border-b-0:last-child{border-bottom-width:0px}.last\:border-r-0:last-child{border-right-width:0px}.focus-within\:border-accent:focus-within{--tw-border-opacity: 1;border-color:rgb(94 106 210 / var(--tw-border-opacity, 1))}.focus-within\:ring-1:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-accentSoft:focus-within{--tw-ring-opacity: 1;--tw-ring-color: rgb(235 236 249 / var(--tw-ring-opacity, 1))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-accent:hover{--tw-border-opacity: 1;border-color:rgb(94 106 210 / var(--tw-border-opacity, 1))}.hover\:border-accent\/50:hover{border-color:#5e6ad280}.hover\:\!bg-red-500\/10:hover{background-color:#ef44441a!important}.hover\:bg-accentSoft\/40:hover{background-color:#ebecf966}.hover\:bg-danger\/10:hover{background-color:#eb57571a}.hover\:bg-line\/40:hover{background-color:#e6e6e966}.hover\:bg-line\/60:hover{background-color:#e6e6e999}.hover\:bg-sidebar:hover{--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity, 1))}.hover\:bg-sidebarHover:hover{--tw-bg-opacity: 1;background-color:rgb(238 239 241 / var(--tw-bg-opacity, 1))}.hover\:\!text-red-500:hover{--tw-text-opacity: 1 !important;color:rgb(239 68 68 / var(--tw-text-opacity, 1))!important}.hover\:text-accent:hover{--tw-text-opacity: 1;color:rgb(94 106 210 / var(--tw-text-opacity, 1))}.hover\:text-danger:hover{--tw-text-opacity: 1;color:rgb(235 87 87 / var(--tw-text-opacity, 1))}.hover\:text-ink:hover{--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.focus\:border-accent:focus{--tw-border-opacity: 1;border-color:rgb(94 106 210 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-accent:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(94 106 210 / var(--tw-ring-opacity, 1))}.focus\:ring-accent\/40:focus{--tw-ring-color: rgb(94 106 210 / .4)}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-60:disabled{opacity:.6}.group:hover .group-hover\:text-ink{--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1))}.group\/col:hover .group-hover\/col\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}@media(min-width:640px){.sm\:grid-cols-\[1fr_84px_132px\]{grid-template-columns:1fr 84px 132px}}@media(min-width:768px){.md\:inline-flex{display:inline-flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&_a\]\:text-accent a{--tw-text-opacity: 1;color:rgb(94 106 210 / var(--tw-text-opacity, 1))}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_blockquote\]\:border-l-2 blockquote{border-left-width:2px}.\[\&_blockquote\]\:border-line blockquote{--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1))}.\[\&_blockquote\]\:pl-3 blockquote{padding-left:.75rem}.\[\&_blockquote\]\:text-muted blockquote{--tw-text-opacity: 1;color:rgb(111 111 118 / var(--tw-text-opacity, 1))}.\[\&_code\]\:rounded code{border-radius:5px}.\[\&_code\]\:bg-sidebar code{--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity, 1))}.\[\&_code\]\:px-1 code{padding-left:.25rem;padding-right:.25rem}.\[\&_code\]\:py-0\.5 code{padding-top:.125rem;padding-bottom:.125rem}.\[\&_code\]\:text-xs code{font-size:12px;line-height:16px}.\[\&_h1\]\:mb-1\.5 h1{margin-bottom:.375rem}.\[\&_h1\]\:mt-3 h1{margin-top:.75rem}.\[\&_h1\]\:text-lg h1{font-size:17px;line-height:24px}.\[\&_h1\]\:font-semibold h1{font-weight:600}.\[\&_h2\]\:mb-1 h2{margin-bottom:.25rem}.\[\&_h2\]\:mt-3 h2{margin-top:.75rem}.\[\&_h2\]\:text-base h2{font-size:14.5px;line-height:20px}.\[\&_h2\]\:font-semibold h2{font-weight:600}.\[\&_h3\]\:mt-2 h3{margin-top:.5rem}.\[\&_h3\]\:font-semibold h3{font-weight:600}.\[\&_li\]\:my-0\.5 li{margin-top:.125rem;margin-bottom:.125rem}.\[\&_ol\]\:list-decimal ol{list-style-type:decimal}.\[\&_ol\]\:pl-5 ol{padding-left:1.25rem}.\[\&_p\]\:my-1 p{margin-top:.25rem;margin-bottom:.25rem}.\[\&_pre\]\:overflow-x-auto pre{overflow-x:auto}.\[\&_pre\]\:rounded pre{border-radius:5px}.\[\&_pre\]\:bg-sidebar pre{--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity, 1))}.\[\&_pre\]\:p-2 pre{padding:.5rem}.\[\&_pre_code\]\:bg-transparent pre code{background-color:transparent}.\[\&_pre_code\]\:p-0 pre code{padding:0}.\[\&_table\]\:border-collapse table{border-collapse:collapse}.\[\&_td\]\:border td{border-width:1px}.\[\&_td\]\:border-line td{--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1))}.\[\&_td\]\:px-2 td{padding-left:.5rem;padding-right:.5rem}.\[\&_td\]\:py-1 td{padding-top:.25rem;padding-bottom:.25rem}.\[\&_th\]\:border th{border-width:1px}.\[\&_th\]\:border-line th{--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1))}.\[\&_th\]\:px-2 th{padding-left:.5rem;padding-right:.5rem}.\[\&_th\]\:py-1 th{padding-top:.25rem;padding-bottom:.25rem}.\[\&_ul\]\:list-disc ul{list-style-type:disc}.\[\&_ul\]\:pl-5 ul{padding-left:1.25rem}
|
|
1
|
+
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{color-scheme:light;--shadow-soft: 0 1px 2px rgba(15, 15, 20, .04), 0 0 0 1px rgba(15, 15, 20, .04)}html,body,#root{height:100%}body{--tw-bg-opacity: 1;background-color:rgb(252 252 253 / var(--tw-bg-opacity, 1));font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14.5px;line-height:20px;--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1));font-feature-settings:"cv11","ss01","ss03","tnum";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-moz-selection{background:#ebecf9;color:#3b46a3}::selection{background:#ebecf9;color:#3b46a3}code,pre,kbd{font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace}kbd{display:inline-flex;height:18px;min-width:18px;align-items:center;justify-content:center;border-radius:3px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:.25rem;padding-right:.25rem;line-height:15px;--tw-text-opacity: 1;color:rgb(111 111 118 / var(--tw-text-opacity, 1));font-size:11px;line-height:1}button,input,textarea,select{font-family:inherit}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.btn{display:inline-flex;height:2rem;align-items:center;justify-content:center;gap:.375rem;border-radius:5px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:.625rem;padding-right:.625rem;font-size:12px;line-height:16px;--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn:hover{--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity, 1))}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{--tw-border-opacity: 1;border-color:rgb(94 106 210 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(94 106 210 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.btn-primary:hover{--tw-bg-opacity: 1;background-color:rgb(79 90 189 / var(--tw-bg-opacity, 1))}.btn-ghost{border-color:transparent;--tw-text-opacity: 1;color:rgb(111 111 118 / var(--tw-text-opacity, 1))}.btn-ghost:hover{--tw-bg-opacity: 1;background-color:rgb(238 239 241 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1))}.chip{display:inline-flex;height:20px;align-items:center;gap:.25rem;border-radius:5px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(236 236 239 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity, 1));padding-left:.375rem;padding-right:.375rem;font-size:11px;line-height:15px;--tw-text-opacity: 1;color:rgb(111 111 118 / var(--tw-text-opacity, 1))}.input{height:2rem;width:100%;border-radius:5px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:.5rem;padding-right:.5rem;font-size:13.5px;line-height:18.5px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.input:focus{--tw-border-opacity: 1;border-color:rgb(94 106 210 / var(--tw-border-opacity, 1));outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(235 236 249 / var(--tw-ring-opacity, 1))}.row-hover{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.row-hover:hover{background-color:#eeeff199}.task-row{display:flex;height:2.25rem;cursor:pointer;align-items:center;gap:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgb(236 236 239 / var(--tw-border-opacity, 1));padding-left:.75rem;padding-right:.75rem;font-size:13.5px;line-height:18.5px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.task-row:hover{background-color:#eeeff180}.seg{display:inline-flex;overflow:hidden;border-radius:5px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(111 111 118 / var(--tw-text-opacity, 1))}.seg button{height:2rem;padding-left:.625rem;padding-right:.625rem;font-size:12px;line-height:16px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.seg button:hover{--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1))}.seg button[data-active=true]{--tw-bg-opacity: 1;background-color:rgb(12 12 13 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.seg button[data-active=true]:hover{--tw-bg-opacity: 1;background-color:rgb(31 31 36 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.divider{border-top-width:1px;--tw-border-opacity: 1;border-color:rgb(236 236 239 / var(--tw-border-opacity, 1))}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:#e6e6e9 transparent}.scrollbar-thin::-webkit-scrollbar{width:8px;height:8px}.scrollbar-thin::-webkit-scrollbar-thumb{background:#e6e6e9;border-radius:4px;border:2px solid transparent;background-clip:padding-box}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:#6f6f76;background-clip:padding-box}.popover{position:absolute;z-index:40;min-width:160px;border-radius:5px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-top:.25rem;padding-bottom:.25rem;--tw-shadow: 0 2px 6px rgba(15,15,20,.06), 0 0 0 1px rgba(15,15,20,.06);--tw-shadow-colored: 0 2px 6px var(--tw-shadow-color), 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.popover-item{display:flex;width:100%;cursor:pointer;align-items:center;gap:.5rem;padding:.25rem .5rem;text-align:left;font-size:12px;line-height:16px;--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1))}.popover-item:hover{--tw-bg-opacity: 1;background-color:rgb(238 239 241 / var(--tw-bg-opacity, 1))}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.right-0{right:0}.top-0{top:0}.top-9{top:2.25rem}.isolate{isolation:isolate}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.-m-0\.5{margin:-.125rem}.-m-1{margin:-.25rem}.m-auto{margin:auto}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.\!h-24{height:6rem!important}.\!h-32{height:8rem!important}.\!h-4{height:1rem!important}.\!h-6{height:1.5rem!important}.\!h-7{height:1.75rem!important}.h-11{height:2.75rem}.h-12{height:3rem}.h-2{height:.5rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[18px\]{height:18px}.h-full{height:100%}.max-h-\[60vh\]{max-height:60vh}.min-h-0{min-height:0px}.min-h-\[104px\]{min-height:104px}.min-h-\[112px\]{min-height:112px}.min-h-\[120px\]{min-height:120px}.min-h-screen{min-height:100vh}.\!w-6{width:1.5rem!important}.w-14{width:3.5rem}.w-20{width:5rem}.w-32{width:8rem}.w-36{width:9rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-\[18px\]{width:18px}.w-\[2px\]{width:2px}.w-\[min\(680px\,92vw\)\]{width:min(680px,92vw)}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[220px\]{min-width:220px}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize-y{resize:vertical}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[80px_1fr\]{grid-template-columns:80px 1fr}.grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.\!justify-between{justify-content:space-between!important}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-px{gap:1px}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-1\.5{row-gap:.375rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1px * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-line\/60>:not([hidden])~:not([hidden]){border-color:#e6e6e999}.divide-lineSoft>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(236 236 239 / var(--tw-divide-opacity, 1))}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.rounded{border-radius:5px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:7px}.rounded-md{border-radius:5px}.rounded-sm{border-radius:3px}.border{border-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.\!border-emerald-500\/30{border-color:#10b9814d!important}.\!border-red-500\/30{border-color:#ef44444d!important}.\!border-white\/25{border-color:#ffffff40!important}.border-accent{--tw-border-opacity: 1;border-color:rgb(94 106 210 / var(--tw-border-opacity, 1))}.border-accent\/20{border-color:#5e6ad233}.border-amber-100{--tw-border-opacity: 1;border-color:rgb(254 243 199 / var(--tw-border-opacity, 1))}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-blue-100{--tw-border-opacity: 1;border-color:rgb(219 234 254 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-current{border-color:currentColor}.border-danger\/30{border-color:#eb57574d}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-line{--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1))}.border-line\/60{border-color:#e6e6e999}.border-line\/80{border-color:#e6e6e9cc}.border-lineSoft{--tw-border-opacity: 1;border-color:rgb(236 236 239 / var(--tw-border-opacity, 1))}.border-purple-100{--tw-border-opacity: 1;border-color:rgb(243 232 255 / var(--tw-border-opacity, 1))}.border-red-500\/30{border-color:#ef44444d}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-success\/30{border-color:#4cb7824d}.border-warn{--tw-border-opacity: 1;border-color:rgb(242 153 74 / var(--tw-border-opacity, 1))}.border-warn\/30{border-color:#f2994a4d}.\!bg-white\/15{background-color:#ffffff26!important}.bg-accent{--tw-bg-opacity: 1;background-color:rgb(94 106 210 / var(--tw-bg-opacity, 1))}.bg-accentSoft{--tw-bg-opacity: 1;background-color:rgb(235 236 249 / var(--tw-bg-opacity, 1))}.bg-accentSoft\/30{background-color:#ebecf94d}.bg-accentSoft\/40{background-color:#ebecf966}.bg-accentSoft\/50{background-color:#ebecf980}.bg-accentSoft\/60{background-color:#ebecf999}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-bg{--tw-bg-opacity: 1;background-color:rgb(252 252 253 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-danger\/10{background-color:#eb57571a}.bg-danger\/5{background-color:#eb57570d}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-ink\/10{background-color:#0c0c0d1a}.bg-ink\/20{background-color:#0c0c0d33}.bg-line\/30{background-color:#e6e6e94d}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-sidebar{--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity, 1))}.bg-sidebar\/20{background-color:#f7f8f933}.bg-sidebar\/30{background-color:#f7f8f94d}.bg-sidebar\/40{background-color:#f7f8f966}.bg-sidebar\/50{background-color:#f7f8f980}.bg-sidebar\/60{background-color:#f7f8f999}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-success\/10{background-color:#4cb7821a}.bg-surface{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-warn\/10{background-color:#f2994a1a}.\!p-0{padding:0!important}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.\!px-1\.5{padding-left:.375rem!important;padding-right:.375rem!important}.\!py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.\!pl-2{padding-left:.5rem!important}.\!pr-1\.5{padding-right:.375rem!important}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-6{padding-bottom:1.5rem}.pl-1{padding-left:.25rem}.pr-1\.5{padding-right:.375rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace}.\!text-\[10px\]{font-size:10px!important}.text-\[10px\]{font-size:10px}.text-base{font-size:14.5px;line-height:20px}.text-lg{font-size:17px;line-height:24px}.text-sm{font-size:13.5px;line-height:18.5px}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:12px;line-height:16px}.text-xxs{font-size:11px;line-height:15px}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.\!text-emerald-600{--tw-text-opacity: 1 !important;color:rgb(5 150 105 / var(--tw-text-opacity, 1))!important}.\!text-red-500{--tw-text-opacity: 1 !important;color:rgb(239 68 68 / var(--tw-text-opacity, 1))!important}.\!text-white{--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.text-accent{--tw-text-opacity: 1;color:rgb(94 106 210 / var(--tw-text-opacity, 1))}.text-accentText{--tw-text-opacity: 1;color:rgb(59 70 163 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-danger{--tw-text-opacity: 1;color:rgb(235 87 87 / var(--tw-text-opacity, 1))}.text-emerald-900{--tw-text-opacity: 1;color:rgb(6 78 59 / var(--tw-text-opacity, 1))}.text-faint{--tw-text-opacity: 1;color:rgb(168 168 175 / var(--tw-text-opacity, 1))}.text-ink{--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1))}.text-ink2{--tw-text-opacity: 1;color:rgb(31 31 36 / var(--tw-text-opacity, 1))}.text-muted{--tw-text-opacity: 1;color:rgb(111 111 118 / var(--tw-text-opacity, 1))}.text-prioHigh{--tw-text-opacity: 1;color:rgb(242 153 74 / var(--tw-text-opacity, 1))}.text-prioLow{--tw-text-opacity: 1;color:rgb(168 168 175 / var(--tw-text-opacity, 1))}.text-prioMedium{--tw-text-opacity: 1;color:rgb(94 106 210 / var(--tw-text-opacity, 1))}.text-prioUrgent{--tw-text-opacity: 1;color:rgb(235 87 87 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-rose-900{--tw-text-opacity: 1;color:rgb(136 19 55 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-statusDone{--tw-text-opacity: 1;color:rgb(76 183 130 / var(--tw-text-opacity, 1))}.text-statusInProgress{--tw-text-opacity: 1;color:rgb(242 153 74 / var(--tw-text-opacity, 1))}.text-statusOpen{--tw-text-opacity: 1;color:rgb(168 168 175 / var(--tw-text-opacity, 1))}.text-statusRejected{--tw-text-opacity: 1;color:rgb(235 87 87 / var(--tw-text-opacity, 1))}.text-warn{--tw-text-opacity: 1;color:rgb(242 153 74 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-modal{--tw-shadow: 0 12px 32px rgba(15,15,20,.08), 0 0 0 1px rgba(15,15,20,.06);--tw-shadow-colored: 0 12px 32px var(--tw-shadow-color), 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-accent{--tw-ring-opacity: 1;--tw-ring-color: rgb(94 106 210 / var(--tw-ring-opacity, 1))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-\[1px\]{--tw-backdrop-blur: blur(1px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.placeholder\:italic::-moz-placeholder{font-style:italic}.placeholder\:italic::placeholder{font-style:italic}.placeholder\:text-muted\/60::-moz-placeholder{color:#6f6f7699}.placeholder\:text-muted\/60::placeholder{color:#6f6f7699}.first\:pt-0:first-child{padding-top:0}.last\:border-b-0:last-child{border-bottom-width:0px}.last\:border-r-0:last-child{border-right-width:0px}.focus-within\:border-accent:focus-within{--tw-border-opacity: 1;border-color:rgb(94 106 210 / var(--tw-border-opacity, 1))}.focus-within\:ring-1:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-accentSoft:focus-within{--tw-ring-opacity: 1;--tw-ring-color: rgb(235 236 249 / var(--tw-ring-opacity, 1))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-accent:hover{--tw-border-opacity: 1;border-color:rgb(94 106 210 / var(--tw-border-opacity, 1))}.hover\:border-accent\/50:hover{border-color:#5e6ad280}.hover\:\!bg-red-500\/10:hover{background-color:#ef44441a!important}.hover\:bg-accentSoft\/40:hover{background-color:#ebecf966}.hover\:bg-danger\/10:hover{background-color:#eb57571a}.hover\:bg-line\/40:hover{background-color:#e6e6e966}.hover\:bg-line\/60:hover{background-color:#e6e6e999}.hover\:bg-sidebar:hover{--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity, 1))}.hover\:bg-sidebarHover:hover{--tw-bg-opacity: 1;background-color:rgb(238 239 241 / var(--tw-bg-opacity, 1))}.hover\:\!text-red-500:hover{--tw-text-opacity: 1 !important;color:rgb(239 68 68 / var(--tw-text-opacity, 1))!important}.hover\:text-accent:hover{--tw-text-opacity: 1;color:rgb(94 106 210 / var(--tw-text-opacity, 1))}.hover\:text-danger:hover{--tw-text-opacity: 1;color:rgb(235 87 87 / var(--tw-text-opacity, 1))}.hover\:text-ink:hover{--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.focus\:border-accent:focus{--tw-border-opacity: 1;border-color:rgb(94 106 210 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-accent:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(94 106 210 / var(--tw-ring-opacity, 1))}.focus\:ring-accent\/40:focus{--tw-ring-color: rgb(94 106 210 / .4)}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-60:disabled{opacity:.6}.group:hover .group-hover\:text-ink{--tw-text-opacity: 1;color:rgb(12 12 13 / var(--tw-text-opacity, 1))}.group\/col:hover .group-hover\/col\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}@media(min-width:640px){.sm\:grid-cols-\[1fr_84px_132px\]{grid-template-columns:1fr 84px 132px}}@media(min-width:768px){.md\:inline-flex{display:inline-flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&_a\]\:text-accent a{--tw-text-opacity: 1;color:rgb(94 106 210 / var(--tw-text-opacity, 1))}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_blockquote\]\:border-l-2 blockquote{border-left-width:2px}.\[\&_blockquote\]\:border-line blockquote{--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1))}.\[\&_blockquote\]\:pl-3 blockquote{padding-left:.75rem}.\[\&_blockquote\]\:text-muted blockquote{--tw-text-opacity: 1;color:rgb(111 111 118 / var(--tw-text-opacity, 1))}.\[\&_code\]\:rounded code{border-radius:5px}.\[\&_code\]\:bg-sidebar code{--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity, 1))}.\[\&_code\]\:px-1 code{padding-left:.25rem;padding-right:.25rem}.\[\&_code\]\:py-0\.5 code{padding-top:.125rem;padding-bottom:.125rem}.\[\&_code\]\:text-xs code{font-size:12px;line-height:16px}.\[\&_h1\]\:mb-1\.5 h1{margin-bottom:.375rem}.\[\&_h1\]\:mt-3 h1{margin-top:.75rem}.\[\&_h1\]\:text-lg h1{font-size:17px;line-height:24px}.\[\&_h1\]\:font-semibold h1{font-weight:600}.\[\&_h2\]\:mb-1 h2{margin-bottom:.25rem}.\[\&_h2\]\:mt-3 h2{margin-top:.75rem}.\[\&_h2\]\:text-base h2{font-size:14.5px;line-height:20px}.\[\&_h2\]\:font-semibold h2{font-weight:600}.\[\&_h3\]\:mt-2 h3{margin-top:.5rem}.\[\&_h3\]\:font-semibold h3{font-weight:600}.\[\&_li\]\:my-0\.5 li{margin-top:.125rem;margin-bottom:.125rem}.\[\&_ol\]\:list-decimal ol{list-style-type:decimal}.\[\&_ol\]\:pl-5 ol{padding-left:1.25rem}.\[\&_p\]\:my-1 p{margin-top:.25rem;margin-bottom:.25rem}.\[\&_pre\]\:overflow-x-auto pre{overflow-x:auto}.\[\&_pre\]\:rounded pre{border-radius:5px}.\[\&_pre\]\:bg-sidebar pre{--tw-bg-opacity: 1;background-color:rgb(247 248 249 / var(--tw-bg-opacity, 1))}.\[\&_pre\]\:p-2 pre{padding:.5rem}.\[\&_pre_code\]\:bg-transparent pre code{background-color:transparent}.\[\&_pre_code\]\:p-0 pre code{padding:0}.\[\&_table\]\:border-collapse table{border-collapse:collapse}.\[\&_td\]\:border td{border-width:1px}.\[\&_td\]\:border-line td{--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1))}.\[\&_td\]\:px-2 td{padding-left:.5rem;padding-right:.5rem}.\[\&_td\]\:py-1 td{padding-top:.25rem;padding-bottom:.25rem}.\[\&_th\]\:border th{border-width:1px}.\[\&_th\]\:border-line th{--tw-border-opacity: 1;border-color:rgb(230 230 233 / var(--tw-border-opacity, 1))}.\[\&_th\]\:px-2 th{padding-left:.5rem;padding-right:.5rem}.\[\&_th\]\:py-1 th{padding-top:.25rem;padding-bottom:.25rem}.\[\&_ul\]\:list-disc ul{list-style-type:disc}.\[\&_ul\]\:pl-5 ul{padding-left:1.25rem}
|
package/web/dist/index.html
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
10
10
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
|
|
11
|
-
<script type="module" crossorigin src="/assets/index-
|
|
12
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-Cu1LYblO.js"></script>
|
|
12
|
+
<link rel="stylesheet" crossorigin href="/assets/index-D-qUm124.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
15
|
<div id="root"></div>
|