vibedoc 1.4.0 โ 1.4.1
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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +2 -2
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/activity.html +1 -1
- package/.next/server/app/activity.rsc +4 -4
- package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/activity.segments/!KGFwcCk/activity.segment.rsc +1 -1
- package/.next/server/app/activity.segments/!KGFwcCk.segment.rsc +3 -3
- package/.next/server/app/activity.segments/_full.segment.rsc +4 -4
- package/.next/server/app/activity.segments/_head.segment.rsc +1 -1
- package/.next/server/app/activity.segments/_index.segment.rsc +1 -1
- package/.next/server/app/activity.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/activity/route.js.nft.json +1 -1
- package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
- package/.next/server/app/api/context/route.js.nft.json +1 -1
- package/.next/server/app/api/decisions/route.js.nft.json +1 -1
- package/.next/server/app/api/docs/route.js.nft.json +1 -1
- package/.next/server/app/api/explorer/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/memory/route.js.nft.json +1 -1
- package/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
- package/.next/server/app/api/summary/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/.next/server/app/board.html +1 -1
- package/.next/server/app/board.rsc +4 -4
- package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/board.segments/!KGFwcCk/board.segment.rsc +1 -1
- package/.next/server/app/board.segments/!KGFwcCk.segment.rsc +3 -3
- package/.next/server/app/board.segments/_full.segment.rsc +4 -4
- package/.next/server/app/board.segments/_head.segment.rsc +1 -1
- package/.next/server/app/board.segments/_index.segment.rsc +1 -1
- package/.next/server/app/board.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +4 -4
- package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/docs.segments/!KGFwcCk/docs.segment.rsc +1 -1
- package/.next/server/app/docs.segments/!KGFwcCk.segment.rsc +3 -3
- package/.next/server/app/docs.segments/_full.segment.rsc +4 -4
- package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/explorer.html +1 -1
- package/.next/server/app/explorer.rsc +4 -4
- package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/explorer.segments/!KGFwcCk/explorer.segment.rsc +1 -1
- package/.next/server/app/explorer.segments/!KGFwcCk.segment.rsc +3 -3
- package/.next/server/app/explorer.segments/_full.segment.rsc +4 -4
- package/.next/server/app/explorer.segments/_head.segment.rsc +1 -1
- package/.next/server/app/explorer.segments/_index.segment.rsc +1 -1
- package/.next/server/app/explorer.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +1 -1
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/memory.html +1 -1
- package/.next/server/app/memory.rsc +4 -4
- package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/memory.segments/!KGFwcCk/memory.segment.rsc +1 -1
- package/.next/server/app/memory.segments/!KGFwcCk.segment.rsc +3 -3
- package/.next/server/app/memory.segments/_full.segment.rsc +4 -4
- package/.next/server/app/memory.segments/_head.segment.rsc +1 -1
- package/.next/server/app/memory.segments/_index.segment.rsc +1 -1
- package/.next/server/app/memory.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +4 -4
- package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/!KGFwcCk/settings.segment.rsc +1 -1
- package/.next/server/app/settings.segments/!KGFwcCk.segment.rsc +3 -3
- package/.next/server/app/settings.segments/_full.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/setup.html +1 -1
- package/.next/server/app/setup.rsc +4 -4
- package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/setup.segments/!KGFwcCk/setup.segment.rsc +1 -1
- package/.next/server/app/setup.segments/!KGFwcCk.segment.rsc +3 -3
- package/.next/server/app/setup.segments/_full.segment.rsc +4 -4
- package/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/.next/server/app/setup.segments/_index.segment.rsc +1 -1
- package/.next/server/app/setup.segments/_tree.segment.rsc +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__add7ce25._.js +1 -1
- package/.next/server/chunks/ssr/_10c46cea._.js +1 -1
- package/.next/server/chunks/ssr/_15efe9a8._.js +1 -1
- package/.next/server/chunks/ssr/_15efe9a8._.js.map +1 -1
- package/.next/server/chunks/ssr/_acb63a7d._.js +1 -1
- package/.next/server/chunks/ssr/_acb63a7d._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_effb3116._.js +1 -1
- package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_effb3116._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_docs_MarkdownRenderer_tsx_c2823695._.js +2 -2
- package/.next/server/chunks/ssr/src_components_docs_MarkdownRenderer_tsx_c2823695._.js.map +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +2 -2
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{c613844e13174012.js โ 13bb47148aab2650.js} +2 -2
- package/.next/static/chunks/58191ebe3f737b95.js +10 -0
- package/.next/static/chunks/{a573ce301ebe6879.js โ 76dd41a0a6e00541.js} +3 -3
- package/.next/static/chunks/918b80a98b47faa7.js +1 -0
- package/.next/static/chunks/{25d2e746e06b38ba.js โ c5cf10f92eba82e6.js} +2 -2
- package/README.md +85 -18
- package/package.json +3 -2
- package/.next/static/chunks/2899688335d3adb2.js +0 -10
- package/.next/static/chunks/9ef7e8256638a410.js +0 -1
- /package/.next/static/{3qaTeSReklR4iA-D6kF9C โ 5YfD8cBCzJoKPTXc-Q0s5}/_buildManifest.js +0 -0
- /package/.next/static/{3qaTeSReklR4iA-D6kF9C โ 5YfD8cBCzJoKPTXc-Q0s5}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{3qaTeSReklR4iA-D6kF9C โ 5YfD8cBCzJoKPTXc-Q0s5}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[7538,a=>{"use strict";let b=(0,a.i(33214).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",()=>b],7538)},72985,a=>{"use strict";let b=(0,a.i(33214).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",()=>b],72985)},90751,a=>{"use strict";var b=a.i(9637),c=a.i(60940),d=a.i(44394),e=a.i(7538),f=a.i(68114),g=a.i(86304),h=a.i(99570);let i={todo:"text-muted border-border2","in-progress":"text-amber border-amber/30 bg-amber/5",blocked:"text-danger border-danger/30 bg-danger/5",done:"text-teal border-teal/30 bg-teal/5",cancelled:"text-muted border-border line-through"},j={todo:"border-border2 text-muted","in-progress":"border-amber/40 text-amber",blocked:"border-danger/40 text-danger",done:"border-teal/40 text-teal",cancelled:"border-border text-muted"},k={todo:"๐","in-progress":"๐จ",blocked:"๐ซ",done:"โ
",cancelled:"โ"},l={todo:["in-progress"],"in-progress":["done","blocked","todo"],blocked:["in-progress","cancelled"],done:["todo"],cancelled:["todo"]};function m({task:a,onMove:d,onOpen:e}){let[m,n]=(0,c.useState)(!1),o=l[a.status]||[];return(0,b.jsxs)("div",{draggable:!0,onDragStart:b=>{b.dataTransfer.setData("taskId",a.id),b.dataTransfer.effectAllowed="move",n(!0)},onDragEnd:()=>n(!1),className:(0,f.cn)("group relative bg-surface border rounded-lg p-3 text-sm transition-all hover:border-border2",i[a.status]||"border-border",m&&"opacity-50 cursor-grabbing"),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,b.jsx)("span",{className:"text-xs font-mono text-muted",children:a.id}),(0,b.jsx)(g.Badge,{variant:"outline",className:(0,f.cn)("text-[10px] h-4 px-1.5 font-normal",j[a.status]),children:"in-progress"===a.status?"active":a.status})]}),(0,b.jsx)("p",{className:"font-medium text-txt text-sm leading-snug mb-2",children:a.title}),a.phase&&(0,b.jsx)("p",{className:"text-xs text-muted mb-2",children:a.phase}),(0,b.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,b.jsx)(h.Button,{variant:"ghost",size:"sm",className:"h-6 text-xs px-2",onClick:e,children:"open"}),o.map(c=>(0,b.jsxs)(h.Button,{variant:"ghost",size:"sm",className:"h-6 text-xs px-2",onClick:()=>d(a.id,c),children:[k[c]," ","in-progress"===c?"start":c]},c))]})]})}function n({status:a,tasks:d,onMoveTask:e,onOpenTask:h}){let[i,j]=(0,c.useState)(!1);return(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,b.jsx)("span",{className:"text-sm",children:k[a]}),(0,b.jsx)("span",{className:"text-xs font-mono font-semibold text-muted uppercase tracking-wider",children:a}),(0,b.jsx)(g.Badge,{variant:"secondary",className:"ml-auto font-mono text-xs h-5 px-1.5",children:d.length})]}),(0,b.jsxs)("div",{className:(0,f.cn)("flex flex-col gap-2 min-h-[60px] rounded-lg transition-colors",i&&"ring-1 ring-accent/50 bg-accent/5"),onDragOver:a=>{a.preventDefault(),j(!0)},onDragLeave:a=>{a.currentTarget.contains(a.relatedTarget)||j(!1)},onDrop:b=>{b.preventDefault(),j(!1);let c=b.dataTransfer.getData("taskId");c&&e(c,a)},children:[d.map(a=>(0,b.jsx)(m,{task:a,onMove:e,onOpen:()=>h(a)},a.id)),0===d.length&&(0,b.jsx)("div",{className:"border border-dashed border-border rounded-lg py-6 text-center text-xs text-muted",children:"empty"})]})]})}function o({board:a,summary:c,onMoveTask:d,onOpenTask:f,onNewTask:g}){return(0,b.jsxs)("div",{className:"p-6",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,b.jsx)("h1",{className:"font-display text-xl",children:"Task Board"}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsxs)("span",{className:"text-xs font-mono text-muted",children:[c?.tasks.total||0," tasks"]}),(0,b.jsxs)("button",{onClick:g,className:"flex items-center gap-1.5 px-3 py-1.5 bg-accent text-white rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors",children:[(0,b.jsx)(e.Plus,{className:"w-3.5 h-3.5"}),"New Task"]})]})]}),(0,b.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4",children:["in-progress","todo","blocked","done"].map(c=>(0,b.jsx)(n,{status:c,tasks:a[c],onMoveTask:d,onOpenTask:f},c))})]})}var p=a.i(53435);let q={todo:["in-progress"],"in-progress":["done","blocked","todo"],blocked:["in-progress","cancelled"],done:["todo"],cancelled:["todo"]},r={"in-progress":"start",done:"done",blocked:"blocked",todo:"backlog",cancelled:"cancel"},s={todo:"text-muted border-border2","in-progress":"text-amber border-amber/30 bg-amber/5",blocked:"text-danger border-danger/30 bg-danger/5",done:"text-teal border-teal/30 bg-teal/5",cancelled:"text-muted border-border"};function t({task:a,onClose:d,onMove:e}){if((0,c.useEffect)(()=>{if(a)return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b);function b(a){"Escape"===a.key&&d()}},[a,d]),!a)return null;let g=q[a.status]||[];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 z-40",onClick:d}),(0,b.jsxs)("div",{className:"fixed right-0 top-0 h-full w-[420px] z-50 bg-surface border-l border-border flex flex-col shadow-2xl",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between px-5 py-4 border-b border-border flex-shrink-0",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-mono text-xs text-muted",children:a.id}),(0,b.jsxs)("span",{className:(0,f.cn)("text-xs px-1.5 py-0.5 rounded border font-mono",s[a.status]),children:[k[a.status]," ",a.status]})]}),(0,b.jsx)("p",{className:"font-medium text-txt text-sm leading-snug",children:a.title})]}),(0,b.jsx)("button",{onClick:d,className:"ml-3 flex-shrink-0 text-muted hover:text-txt transition-colors text-lg leading-none","aria-label":"Close panel",children:"ร"})]}),g.length>0&&(0,b.jsx)("div",{className:"flex items-center gap-2 px-5 py-3 border-b border-border flex-shrink-0",children:g.map(c=>(0,b.jsxs)("button",{onClick:()=>{e(a.id,c),d()},className:"text-xs px-2.5 py-1 rounded bg-surface2 border border-border text-muted hover:text-txt hover:border-border2 transition-colors",children:[k[c]," ",r[c]||c]},c))}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto px-5 py-4",children:a.raw?(0,b.jsx)(p.MarkdownRenderer,{content:a.raw}):(0,b.jsx)("p",{className:"text-sm text-muted",children:"No content available."})})]})]})}var u=a.i(66238),v=a.i(16502),w=a.i(72985);let x=[{value:"XS (< 1 hr)",label:"XS โ under 1 hr"},{value:"S (1-2 hrs)",label:"S โ 1โ2 hrs"},{value:"M (3-4 hrs)",label:"M โ 3โ4 hrs"},{value:"L (5-8 hrs)",label:"L โ 5โ8 hrs"},{value:"XL (> 1 day)",label:"XL โ over a day"}];function y({open:a,onOpenChange:d,rootParam:g,onTaskCreated:h}){let[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(""),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(""),[s,t]=(0,c.useState)(""),[y,z]=(0,c.useState)(!1);async function A(a){if(a.preventDefault(),!i.trim())return void t("Title is required");z(!0),t("");try{let a=await fetch(`/api/tasks/create${g}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:i.trim(),phase:k.trim()||void 0,size:m||void 0,description:o.trim()||void 0,dependsOn:q.trim()||void 0})});if(!a.ok){let b=await a.json();t(b.error??"Failed to create task"),z(!1);return}z(!1),h(),d(!1)}catch{t("Network error โ please try again"),z(!1)}}return(0,c.useEffect)(()=>{a&&(j(""),l(""),n(""),p(""),r(""),t(""),z(!1))},[a]),(0,b.jsx)(u.Root,{open:a,onOpenChange:d,children:(0,b.jsxs)(u.Portal,{children:[(0,b.jsx)(u.Overlay,{className:"fixed inset-0 z-50 bg-black/60"}),(0,b.jsxs)(u.Content,{className:"fixed z-50 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full max-w-lg bg-surface border border-border rounded-xl shadow-2xl",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-border",children:[(0,b.jsx)(u.Title,{className:"font-semibold text-txt",children:"New Task"}),(0,b.jsx)(u.Close,{className:"text-muted hover:text-txt transition-colors",children:(0,b.jsx)(v.X,{className:"w-4 h-4"})})]}),(0,b.jsxs)("form",{onSubmit:A,className:"p-5 space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)("label",{className:"text-xs font-medium text-muted uppercase tracking-wide",children:["Title ",(0,b.jsx)("span",{className:"text-danger",children:"*"})]}),(0,b.jsx)("input",{autoFocus:!0,type:"text",value:i,onChange:a=>j(a.target.value),placeholder:"e.g. Add drag-and-drop to kanban",className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted uppercase tracking-wide",children:"Phase"}),(0,b.jsx)("input",{type:"text",value:k,onChange:a=>l(a.target.value),placeholder:"e.g. 1 โ Core",className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors"})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted uppercase tracking-wide",children:"Size"}),(0,b.jsxs)("select",{value:m,onChange:a=>n(a.target.value),className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt focus:outline-none focus:border-accent transition-colors",children:[(0,b.jsx)("option",{value:"",children:"โ"}),x.map(a=>(0,b.jsx)("option",{value:a.value,children:a.label},a.value))]})]})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted uppercase tracking-wide",children:"Depends on"}),(0,b.jsx)("input",{type:"text",value:q,onChange:a=>r(a.target.value),placeholder:"e.g. T001, T003",className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors"})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted uppercase tracking-wide",children:"Description"}),(0,b.jsx)("textarea",{value:o,onChange:a=>p(a.target.value),placeholder:"What needs to be built?",rows:3,className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors resize-none"})]}),s&&(0,b.jsx)("p",{className:"text-sm text-danger",children:s}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-1",children:[(0,b.jsx)(u.Close,{type:"button",className:"px-4 py-2 text-sm text-muted hover:text-txt transition-colors",children:"Cancel"}),(0,b.jsxs)("button",{type:"submit",disabled:y||!i.trim(),className:(0,f.cn)("flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium transition-colors","bg-accent text-white hover:bg-accent/90 disabled:opacity-50 disabled:cursor-not-allowed"),children:[y?(0,b.jsx)(w.Loader2,{className:"w-4 h-4 animate-spin"}):(0,b.jsx)(e.Plus,{className:"w-4 h-4"}),y?"Creatingโฆ":"Create Task"]})]})]})]})]})})}function z(){let{board:a,summary:e,moveTask:f,refresh:g,rootParam:h}=(0,d.useApp)(),[i,j]=(0,c.useState)(null),[k,l]=(0,c.useState)(!1);return a?(0,b.jsxs)("div",{className:"relative flex-1",children:[(0,b.jsx)(o,{board:a,summary:e,onMoveTask:f,onOpenTask:j,onNewTask:()=>l(!0)}),(0,b.jsx)(t,{task:i,onClose:()=>j(null),onMove:f}),(0,b.jsx)(y,{open:k,onOpenChange:l,rootParam:h,onTaskCreated:g})]}):null}a.s(["default",()=>z],90751)},59116,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_660f6b48._.js","server/chunks/ssr/node_modules__pnpm_8d0773f6._.js","server/chunks/ssr/4bd2e_mermaid_dist_chunks_mermaid_core_chunk-S3R3BYOJ_mjs_dfc77fcf._.js","server/chunks/ssr/4bd2e_mermaid_dist_chunks_mermaid_core_chunk-MI3HLSF2_mjs_d0453be9._.js","server/chunks/ssr/4bd2e_mermaid_dist_chunks_mermaid_core_chunk-QXUST7PY_mjs_8f4c61a8._.js","server/chunks/ssr/4bd2e_mermaid_dist_chunks_mermaid_core_chunk-JA3XYJ7Z_mjs_342a0953._.js","server/chunks/ssr/node_modules__pnpm_e7182395._.js","server/chunks/ssr/4bd2e_mermaid_dist_chunks_mermaid_core_chunk-JZLCHNYA_mjs_e7e526d7._.js","server/chunks/ssr/4bd2e_mermaid_dist_chunks_mermaid_core_chunk-ABZYJK2D_mjs_58ff253d._.js","server/chunks/ssr/fe4dd_lodash-es_2f02253e._.js","server/chunks/ssr/4bd2e_mermaid_dist_mermaid_core_mjs_7cc968be._.js"].map(b=>a.l(b))).then(()=>b(3801)))}];
|
|
1
|
+
module.exports=[7538,a=>{"use strict";let b=(0,a.i(33214).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",()=>b],7538)},72985,a=>{"use strict";let b=(0,a.i(33214).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["Loader2",()=>b],72985)},90751,a=>{"use strict";var b=a.i(9637),c=a.i(60940),d=a.i(44394),e=a.i(7538),f=a.i(68114),g=a.i(86304),h=a.i(99570);let i={todo:"text-muted border-border2","in-progress":"text-amber border-amber/30 bg-amber/5",blocked:"text-danger border-danger/30 bg-danger/5",done:"text-teal border-teal/30 bg-teal/5",cancelled:"text-muted border-border line-through"},j={todo:"border-border2 text-muted","in-progress":"border-amber/40 text-amber",blocked:"border-danger/40 text-danger",done:"border-teal/40 text-teal",cancelled:"border-border text-muted"},k={todo:"๐","in-progress":"๐จ",blocked:"๐ซ",done:"โ
",cancelled:"โ"},l={todo:["in-progress"],"in-progress":["done","blocked","todo"],blocked:["in-progress","cancelled"],done:["todo"],cancelled:["todo"]};function m({task:a,onMove:d,onOpen:e}){let[m,n]=(0,c.useState)(!1),o=l[a.status]||[];return(0,b.jsxs)("div",{draggable:!0,onDragStart:b=>{b.dataTransfer.setData("taskId",a.id),b.dataTransfer.effectAllowed="move",n(!0)},onDragEnd:()=>n(!1),className:(0,f.cn)("group relative bg-surface border rounded-lg p-3 text-sm transition-all hover:border-border2",i[a.status]||"border-border",m&&"opacity-50 cursor-grabbing"),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,b.jsx)("span",{className:"text-xs font-mono text-muted",children:a.id}),(0,b.jsx)(g.Badge,{variant:"outline",className:(0,f.cn)("text-[10px] h-4 px-1.5 font-normal",j[a.status]),children:"in-progress"===a.status?"active":a.status})]}),(0,b.jsx)("p",{className:"font-medium text-txt text-sm leading-snug mb-2",children:a.title}),a.phase&&(0,b.jsx)("p",{className:"text-xs text-muted mb-2",children:a.phase}),(0,b.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,b.jsx)(h.Button,{variant:"ghost",size:"sm",className:"h-6 text-xs px-2",onClick:e,children:"open"}),o.map(c=>(0,b.jsxs)(h.Button,{variant:"ghost",size:"sm",className:"h-6 text-xs px-2",onClick:()=>d(a.id,c),children:[k[c]," ","in-progress"===c?"start":c]},c))]})]})}function n({status:a,tasks:d,onMoveTask:e,onOpenTask:h}){let[i,j]=(0,c.useState)(!1);return(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,b.jsx)("span",{className:"text-sm",children:k[a]}),(0,b.jsx)("span",{className:"text-xs font-mono font-semibold text-muted uppercase tracking-wider",children:a}),(0,b.jsx)(g.Badge,{variant:"secondary",className:"ml-auto font-mono text-xs h-5 px-1.5",children:d.length})]}),(0,b.jsxs)("div",{className:(0,f.cn)("flex flex-col gap-2 min-h-[60px] rounded-lg transition-colors",i&&"ring-1 ring-accent/50 bg-accent/5"),onDragOver:a=>{a.preventDefault(),j(!0)},onDragLeave:a=>{a.currentTarget.contains(a.relatedTarget)||j(!1)},onDrop:b=>{b.preventDefault(),j(!1);let c=b.dataTransfer.getData("taskId");c&&e(c,a)},children:[(d??[]).map(a=>(0,b.jsx)(m,{task:a,onMove:e,onOpen:()=>h(a)},a.id)),0===d.length&&(0,b.jsx)("div",{className:"border border-dashed border-border rounded-lg py-6 text-center text-xs text-muted",children:"empty"})]})]})}function o({board:a,summary:c,onMoveTask:d,onOpenTask:f,onNewTask:g}){return(0,b.jsxs)("div",{className:"p-6",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,b.jsx)("h1",{className:"font-display text-xl",children:"Task Board"}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsxs)("span",{className:"text-xs font-mono text-muted",children:[c?.tasks.total||0," tasks"]}),(0,b.jsxs)("button",{onClick:g,className:"flex items-center gap-1.5 px-3 py-1.5 bg-accent text-white rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors",children:[(0,b.jsx)(e.Plus,{className:"w-3.5 h-3.5"}),"New Task"]})]})]}),(0,b.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4",children:["in-progress","todo","blocked","done"].map(c=>(0,b.jsx)(n,{status:c,tasks:a[c],onMoveTask:d,onOpenTask:f},c))})]})}var p=a.i(53435);let q={todo:["in-progress"],"in-progress":["done","blocked","todo"],blocked:["in-progress","cancelled"],done:["todo"],cancelled:["todo"]},r={"in-progress":"start",done:"done",blocked:"blocked",todo:"backlog",cancelled:"cancel"},s={todo:"text-muted border-border2","in-progress":"text-amber border-amber/30 bg-amber/5",blocked:"text-danger border-danger/30 bg-danger/5",done:"text-teal border-teal/30 bg-teal/5",cancelled:"text-muted border-border"};function t({task:a,onClose:d,onMove:e}){if((0,c.useEffect)(()=>{if(a)return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b);function b(a){"Escape"===a.key&&d()}},[a,d]),!a)return null;let g=q[a.status]||[];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 z-40",onClick:d}),(0,b.jsxs)("div",{className:"fixed right-0 top-0 h-full w-[420px] z-50 bg-surface border-l border-border flex flex-col shadow-2xl",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between px-5 py-4 border-b border-border flex-shrink-0",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-mono text-xs text-muted",children:a.id}),(0,b.jsxs)("span",{className:(0,f.cn)("text-xs px-1.5 py-0.5 rounded border font-mono",s[a.status]),children:[k[a.status]," ",a.status]})]}),(0,b.jsx)("p",{className:"font-medium text-txt text-sm leading-snug",children:a.title})]}),(0,b.jsx)("button",{onClick:d,className:"ml-3 flex-shrink-0 text-muted hover:text-txt transition-colors text-lg leading-none","aria-label":"Close panel",children:"ร"})]}),g.length>0&&(0,b.jsx)("div",{className:"flex items-center gap-2 px-5 py-3 border-b border-border flex-shrink-0",children:g.map(c=>(0,b.jsxs)("button",{onClick:()=>{e(a.id,c),d()},className:"text-xs px-2.5 py-1 rounded bg-surface2 border border-border text-muted hover:text-txt hover:border-border2 transition-colors",children:[k[c]," ",r[c]||c]},c))}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto px-5 py-4",children:a.raw?(0,b.jsx)(p.MarkdownRenderer,{content:a.raw}):(0,b.jsx)("p",{className:"text-sm text-muted",children:"No content available."})})]})]})}var u=a.i(66238),v=a.i(16502),w=a.i(72985);let x=[{value:"XS (< 1 hr)",label:"XS โ under 1 hr"},{value:"S (1-2 hrs)",label:"S โ 1โ2 hrs"},{value:"M (3-4 hrs)",label:"M โ 3โ4 hrs"},{value:"L (5-8 hrs)",label:"L โ 5โ8 hrs"},{value:"XL (> 1 day)",label:"XL โ over a day"}];function y({open:a,onOpenChange:d,rootParam:g,onTaskCreated:h}){let[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(""),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(""),[s,t]=(0,c.useState)(""),[y,z]=(0,c.useState)(!1);async function A(a){if(a.preventDefault(),!i.trim())return void t("Title is required");z(!0),t("");try{let a=await fetch(`/api/tasks/create${g}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:i.trim(),phase:k.trim()||void 0,size:m||void 0,description:o.trim()||void 0,dependsOn:q.trim()||void 0})});if(!a.ok){let b=await a.json();t(b.error??"Failed to create task"),z(!1);return}z(!1),h(),d(!1)}catch{t("Network error โ please try again"),z(!1)}}return(0,c.useEffect)(()=>{a&&(j(""),l(""),n(""),p(""),r(""),t(""),z(!1))},[a]),(0,b.jsx)(u.Root,{open:a,onOpenChange:d,children:(0,b.jsxs)(u.Portal,{children:[(0,b.jsx)(u.Overlay,{className:"fixed inset-0 z-50 bg-black/60"}),(0,b.jsxs)(u.Content,{className:"fixed z-50 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full max-w-lg bg-surface border border-border rounded-xl shadow-2xl",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-border",children:[(0,b.jsx)(u.Title,{className:"font-semibold text-txt",children:"New Task"}),(0,b.jsx)(u.Close,{className:"text-muted hover:text-txt transition-colors",children:(0,b.jsx)(v.X,{className:"w-4 h-4"})})]}),(0,b.jsxs)("form",{onSubmit:A,className:"p-5 space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsxs)("label",{className:"text-xs font-medium text-muted uppercase tracking-wide",children:["Title ",(0,b.jsx)("span",{className:"text-danger",children:"*"})]}),(0,b.jsx)("input",{autoFocus:!0,type:"text",value:i,onChange:a=>j(a.target.value),placeholder:"e.g. Add drag-and-drop to kanban",className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted uppercase tracking-wide",children:"Phase"}),(0,b.jsx)("input",{type:"text",value:k,onChange:a=>l(a.target.value),placeholder:"e.g. 1 โ Core",className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors"})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted uppercase tracking-wide",children:"Size"}),(0,b.jsxs)("select",{value:m,onChange:a=>n(a.target.value),className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt focus:outline-none focus:border-accent transition-colors",children:[(0,b.jsx)("option",{value:"",children:"โ"}),x.map(a=>(0,b.jsx)("option",{value:a.value,children:a.label},a.value))]})]})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted uppercase tracking-wide",children:"Depends on"}),(0,b.jsx)("input",{type:"text",value:q,onChange:a=>r(a.target.value),placeholder:"e.g. T001, T003",className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors"})]}),(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("label",{className:"text-xs font-medium text-muted uppercase tracking-wide",children:"Description"}),(0,b.jsx)("textarea",{value:o,onChange:a=>p(a.target.value),placeholder:"What needs to be built?",rows:3,className:"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors resize-none"})]}),s&&(0,b.jsx)("p",{className:"text-sm text-danger",children:s}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-1",children:[(0,b.jsx)(u.Close,{type:"button",className:"px-4 py-2 text-sm text-muted hover:text-txt transition-colors",children:"Cancel"}),(0,b.jsxs)("button",{type:"submit",disabled:y||!i.trim(),className:(0,f.cn)("flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium transition-colors","bg-accent text-white hover:bg-accent/90 disabled:opacity-50 disabled:cursor-not-allowed"),children:[y?(0,b.jsx)(w.Loader2,{className:"w-4 h-4 animate-spin"}):(0,b.jsx)(e.Plus,{className:"w-4 h-4"}),y?"Creatingโฆ":"Create Task"]})]})]})]})]})})}function z(){let{board:a,summary:e,moveTask:f,refresh:g,rootParam:h}=(0,d.useApp)(),[i,j]=(0,c.useState)(null),[k,l]=(0,c.useState)(!1);return a?(0,b.jsxs)("div",{className:"relative flex-1",children:[(0,b.jsx)(o,{board:a,summary:e,onMoveTask:f,onOpenTask:j,onNewTask:()=>l(!0)}),(0,b.jsx)(t,{task:i,onClose:()=>j(null),onMove:f}),(0,b.jsx)(y,{open:k,onOpenChange:l,rootParam:h,onTaskCreated:g})]}):null}a.s(["default",()=>z],90751)},59116,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_660f6b48._.js","server/chunks/ssr/node_modules__pnpm_8d0773f6._.js","server/chunks/ssr/4bd2e_mermaid_dist_chunks_mermaid_core_chunk-S3R3BYOJ_mjs_dfc77fcf._.js","server/chunks/ssr/4bd2e_mermaid_dist_chunks_mermaid_core_chunk-MI3HLSF2_mjs_d0453be9._.js","server/chunks/ssr/4bd2e_mermaid_dist_chunks_mermaid_core_chunk-QXUST7PY_mjs_8f4c61a8._.js","server/chunks/ssr/4bd2e_mermaid_dist_chunks_mermaid_core_chunk-JA3XYJ7Z_mjs_342a0953._.js","server/chunks/ssr/node_modules__pnpm_e7182395._.js","server/chunks/ssr/4bd2e_mermaid_dist_chunks_mermaid_core_chunk-JZLCHNYA_mjs_e7e526d7._.js","server/chunks/ssr/4bd2e_mermaid_dist_chunks_mermaid_core_chunk-ABZYJK2D_mjs_58ff253d._.js","server/chunks/ssr/fe4dd_lodash-es_2f02253e._.js","server/chunks/ssr/4bd2e_mermaid_dist_mermaid_core_mjs_7cc968be._.js"].map(b=>a.l(b))).then(()=>b(3801)))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_15efe9a8._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/plus.ts","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/loader-circle.ts","../../../../src/app/%28app%29/board/page.tsx","../../../../src/components/board/BoardTab.tsx","../../../../src/components/board/BoardColumn.tsx","../../../../src/components/board/TaskCard.tsx","../../../../src/components/board/TaskDetailPanel.tsx","../../../../src/components/board/NewTaskModal.tsx"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n];\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('plus', __iconNode);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56', key: '13zald' }]];\n\n/**\n * @component @name LoaderCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/loader-circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LoaderCircle = createLucideIcon('loader-circle', __iconNode);\n\nexport default LoaderCircle;\n","\"use client\"\n\nimport { useState } from \"react\"\nimport { useApp } from \"@/context/AppContext\"\nimport { BoardTab } from \"@/components/board/BoardTab\"\nimport { TaskDetailPanel } from \"@/components/board/TaskDetailPanel\"\nimport { NewTaskModal } from \"@/components/board/NewTaskModal\"\nimport type { Task } from \"@/types\"\n\nexport default function BoardPage() {\n const { board, summary, moveTask, refresh, rootParam } = useApp()\n const [selectedTask, setSelectedTask] = useState<Task | null>(null)\n const [newTaskOpen, setNewTaskOpen] = useState(false)\n\n if (!board) return null\n\n return (\n <div className=\"relative flex-1\">\n <BoardTab\n board={board}\n summary={summary}\n onMoveTask={moveTask}\n onOpenTask={setSelectedTask}\n onNewTask={() => setNewTaskOpen(true)}\n />\n <TaskDetailPanel\n task={selectedTask}\n onClose={() => setSelectedTask(null)}\n onMove={moveTask}\n />\n <NewTaskModal\n open={newTaskOpen}\n onOpenChange={setNewTaskOpen}\n rootParam={rootParam}\n onTaskCreated={refresh}\n />\n </div>\n )\n}\n","\"use client\"\n\nimport { Plus } from \"lucide-react\"\nimport type { TaskBoard, Task, Summary } from \"@/types\"\nimport { BoardColumn } from \"./BoardColumn\"\n\ninterface BoardTabProps {\n board: TaskBoard\n summary: Summary | null\n onMoveTask: (id: string, status: string) => void\n onOpenTask: (task: Task) => void\n onNewTask: () => void\n}\n\nexport function BoardTab({ board, summary, onMoveTask, onOpenTask, onNewTask }: BoardTabProps) {\n return (\n <div className=\"p-6\">\n <div className=\"flex items-center justify-between mb-6\">\n <h1 className=\"font-display text-xl\">Task Board</h1>\n <div className=\"flex items-center gap-3\">\n <span className=\"text-xs font-mono text-muted\">{summary?.tasks.total || 0} tasks</span>\n <button\n onClick={onNewTask}\n className=\"flex items-center gap-1.5 px-3 py-1.5 bg-accent text-white rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors\"\n >\n <Plus className=\"w-3.5 h-3.5\" />\n New Task\n </button>\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4\">\n {([\"in-progress\", \"todo\", \"blocked\", \"done\"] as const).map((col) => (\n <BoardColumn\n key={col}\n status={col}\n tasks={board[col]}\n onMoveTask={onMoveTask}\n onOpenTask={onOpenTask}\n />\n ))}\n </div>\n </div>\n )\n}\n","\"use client\"\r\n\r\nimport { useState } from \"react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Badge } from \"@/components/ui/badge\"\r\nimport type { Task } from \"@/types\"\r\nimport { TaskCard, STATUS_ICONS } from \"./TaskCard\"\r\n\r\ninterface BoardColumnProps {\r\n status: \"in-progress\" | \"todo\" | \"blocked\" | \"done\"\r\n tasks: Task[]\r\n onMoveTask: (id: string, status: string) => void\r\n onOpenTask: (task: Task) => void\r\n}\r\n\r\nexport function BoardColumn({ status, tasks, onMoveTask, onOpenTask }: BoardColumnProps) {\r\n const [isDragOver, setIsDragOver] = useState(false)\r\n\r\n return (\r\n <div className=\"flex flex-col gap-2\">\r\n {/* Column header */}\r\n <div className=\"flex items-center gap-2 mb-1\">\r\n <span className=\"text-sm\">{STATUS_ICONS[status]}</span>\r\n <span className=\"text-xs font-mono font-semibold text-muted uppercase tracking-wider\">\r\n {status}\r\n </span>\r\n <Badge variant=\"secondary\" className=\"ml-auto font-mono text-xs h-5 px-1.5\">{tasks.length}</Badge>\r\n </div>\r\n\r\n {/* Task cards */}\r\n <div\r\n className={cn(\r\n \"flex flex-col gap-2 min-h-[60px] rounded-lg transition-colors\",\r\n isDragOver && \"ring-1 ring-accent/50 bg-accent/5\",\r\n )}\r\n onDragOver={(e) => { e.preventDefault(); setIsDragOver(true) }}\r\n onDragLeave={(e) => {\r\n if (!e.currentTarget.contains(e.relatedTarget as Node)) setIsDragOver(false)\r\n }}\r\n onDrop={(e) => {\r\n e.preventDefault()\r\n setIsDragOver(false)\r\n const taskId = e.dataTransfer.getData(\"taskId\")\r\n if (taskId) onMoveTask(taskId, status)\r\n }}\r\n >\r\n {tasks.map((task) => (\r\n <TaskCard\r\n key={task.id}\r\n task={task}\r\n onMove={onMoveTask}\r\n onOpen={() => onOpenTask(task)}\r\n />\r\n ))}\r\n {tasks.length === 0 && (\r\n <div className=\"border border-dashed border-border rounded-lg py-6 text-center text-xs text-muted\">\r\n empty\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport { useState } from \"react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Badge } from \"@/components/ui/badge\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport type { Task } from \"@/types\"\r\n\r\nconst STATUS_COLORS: Record<string, string> = {\r\n todo: \"text-muted border-border2\",\r\n \"in-progress\": \"text-amber border-amber/30 bg-amber/5\",\r\n blocked: \"text-danger border-danger/30 bg-danger/5\",\r\n done: \"text-teal border-teal/30 bg-teal/5\",\r\n cancelled: \"text-muted border-border line-through\",\r\n}\r\n\r\nconst STATUS_BADGE_COLORS: Record<string, string> = {\r\n todo: \"border-border2 text-muted\",\r\n \"in-progress\": \"border-amber/40 text-amber\",\r\n blocked: \"border-danger/40 text-danger\",\r\n done: \"border-teal/40 text-teal\",\r\n cancelled: \"border-border text-muted\",\r\n}\r\n\r\nexport const STATUS_ICONS: Record<string, string> = {\r\n todo: \"๐\",\r\n \"in-progress\": \"๐จ\",\r\n blocked: \"๐ซ\",\r\n done: \"โ
\",\r\n cancelled: \"โ\",\r\n}\r\n\r\nconst NEXT_STATUS: Record<string, string[]> = {\r\n todo: [\"in-progress\"],\r\n \"in-progress\": [\"done\", \"blocked\", \"todo\"],\r\n blocked: [\"in-progress\", \"cancelled\"],\r\n done: [\"todo\"],\r\n cancelled: [\"todo\"],\r\n}\r\n\r\ninterface TaskCardProps {\r\n task: Task\r\n onMove: (id: string, status: string) => void\r\n onOpen: () => void\r\n}\r\n\r\nexport function TaskCard({ task, onMove, onOpen }: TaskCardProps) {\r\n const [isDragging, setIsDragging] = useState(false)\r\n const nextStatuses = NEXT_STATUS[task.status] || []\r\n\r\n return (\r\n <div\r\n draggable\r\n onDragStart={(e) => {\r\n e.dataTransfer.setData(\"taskId\", task.id)\r\n e.dataTransfer.effectAllowed = \"move\"\r\n setIsDragging(true)\r\n }}\r\n onDragEnd={() => setIsDragging(false)}\r\n className={cn(\r\n \"group relative bg-surface border rounded-lg p-3 text-sm transition-all hover:border-border2\",\r\n STATUS_COLORS[task.status] || \"border-border\",\r\n isDragging && \"opacity-50 cursor-grabbing\",\r\n )}\r\n >\r\n {/* ID + status badge */}\r\n <div className=\"flex items-center justify-between mb-1.5\">\r\n <span className=\"text-xs font-mono text-muted\">{task.id}</span>\r\n <Badge\r\n variant=\"outline\"\r\n className={cn(\"text-[10px] h-4 px-1.5 font-normal\", STATUS_BADGE_COLORS[task.status])}\r\n >\r\n {task.status === \"in-progress\" ? \"active\" : task.status}\r\n </Badge>\r\n </div>\r\n\r\n {/* Title */}\r\n <p className=\"font-medium text-txt text-sm leading-snug mb-2\">{task.title}</p>\r\n\r\n {/* Phase */}\r\n {task.phase && <p className=\"text-xs text-muted mb-2\">{task.phase}</p>}\r\n\r\n {/* Actions */}\r\n <div className=\"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity\">\r\n <Button\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className=\"h-6 text-xs px-2\"\r\n onClick={onOpen}\r\n >\r\n open\r\n </Button>\r\n {nextStatuses.map((s) => (\r\n <Button\r\n key={s}\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className=\"h-6 text-xs px-2\"\r\n onClick={() => onMove(task.id, s)}\r\n >\r\n {STATUS_ICONS[s]} {s === \"in-progress\" ? \"start\" : s}\r\n </Button>\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport { useEffect } from \"react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { MarkdownRenderer } from \"@/components/docs/MarkdownRenderer\"\r\nimport type { Task } from \"@/types\"\r\nimport { STATUS_ICONS } from \"./TaskCard\"\r\n\r\nconst NEXT_STATUS: Record<string, string[]> = {\r\n todo: [\"in-progress\"],\r\n \"in-progress\": [\"done\", \"blocked\", \"todo\"],\r\n blocked: [\"in-progress\", \"cancelled\"],\r\n done: [\"todo\"],\r\n cancelled: [\"todo\"],\r\n}\r\n\r\nconst STATUS_LABELS: Record<string, string> = {\r\n \"in-progress\": \"start\",\r\n done: \"done\",\r\n blocked: \"blocked\",\r\n todo: \"backlog\",\r\n cancelled: \"cancel\",\r\n}\r\n\r\nconst STATUS_COLORS: Record<string, string> = {\r\n todo: \"text-muted border-border2\",\r\n \"in-progress\": \"text-amber border-amber/30 bg-amber/5\",\r\n blocked: \"text-danger border-danger/30 bg-danger/5\",\r\n done: \"text-teal border-teal/30 bg-teal/5\",\r\n cancelled: \"text-muted border-border\",\r\n}\r\n\r\ninterface TaskDetailPanelProps {\r\n task: Task | null\r\n onClose: () => void\r\n onMove: (id: string, status: string) => void\r\n}\r\n\r\nexport function TaskDetailPanel({ task, onClose, onMove }: TaskDetailPanelProps) {\r\n useEffect(() => {\r\n if (!task) return\r\n function onKey(e: KeyboardEvent) {\r\n if (e.key === \"Escape\") onClose()\r\n }\r\n window.addEventListener(\"keydown\", onKey)\r\n return () => window.removeEventListener(\"keydown\", onKey)\r\n }, [task, onClose])\r\n\r\n if (!task) return null\r\n\r\n const nextStatuses = NEXT_STATUS[task.status] || []\r\n\r\n return (\r\n <>\r\n {/* Backdrop */}\r\n <div\r\n className=\"fixed inset-0 z-40\"\r\n onClick={onClose}\r\n />\r\n\r\n {/* Panel */}\r\n <div className=\"fixed right-0 top-0 h-full w-[420px] z-50 bg-surface border-l border-border flex flex-col shadow-2xl\">\r\n {/* Header */}\r\n <div className=\"flex items-start justify-between px-5 py-4 border-b border-border flex-shrink-0\">\r\n <div className=\"flex flex-col gap-1 min-w-0\">\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"font-mono text-xs text-muted\">{task.id}</span>\r\n <span className={cn(\"text-xs px-1.5 py-0.5 rounded border font-mono\", STATUS_COLORS[task.status])}>\r\n {STATUS_ICONS[task.status]} {task.status}\r\n </span>\r\n </div>\r\n <p className=\"font-medium text-txt text-sm leading-snug\">{task.title}</p>\r\n </div>\r\n <button\r\n onClick={onClose}\r\n className=\"ml-3 flex-shrink-0 text-muted hover:text-txt transition-colors text-lg leading-none\"\r\n aria-label=\"Close panel\"\r\n >\r\n ร\r\n </button>\r\n </div>\r\n\r\n {/* Quick actions */}\r\n {nextStatuses.length > 0 && (\r\n <div className=\"flex items-center gap-2 px-5 py-3 border-b border-border flex-shrink-0\">\r\n {nextStatuses.map((s) => (\r\n <button\r\n key={s}\r\n onClick={() => { onMove(task.id, s); onClose() }}\r\n className=\"text-xs px-2.5 py-1 rounded bg-surface2 border border-border text-muted hover:text-txt hover:border-border2 transition-colors\"\r\n >\r\n {STATUS_ICONS[s]} {STATUS_LABELS[s] || s}\r\n </button>\r\n ))}\r\n </div>\r\n )}\r\n\r\n {/* Content */}\r\n <div className=\"flex-1 overflow-y-auto px-5 py-4\">\r\n {task.raw ? (\r\n <MarkdownRenderer content={task.raw} />\r\n ) : (\r\n <p className=\"text-sm text-muted\">No content available.</p>\r\n )}\r\n </div>\r\n </div>\r\n </>\r\n )\r\n}\r\n","\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport * as Dialog from \"@radix-ui/react-dialog\"\nimport { X, Plus, Loader2 } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\ninterface NewTaskModalProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n rootParam: string\n onTaskCreated: () => void\n}\n\nconst SIZE_OPTIONS = [\n { value: \"XS (< 1 hr)\", label: \"XS โ under 1 hr\" },\n { value: \"S (1-2 hrs)\", label: \"S โ 1โ2 hrs\" },\n { value: \"M (3-4 hrs)\", label: \"M โ 3โ4 hrs\" },\n { value: \"L (5-8 hrs)\", label: \"L โ 5โ8 hrs\" },\n { value: \"XL (> 1 day)\", label: \"XL โ over a day\" },\n]\n\nexport function NewTaskModal({ open, onOpenChange, rootParam, onTaskCreated }: NewTaskModalProps) {\n const [title, setTitle] = useState(\"\")\n const [phase, setPhase] = useState(\"\")\n const [size, setSize] = useState(\"\")\n const [description, setDescription] = useState(\"\")\n const [dependsOn, setDependsOn] = useState(\"\")\n const [error, setError] = useState(\"\")\n const [creating, setCreating] = useState(false)\n\n useEffect(() => {\n if (open) {\n setTitle(\"\")\n setPhase(\"\")\n setSize(\"\")\n setDescription(\"\")\n setDependsOn(\"\")\n setError(\"\")\n setCreating(false)\n }\n }, [open])\n\n async function handleSubmit(e: React.FormEvent) {\n e.preventDefault()\n if (!title.trim()) { setError(\"Title is required\"); return }\n\n setCreating(true)\n setError(\"\")\n\n try {\n const res = await fetch(`/api/tasks/create${rootParam}`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n title: title.trim(),\n phase: phase.trim() || undefined,\n size: size || undefined,\n description: description.trim() || undefined,\n dependsOn: dependsOn.trim() || undefined,\n }),\n })\n\n if (!res.ok) {\n const data = await res.json()\n setError(data.error ?? \"Failed to create task\")\n setCreating(false)\n return\n }\n\n setCreating(false)\n onTaskCreated()\n onOpenChange(false)\n } catch {\n setError(\"Network error โ please try again\")\n setCreating(false)\n }\n }\n\n return (\n <Dialog.Root open={open} onOpenChange={onOpenChange}>\n <Dialog.Portal>\n <Dialog.Overlay className=\"fixed inset-0 z-50 bg-black/60\" />\n <Dialog.Content className=\"fixed z-50 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full max-w-lg bg-surface border border-border rounded-xl shadow-2xl\">\n <div className=\"flex items-center justify-between px-5 py-4 border-b border-border\">\n <Dialog.Title className=\"font-semibold text-txt\">New Task</Dialog.Title>\n <Dialog.Close className=\"text-muted hover:text-txt transition-colors\">\n <X className=\"w-4 h-4\" />\n </Dialog.Close>\n </div>\n\n <form onSubmit={handleSubmit} className=\"p-5 space-y-4\">\n <div className=\"space-y-1.5\">\n <label className=\"text-xs font-medium text-muted uppercase tracking-wide\">\n Title <span className=\"text-danger\">*</span>\n </label>\n <input\n autoFocus\n type=\"text\"\n value={title}\n onChange={e => setTitle(e.target.value)}\n placeholder=\"e.g. Add drag-and-drop to kanban\"\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors\"\n />\n </div>\n\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"space-y-1.5\">\n <label className=\"text-xs font-medium text-muted uppercase tracking-wide\">Phase</label>\n <input\n type=\"text\"\n value={phase}\n onChange={e => setPhase(e.target.value)}\n placeholder=\"e.g. 1 โ Core\"\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors\"\n />\n </div>\n <div className=\"space-y-1.5\">\n <label className=\"text-xs font-medium text-muted uppercase tracking-wide\">Size</label>\n <select\n value={size}\n onChange={e => setSize(e.target.value)}\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt focus:outline-none focus:border-accent transition-colors\"\n >\n <option value=\"\">โ</option>\n {SIZE_OPTIONS.map(o => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </div>\n\n <div className=\"space-y-1.5\">\n <label className=\"text-xs font-medium text-muted uppercase tracking-wide\">Depends on</label>\n <input\n type=\"text\"\n value={dependsOn}\n onChange={e => setDependsOn(e.target.value)}\n placeholder=\"e.g. T001, T003\"\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors\"\n />\n </div>\n\n <div className=\"space-y-1.5\">\n <label className=\"text-xs font-medium text-muted uppercase tracking-wide\">Description</label>\n <textarea\n value={description}\n onChange={e => setDescription(e.target.value)}\n placeholder=\"What needs to be built?\"\n rows={3}\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors resize-none\"\n />\n </div>\n\n {error && (\n <p className=\"text-sm text-danger\">{error}</p>\n )}\n\n <div className=\"flex items-center justify-end gap-2 pt-1\">\n <Dialog.Close\n type=\"button\"\n className=\"px-4 py-2 text-sm text-muted hover:text-txt transition-colors\"\n >\n Cancel\n </Dialog.Close>\n <button\n type=\"submit\"\n disabled={creating || !title.trim()}\n className={cn(\n \"flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium transition-colors\",\n \"bg-accent text-white hover:bg-accent/90 disabled:opacity-50 disabled:cursor-not-allowed\"\n )}\n >\n {creating ? <Loader2 className=\"w-4 h-4 animate-spin\" /> : <Plus className=\"w-4 h-4\" />}\n {creating ? \"Creatingโฆ\" : \"Create Task\"}\n </button>\n </div>\n </form>\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n )\n}\n"],"names":[],"mappings":"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","ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/plus.ts","../../../../node_modules/.pnpm/lucide-react%400.575.0_react%4019.2.4/node_modules/lucide-react/src/icons/loader-circle.ts","../../../../src/app/%28app%29/board/page.tsx","../../../../src/components/board/BoardTab.tsx","../../../../src/components/board/BoardColumn.tsx","../../../../src/components/board/TaskCard.tsx","../../../../src/components/board/TaskDetailPanel.tsx","../../../../src/components/board/NewTaskModal.tsx"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n];\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('plus', __iconNode);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56', key: '13zald' }]];\n\n/**\n * @component @name LoaderCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/loader-circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LoaderCircle = createLucideIcon('loader-circle', __iconNode);\n\nexport default LoaderCircle;\n","\"use client\"\n\nimport { useState } from \"react\"\nimport { useApp } from \"@/context/AppContext\"\nimport { BoardTab } from \"@/components/board/BoardTab\"\nimport { TaskDetailPanel } from \"@/components/board/TaskDetailPanel\"\nimport { NewTaskModal } from \"@/components/board/NewTaskModal\"\nimport type { Task } from \"@/types\"\n\nexport default function BoardPage() {\n const { board, summary, moveTask, refresh, rootParam } = useApp()\n const [selectedTask, setSelectedTask] = useState<Task | null>(null)\n const [newTaskOpen, setNewTaskOpen] = useState(false)\n\n if (!board) return null\n\n return (\n <div className=\"relative flex-1\">\n <BoardTab\n board={board}\n summary={summary}\n onMoveTask={moveTask}\n onOpenTask={setSelectedTask}\n onNewTask={() => setNewTaskOpen(true)}\n />\n <TaskDetailPanel\n task={selectedTask}\n onClose={() => setSelectedTask(null)}\n onMove={moveTask}\n />\n <NewTaskModal\n open={newTaskOpen}\n onOpenChange={setNewTaskOpen}\n rootParam={rootParam}\n onTaskCreated={refresh}\n />\n </div>\n )\n}\n","\"use client\"\n\nimport { Plus } from \"lucide-react\"\nimport type { TaskBoard, Task, Summary } from \"@/types\"\nimport { BoardColumn } from \"./BoardColumn\"\n\ninterface BoardTabProps {\n board: TaskBoard\n summary: Summary | null\n onMoveTask: (id: string, status: string) => void\n onOpenTask: (task: Task) => void\n onNewTask: () => void\n}\n\nexport function BoardTab({ board, summary, onMoveTask, onOpenTask, onNewTask }: BoardTabProps) {\n return (\n <div className=\"p-6\">\n <div className=\"flex items-center justify-between mb-6\">\n <h1 className=\"font-display text-xl\">Task Board</h1>\n <div className=\"flex items-center gap-3\">\n <span className=\"text-xs font-mono text-muted\">{summary?.tasks.total || 0} tasks</span>\n <button\n onClick={onNewTask}\n className=\"flex items-center gap-1.5 px-3 py-1.5 bg-accent text-white rounded-lg text-sm font-medium hover:bg-accent/90 transition-colors\"\n >\n <Plus className=\"w-3.5 h-3.5\" />\n New Task\n </button>\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-4\">\n {([\"in-progress\", \"todo\", \"blocked\", \"done\"] as const).map((col) => (\n <BoardColumn\n key={col}\n status={col}\n tasks={board[col]}\n onMoveTask={onMoveTask}\n onOpenTask={onOpenTask}\n />\n ))}\n </div>\n </div>\n )\n}\n","\"use client\"\r\n\r\nimport { useState } from \"react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Badge } from \"@/components/ui/badge\"\r\nimport type { Task } from \"@/types\"\r\nimport { TaskCard, STATUS_ICONS } from \"./TaskCard\"\r\n\r\ninterface BoardColumnProps {\r\n status: \"in-progress\" | \"todo\" | \"blocked\" | \"done\"\r\n tasks: Task[]\r\n onMoveTask: (id: string, status: string) => void\r\n onOpenTask: (task: Task) => void\r\n}\r\n\r\nexport function BoardColumn({ status, tasks, onMoveTask, onOpenTask }: BoardColumnProps) {\r\n const [isDragOver, setIsDragOver] = useState(false)\r\n\r\n return (\r\n <div className=\"flex flex-col gap-2\">\r\n {/* Column header */}\r\n <div className=\"flex items-center gap-2 mb-1\">\r\n <span className=\"text-sm\">{STATUS_ICONS[status]}</span>\r\n <span className=\"text-xs font-mono font-semibold text-muted uppercase tracking-wider\">\r\n {status}\r\n </span>\r\n <Badge variant=\"secondary\" className=\"ml-auto font-mono text-xs h-5 px-1.5\">{tasks.length}</Badge>\r\n </div>\r\n\r\n {/* Task cards */}\r\n <div\r\n className={cn(\r\n \"flex flex-col gap-2 min-h-[60px] rounded-lg transition-colors\",\r\n isDragOver && \"ring-1 ring-accent/50 bg-accent/5\",\r\n )}\r\n onDragOver={(e) => { e.preventDefault(); setIsDragOver(true) }}\r\n onDragLeave={(e) => {\r\n if (!e.currentTarget.contains(e.relatedTarget as Node)) setIsDragOver(false)\r\n }}\r\n onDrop={(e) => {\r\n e.preventDefault()\r\n setIsDragOver(false)\r\n const taskId = e.dataTransfer.getData(\"taskId\")\r\n if (taskId) onMoveTask(taskId, status)\r\n }}\r\n >\r\n {(tasks ?? []).map((task) => (\r\n <TaskCard\r\n key={task.id}\r\n task={task}\r\n onMove={onMoveTask}\r\n onOpen={() => onOpenTask(task)}\r\n />\r\n ))}\r\n {tasks.length === 0 && (\r\n <div className=\"border border-dashed border-border rounded-lg py-6 text-center text-xs text-muted\">\r\n empty\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport { useState } from \"react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Badge } from \"@/components/ui/badge\"\r\nimport { Button } from \"@/components/ui/button\"\r\nimport type { Task } from \"@/types\"\r\n\r\nconst STATUS_COLORS: Record<string, string> = {\r\n todo: \"text-muted border-border2\",\r\n \"in-progress\": \"text-amber border-amber/30 bg-amber/5\",\r\n blocked: \"text-danger border-danger/30 bg-danger/5\",\r\n done: \"text-teal border-teal/30 bg-teal/5\",\r\n cancelled: \"text-muted border-border line-through\",\r\n}\r\n\r\nconst STATUS_BADGE_COLORS: Record<string, string> = {\r\n todo: \"border-border2 text-muted\",\r\n \"in-progress\": \"border-amber/40 text-amber\",\r\n blocked: \"border-danger/40 text-danger\",\r\n done: \"border-teal/40 text-teal\",\r\n cancelled: \"border-border text-muted\",\r\n}\r\n\r\nexport const STATUS_ICONS: Record<string, string> = {\r\n todo: \"๐\",\r\n \"in-progress\": \"๐จ\",\r\n blocked: \"๐ซ\",\r\n done: \"โ
\",\r\n cancelled: \"โ\",\r\n}\r\n\r\nconst NEXT_STATUS: Record<string, string[]> = {\r\n todo: [\"in-progress\"],\r\n \"in-progress\": [\"done\", \"blocked\", \"todo\"],\r\n blocked: [\"in-progress\", \"cancelled\"],\r\n done: [\"todo\"],\r\n cancelled: [\"todo\"],\r\n}\r\n\r\ninterface TaskCardProps {\r\n task: Task\r\n onMove: (id: string, status: string) => void\r\n onOpen: () => void\r\n}\r\n\r\nexport function TaskCard({ task, onMove, onOpen }: TaskCardProps) {\r\n const [isDragging, setIsDragging] = useState(false)\r\n const nextStatuses = NEXT_STATUS[task.status] || []\r\n\r\n return (\r\n <div\r\n draggable\r\n onDragStart={(e) => {\r\n e.dataTransfer.setData(\"taskId\", task.id)\r\n e.dataTransfer.effectAllowed = \"move\"\r\n setIsDragging(true)\r\n }}\r\n onDragEnd={() => setIsDragging(false)}\r\n className={cn(\r\n \"group relative bg-surface border rounded-lg p-3 text-sm transition-all hover:border-border2\",\r\n STATUS_COLORS[task.status] || \"border-border\",\r\n isDragging && \"opacity-50 cursor-grabbing\",\r\n )}\r\n >\r\n {/* ID + status badge */}\r\n <div className=\"flex items-center justify-between mb-1.5\">\r\n <span className=\"text-xs font-mono text-muted\">{task.id}</span>\r\n <Badge\r\n variant=\"outline\"\r\n className={cn(\"text-[10px] h-4 px-1.5 font-normal\", STATUS_BADGE_COLORS[task.status])}\r\n >\r\n {task.status === \"in-progress\" ? \"active\" : task.status}\r\n </Badge>\r\n </div>\r\n\r\n {/* Title */}\r\n <p className=\"font-medium text-txt text-sm leading-snug mb-2\">{task.title}</p>\r\n\r\n {/* Phase */}\r\n {task.phase && <p className=\"text-xs text-muted mb-2\">{task.phase}</p>}\r\n\r\n {/* Actions */}\r\n <div className=\"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity\">\r\n <Button\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className=\"h-6 text-xs px-2\"\r\n onClick={onOpen}\r\n >\r\n open\r\n </Button>\r\n {nextStatuses.map((s) => (\r\n <Button\r\n key={s}\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className=\"h-6 text-xs px-2\"\r\n onClick={() => onMove(task.id, s)}\r\n >\r\n {STATUS_ICONS[s]} {s === \"in-progress\" ? \"start\" : s}\r\n </Button>\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport { useEffect } from \"react\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport { MarkdownRenderer } from \"@/components/docs/MarkdownRenderer\"\r\nimport type { Task } from \"@/types\"\r\nimport { STATUS_ICONS } from \"./TaskCard\"\r\n\r\nconst NEXT_STATUS: Record<string, string[]> = {\r\n todo: [\"in-progress\"],\r\n \"in-progress\": [\"done\", \"blocked\", \"todo\"],\r\n blocked: [\"in-progress\", \"cancelled\"],\r\n done: [\"todo\"],\r\n cancelled: [\"todo\"],\r\n}\r\n\r\nconst STATUS_LABELS: Record<string, string> = {\r\n \"in-progress\": \"start\",\r\n done: \"done\",\r\n blocked: \"blocked\",\r\n todo: \"backlog\",\r\n cancelled: \"cancel\",\r\n}\r\n\r\nconst STATUS_COLORS: Record<string, string> = {\r\n todo: \"text-muted border-border2\",\r\n \"in-progress\": \"text-amber border-amber/30 bg-amber/5\",\r\n blocked: \"text-danger border-danger/30 bg-danger/5\",\r\n done: \"text-teal border-teal/30 bg-teal/5\",\r\n cancelled: \"text-muted border-border\",\r\n}\r\n\r\ninterface TaskDetailPanelProps {\r\n task: Task | null\r\n onClose: () => void\r\n onMove: (id: string, status: string) => void\r\n}\r\n\r\nexport function TaskDetailPanel({ task, onClose, onMove }: TaskDetailPanelProps) {\r\n useEffect(() => {\r\n if (!task) return\r\n function onKey(e: KeyboardEvent) {\r\n if (e.key === \"Escape\") onClose()\r\n }\r\n window.addEventListener(\"keydown\", onKey)\r\n return () => window.removeEventListener(\"keydown\", onKey)\r\n }, [task, onClose])\r\n\r\n if (!task) return null\r\n\r\n const nextStatuses = NEXT_STATUS[task.status] || []\r\n\r\n return (\r\n <>\r\n {/* Backdrop */}\r\n <div\r\n className=\"fixed inset-0 z-40\"\r\n onClick={onClose}\r\n />\r\n\r\n {/* Panel */}\r\n <div className=\"fixed right-0 top-0 h-full w-[420px] z-50 bg-surface border-l border-border flex flex-col shadow-2xl\">\r\n {/* Header */}\r\n <div className=\"flex items-start justify-between px-5 py-4 border-b border-border flex-shrink-0\">\r\n <div className=\"flex flex-col gap-1 min-w-0\">\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"font-mono text-xs text-muted\">{task.id}</span>\r\n <span className={cn(\"text-xs px-1.5 py-0.5 rounded border font-mono\", STATUS_COLORS[task.status])}>\r\n {STATUS_ICONS[task.status]} {task.status}\r\n </span>\r\n </div>\r\n <p className=\"font-medium text-txt text-sm leading-snug\">{task.title}</p>\r\n </div>\r\n <button\r\n onClick={onClose}\r\n className=\"ml-3 flex-shrink-0 text-muted hover:text-txt transition-colors text-lg leading-none\"\r\n aria-label=\"Close panel\"\r\n >\r\n ร\r\n </button>\r\n </div>\r\n\r\n {/* Quick actions */}\r\n {nextStatuses.length > 0 && (\r\n <div className=\"flex items-center gap-2 px-5 py-3 border-b border-border flex-shrink-0\">\r\n {nextStatuses.map((s) => (\r\n <button\r\n key={s}\r\n onClick={() => { onMove(task.id, s); onClose() }}\r\n className=\"text-xs px-2.5 py-1 rounded bg-surface2 border border-border text-muted hover:text-txt hover:border-border2 transition-colors\"\r\n >\r\n {STATUS_ICONS[s]} {STATUS_LABELS[s] || s}\r\n </button>\r\n ))}\r\n </div>\r\n )}\r\n\r\n {/* Content */}\r\n <div className=\"flex-1 overflow-y-auto px-5 py-4\">\r\n {task.raw ? (\r\n <MarkdownRenderer content={task.raw} />\r\n ) : (\r\n <p className=\"text-sm text-muted\">No content available.</p>\r\n )}\r\n </div>\r\n </div>\r\n </>\r\n )\r\n}\r\n","\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport * as Dialog from \"@radix-ui/react-dialog\"\nimport { X, Plus, Loader2 } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\ninterface NewTaskModalProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n rootParam: string\n onTaskCreated: () => void\n}\n\nconst SIZE_OPTIONS = [\n { value: \"XS (< 1 hr)\", label: \"XS โ under 1 hr\" },\n { value: \"S (1-2 hrs)\", label: \"S โ 1โ2 hrs\" },\n { value: \"M (3-4 hrs)\", label: \"M โ 3โ4 hrs\" },\n { value: \"L (5-8 hrs)\", label: \"L โ 5โ8 hrs\" },\n { value: \"XL (> 1 day)\", label: \"XL โ over a day\" },\n]\n\nexport function NewTaskModal({ open, onOpenChange, rootParam, onTaskCreated }: NewTaskModalProps) {\n const [title, setTitle] = useState(\"\")\n const [phase, setPhase] = useState(\"\")\n const [size, setSize] = useState(\"\")\n const [description, setDescription] = useState(\"\")\n const [dependsOn, setDependsOn] = useState(\"\")\n const [error, setError] = useState(\"\")\n const [creating, setCreating] = useState(false)\n\n useEffect(() => {\n if (open) {\n setTitle(\"\")\n setPhase(\"\")\n setSize(\"\")\n setDescription(\"\")\n setDependsOn(\"\")\n setError(\"\")\n setCreating(false)\n }\n }, [open])\n\n async function handleSubmit(e: React.FormEvent) {\n e.preventDefault()\n if (!title.trim()) { setError(\"Title is required\"); return }\n\n setCreating(true)\n setError(\"\")\n\n try {\n const res = await fetch(`/api/tasks/create${rootParam}`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n title: title.trim(),\n phase: phase.trim() || undefined,\n size: size || undefined,\n description: description.trim() || undefined,\n dependsOn: dependsOn.trim() || undefined,\n }),\n })\n\n if (!res.ok) {\n const data = await res.json()\n setError(data.error ?? \"Failed to create task\")\n setCreating(false)\n return\n }\n\n setCreating(false)\n onTaskCreated()\n onOpenChange(false)\n } catch {\n setError(\"Network error โ please try again\")\n setCreating(false)\n }\n }\n\n return (\n <Dialog.Root open={open} onOpenChange={onOpenChange}>\n <Dialog.Portal>\n <Dialog.Overlay className=\"fixed inset-0 z-50 bg-black/60\" />\n <Dialog.Content className=\"fixed z-50 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full max-w-lg bg-surface border border-border rounded-xl shadow-2xl\">\n <div className=\"flex items-center justify-between px-5 py-4 border-b border-border\">\n <Dialog.Title className=\"font-semibold text-txt\">New Task</Dialog.Title>\n <Dialog.Close className=\"text-muted hover:text-txt transition-colors\">\n <X className=\"w-4 h-4\" />\n </Dialog.Close>\n </div>\n\n <form onSubmit={handleSubmit} className=\"p-5 space-y-4\">\n <div className=\"space-y-1.5\">\n <label className=\"text-xs font-medium text-muted uppercase tracking-wide\">\n Title <span className=\"text-danger\">*</span>\n </label>\n <input\n autoFocus\n type=\"text\"\n value={title}\n onChange={e => setTitle(e.target.value)}\n placeholder=\"e.g. Add drag-and-drop to kanban\"\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors\"\n />\n </div>\n\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"space-y-1.5\">\n <label className=\"text-xs font-medium text-muted uppercase tracking-wide\">Phase</label>\n <input\n type=\"text\"\n value={phase}\n onChange={e => setPhase(e.target.value)}\n placeholder=\"e.g. 1 โ Core\"\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors\"\n />\n </div>\n <div className=\"space-y-1.5\">\n <label className=\"text-xs font-medium text-muted uppercase tracking-wide\">Size</label>\n <select\n value={size}\n onChange={e => setSize(e.target.value)}\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt focus:outline-none focus:border-accent transition-colors\"\n >\n <option value=\"\">โ</option>\n {SIZE_OPTIONS.map(o => (\n <option key={o.value} value={o.value}>{o.label}</option>\n ))}\n </select>\n </div>\n </div>\n\n <div className=\"space-y-1.5\">\n <label className=\"text-xs font-medium text-muted uppercase tracking-wide\">Depends on</label>\n <input\n type=\"text\"\n value={dependsOn}\n onChange={e => setDependsOn(e.target.value)}\n placeholder=\"e.g. T001, T003\"\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors\"\n />\n </div>\n\n <div className=\"space-y-1.5\">\n <label className=\"text-xs font-medium text-muted uppercase tracking-wide\">Description</label>\n <textarea\n value={description}\n onChange={e => setDescription(e.target.value)}\n placeholder=\"What needs to be built?\"\n rows={3}\n className=\"w-full px-3 py-2 bg-surface2 border border-border rounded-lg text-sm text-txt placeholder:text-muted focus:outline-none focus:border-accent transition-colors resize-none\"\n />\n </div>\n\n {error && (\n <p className=\"text-sm text-danger\">{error}</p>\n )}\n\n <div className=\"flex items-center justify-end gap-2 pt-1\">\n <Dialog.Close\n type=\"button\"\n className=\"px-4 py-2 text-sm text-muted hover:text-txt transition-colors\"\n >\n Cancel\n </Dialog.Close>\n <button\n type=\"submit\"\n disabled={creating || !title.trim()}\n className={cn(\n \"flex items-center gap-2 px-4 py-2 rounded-lg text-sm font-medium transition-colors\",\n \"bg-accent text-white hover:bg-accent/90 disabled:opacity-50 disabled:cursor-not-allowed\"\n )}\n >\n {creating ? <Loader2 className=\"w-4 h-4 animate-spin\" /> : <Plus className=\"w-4 h-4\" />}\n {creating ? \"Creatingโฆ\" : \"Create Task\"}\n </button>\n </div>\n </form>\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n )\n}\n"],"names":[],"mappings":"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","ignoreList":[0,1]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module.exports=[3988,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},52221,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"},46734,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={UnrecognizedActionError:function(){return f},unstable_isUnrecognizedActionError:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});class f extends Error{constructor(...a){super(...a),this.name="UnrecognizedActionError"}}function g(a){return!!(a&&"object"==typeof a&&a instanceof f)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},42964,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return e}});class d extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class e extends URLSearchParams{append(){throw new d}delete(){throw new d}set(){throw new d}sort(){throw new d}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},89952,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"RedirectStatusCode",{enumerable:!0,get:function(){return e}});var d,e=((d={})[d.SeeOther=303]="SeeOther",d[d.TemporaryRedirect=307]="TemporaryRedirect",d[d.PermanentRedirect=308]="PermanentRedirect",d);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},96769,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e={REDIRECT_ERROR_CODE:function(){return h},RedirectType:function(){return i},isRedirectError:function(){return j}};for(var f in e)Object.defineProperty(c,f,{enumerable:!0,get:e[f]});let g=a.r(89952),h="NEXT_REDIRECT";var i=((d={}).push="push",d.replace="replace",d);function j(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),f=Number(b.at(-2));return c===h&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(f)&&f in g.RedirectStatusCode}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},15266,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getRedirectError:function(){return i},getRedirectStatusCodeFromError:function(){return n},getRedirectTypeFromError:function(){return m},getURLFromRedirectError:function(){return l},permanentRedirect:function(){return k},redirect:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(89952),g=a.r(96769),h=a.r(20635).actionAsyncStorage;function i(a,b,c=f.RedirectStatusCode.TemporaryRedirect){let d=Object.defineProperty(Error(g.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d.digest=`${g.REDIRECT_ERROR_CODE};${b};${a};${c};`,d}function j(a,b){throw i(a,b??=h?.getStore()?.isAction?g.RedirectType.push:g.RedirectType.replace,f.RedirectStatusCode.TemporaryRedirect)}function k(a,b=g.RedirectType.replace){throw i(a,b,f.RedirectStatusCode.PermanentRedirect)}function l(a){return(0,g.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function m(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function n(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},91950,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HTTPAccessErrorStatus:function(){return f},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return h},getAccessFallbackErrorTypeByStatus:function(){return k},getAccessFallbackHTTPStatus:function(){return j},isHTTPAccessFallbackError:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},g=new Set(Object.values(f)),h="NEXT_HTTP_ERROR_FALLBACK";function i(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let[b,c]=a.digest.split(";");return b===h&&g.has(Number(c))}function j(a){return Number(a.digest.split(";")[1])}function k(a){switch(a){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},75371,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"notFound",{enumerable:!0,get:function(){return f}});let d=a.r(91950),e=`${d.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function f(){let a=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=e,a}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},229,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"forbidden",{enumerable:!0,get:function(){return d}}),a.r(91950).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},55392,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unauthorized",{enumerable:!0,get:function(){return d}}),a.r(91950).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},81404,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isHangingPromiseRejectionError:function(){return f},makeDevtoolsIOAwarePromise:function(){return l},makeHangingPromise:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===g}let g="HANGING_PROMISE_REJECTION";class h extends Error{constructor(a,b){super(`During prerendering, ${b} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${b} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${a}".`),this.route=a,this.expression=b,this.digest=g}}let i=new WeakMap;function j(a,b,c){if(a.aborted)return Promise.reject(new h(b,c));{let d=new Promise((d,e)=>{let f=e.bind(null,new h(b,c)),g=i.get(a);if(g)g.push(f);else{let b=[f];i.set(a,b),a.addEventListener("abort",()=>{for(let a=0;a<b.length;a++)b[a]()},{once:!0})}});return d.catch(k),d}}function k(){}function l(a,b,c){return b.stagedRendering?b.stagedRendering.delayUntilStage(c,void 0,a):new Promise(b=>{setTimeout(()=>{b(a)},0)})}},93765,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isPostpone",{enumerable:!0,get:function(){return e}});let d=Symbol.for("react.postpone");function e(a){return"object"==typeof a&&null!==a&&a.$$typeof===d}},91895,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={BailoutToCSRError:function(){return g},isBailoutToCSRError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="BAILOUT_TO_CLIENT_SIDE_RENDERING";class g extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===f}},15534,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isNextRouterError",{enumerable:!0,get:function(){return f}});let d=a.r(91950),e=a.r(96769);function f(a){return(0,e.isRedirectError)(a)||(0,d.isHTTPAccessFallbackError)(a)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},53602,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DynamicServerError:function(){return g},isDynamicServerError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="DYNAMIC_SERVER_USAGE";class g extends Error{constructor(a){super(`Dynamic server usage: ${a}`),this.description=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===f}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},1354,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={StaticGenBailoutError:function(){return g},isStaticGenBailoutError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="NEXT_STATIC_GEN_BAILOUT";class g extends Error{constructor(...a){super(...a),this.code=f}}function h(a){return"object"==typeof a&&null!==a&&"code"in a&&a.code===f}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},8974,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={METADATA_BOUNDARY_NAME:function(){return f},OUTLET_BOUNDARY_NAME:function(){return h},ROOT_LAYOUT_BOUNDARY_NAME:function(){return i},VIEWPORT_BOUNDARY_NAME:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="__next_metadata_boundary__",g="__next_viewport_boundary__",h="__next_outlet_boundary__",i="__next_root_layout_boundary__"},65764,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={atLeastOneTask:function(){return h},scheduleImmediate:function(){return g},scheduleOnNextTick:function(){return f},waitAtLeastOneReactRenderTask:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a=>{Promise.resolve().then(()=>{process.nextTick(a)})},g=a=>{setImmediate(a)};function h(){return new Promise(a=>g(a))}function i(){return new Promise(a=>setImmediate(a))}},92760,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},2955,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e,f={Postpone:function(){return B},PreludeState:function(){return $},abortAndThrowOnSynchronousRequestDataAccess:function(){return A},abortOnSynchronousPlatformIOAccess:function(){return z},accessedDynamicData:function(){return J},annotateDynamicAccess:function(){return O},consumeDynamicAccess:function(){return K},createDynamicTrackingState:function(){return s},createDynamicValidationState:function(){return t},createHangingInputAbortSignal:function(){return N},createRenderInBrowserAbortSignal:function(){return M},delayUntilRuntimeStage:function(){return ac},formatDynamicAPIAccesses:function(){return L},getFirstDynamicReason:function(){return u},getStaticShellDisallowedDynamicReasons:function(){return ab},isDynamicPostpone:function(){return E},isPrerenderInterruptedError:function(){return I},logDisallowedDynamicError:function(){return _},markCurrentScopeAsDynamic:function(){return v},postponeWithTracking:function(){return C},throwIfDisallowedDynamic:function(){return aa},throwToInterruptStaticGeneration:function(){return w},trackAllowedDynamicAccess:function(){return W},trackDynamicDataInDynamicRender:function(){return x},trackDynamicHoleInRuntimeShell:function(){return X},trackDynamicHoleInStaticShell:function(){return Y},useDynamicRouteParams:function(){return P},useDynamicSearchParams:function(){return Q}};for(var g in f)Object.defineProperty(c,g,{enumerable:!0,get:f[g]});let h=(d=a.r(60940))&&d.__esModule?d:{default:d},i=a.r(53602),j=a.r(1354),k=a.r(32319),l=a.r(56704),m=a.r(81404),n=a.r(8974),o=a.r(65764),p=a.r(91895),q=a.r(92760),r="function"==typeof h.default.unstable_postpone;function s(a){return{isDebugDynamicAccesses:a,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function t(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function u(a){var b;return null==(b=a.dynamicAccesses[0])?void 0:b.expression}function v(a,b,c){if(b)switch(b.type){case"cache":case"unstable-cache":case"private-cache":return}if(!a.forceDynamic&&!a.forceStatic){if(a.dynamicShouldError)throw Object.defineProperty(new j.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${c}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(b)switch(b.type){case"prerender-ppr":return C(a.route,c,b.dynamicTracking);case"prerender-legacy":b.revalidate=0;let d=Object.defineProperty(new i.DynamicServerError(`Route ${a.route} couldn't be rendered statically because it used ${c}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw a.dynamicUsageDescription=c,a.dynamicUsageStack=d.stack,d}}}function w(a,b,c){let d=Object.defineProperty(new i.DynamicServerError(`Route ${b.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.revalidate=0,b.dynamicUsageDescription=a,b.dynamicUsageStack=d.stack,d}function x(a){switch(a.type){case"cache":case"unstable-cache":case"private-cache":return}}function y(a,b,c){let d=H(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`);c.controller.abort(d);let e=c.dynamicTracking;e&&e.dynamicAccesses.push({stack:e.isDebugDynamicAccesses?Error().stack:void 0,expression:b})}function z(a,b,c,d){let e=d.dynamicTracking;y(a,b,d),e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}function A(a,b,c,d){if(!1===d.controller.signal.aborted){y(a,b,d);let e=d.dynamicTracking;e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}throw H(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`)}function B({reason:a,route:b}){let c=k.workUnitAsyncStorage.getStore();C(b,a,c&&"prerender-ppr"===c.type?c.dynamicTracking:null)}function C(a,b,c){(function(){if(!r)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:b}),h.default.unstable_postpone(D(a,b))}function D(a,b){return`Route ${a} needs to bail out of prerendering at this point because it used ${b}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function E(a){return"object"==typeof a&&null!==a&&"string"==typeof a.message&&F(a.message)}function F(a){return a.includes("needs to bail out of prerendering at this point because it used")&&a.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===F(D("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let G="NEXT_PRERENDER_INTERRUPTED";function H(a){let b=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return b.digest=G,b}function I(a){return"object"==typeof a&&null!==a&&a.digest===G&&"name"in a&&"message"in a&&a instanceof Error}function J(a){return a.length>0}function K(a,b){return a.dynamicAccesses.push(...b.dynamicAccesses),a.dynamicAccesses}function L(a){return a.filter(a=>"string"==typeof a.stack&&a.stack.length>0).map(({expression:a,stack:b})=>(b=b.split("\n").slice(4).filter(a=>!(a.includes("node_modules/next/")||a.includes(" (<anonymous>)")||a.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${a}:
|
|
2
2
|
${b}`))}function M(){let a=new AbortController;return a.abort(Object.defineProperty(new p.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),a.signal}function N(a){switch(a.type){case"prerender":case"prerender-runtime":let b=new AbortController;if(a.cacheSignal)a.cacheSignal.inputReady().then(()=>{b.abort()});else{let c=(0,k.getRuntimeStagePromise)(a);c?c.then(()=>(0,o.scheduleOnNextTick)(()=>b.abort())):(0,o.scheduleOnNextTick)(()=>b.abort())}return b.signal;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":return}}function O(a,b){let c=b.dynamicTracking;c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:a})}function P(a){let b=l.workAsyncStorage.getStore(),c=k.workUnitAsyncStorage.getStore();if(b&&c)switch(c.type){case"prerender-client":case"prerender":{let d=c.fallbackRouteParams;d&&d.size>0&&h.default.use((0,m.makeHangingPromise)(c.renderSignal,b.route,a));break}case"prerender-ppr":{let d=c.fallbackRouteParams;if(d&&d.size>0)return C(b.route,a,c.dynamicTracking);break}case"prerender-runtime":throw Object.defineProperty(new q.InvariantError(`\`${a}\` was called during a runtime prerender. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new q.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0})}}function Q(a){let b=l.workAsyncStorage.getStore(),c=k.workUnitAsyncStorage.getStore();if(b)switch(!c&&(0,k.throwForMissingRequestStore)(a),c.type){case"prerender-client":h.default.use((0,m.makeHangingPromise)(c.renderSignal,b.route,a));break;case"prerender-legacy":case"prerender-ppr":if(b.forceStatic)return;throw Object.defineProperty(new p.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new q.InvariantError(`\`${a}\` was called from a Server Component. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new q.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"request":return}}let R=/\n\s+at Suspense \(<anonymous>\)/,S=RegExp(`\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at ${n.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),T=RegExp(`\\n\\s+at ${n.METADATA_BOUNDARY_NAME}[\\n\\s]`),U=RegExp(`\\n\\s+at ${n.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),V=RegExp(`\\n\\s+at ${n.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function W(a,b,c,d){if(!V.test(b)){if(T.test(b)){c.hasDynamicMetadata=!0;return}if(U.test(b)){c.hasDynamicViewport=!0;return}if(S.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(R.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=Z(`Route "${a.route}": Uncached data was accessed outside of <Suspense>. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,b);return void c.dynamicErrors.push(e)}}}function X(a,b,c,d){if(!V.test(b)){if(T.test(b)){c.dynamicMetadata=Z(`Route "${a.route}": Uncached data or \`connection()\` was accessed inside \`generateMetadata\`. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`,b);return}if(U.test(b)){let d=Z(`Route "${a.route}": Uncached data or \`connection()\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`,b);c.dynamicErrors.push(d);return}if(S.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(R.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=Z(`Route "${a.route}": Uncached data or \`connection()\` was accessed outside of \`<Suspense>\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,b);return void c.dynamicErrors.push(e)}}}function Y(a,b,c,d){if(!V.test(b)){if(T.test(b)){c.dynamicMetadata=Z(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateMetadata\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`,b);return}if(U.test(b)){let d=Z(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`,b);c.dynamicErrors.push(d);return}if(S.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(R.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=Z(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed outside of \`<Suspense>\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,b);return void c.dynamicErrors.push(e)}}}function Z(a,b){let c=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return c.stack=c.name+": "+a+b,c}var $=((e={})[e.Full=0]="Full",e[e.Empty=1]="Empty",e[e.Errored=2]="Errored",e);function _(a,b){console.error(b),a.dev||(a.hasReadableErrorStacks?console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${a.route}" in your browser to investigate the error.`):console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:
|
|
3
3
|
- Start the app in development mode by running \`next dev\`, then open "${a.route}" in your browser to investigate the error.
|
|
4
|
-
- Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function aa(a,b,c,d){if(d.syncDynamicErrorWithStack)throw _(a,d.syncDynamicErrorWithStack),new j.StaticGenBailoutError;if(0!==b){if(c.hasSuspenseAboveBody)return;let d=c.dynamicErrors;if(d.length>0){for(let b=0;b<d.length;b++)_(a,d[b]);throw new j.StaticGenBailoutError}if(c.hasDynamicViewport)throw console.error(`Route "${a.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),new j.StaticGenBailoutError;if(1===b)throw console.error(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`),new j.StaticGenBailoutError}else if(!1===c.hasAllowedDynamic&&c.hasDynamicMetadata)throw console.error(`Route "${a.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),new j.StaticGenBailoutError}function ab(a,b,c){if(c.hasSuspenseAboveBody)return[];if(0!==b){let d=c.dynamicErrors;if(d.length>0)return d;if(1===b)return[Object.defineProperty(new q.InvariantError(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E936",enumerable:!1,configurable:!0})]}else if(!1===c.hasAllowedDynamic&&0===c.dynamicErrors.length&&c.dynamicMetadata)return[c.dynamicMetadata];return[]}function ac(a,b){return a.runtimeStagePromise?a.runtimeStagePromise.then(()=>b):b}},25622,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b)||(0,h.isPrerenderInterruptedError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=a.r(81404),e=a.r(93765),f=a.r(91895),g=a.r(15534),h=a.r(2955),i=a.r(53602);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},86527,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=a.r(25622).unstable_rethrow;("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},78811,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return h.RedirectType},forbidden:function(){return j.forbidden},notFound:function(){return i.notFound},permanentRedirect:function(){return g.permanentRedirect},redirect:function(){return g.redirect},unauthorized:function(){return k.unauthorized},unstable_isUnrecognizedActionError:function(){return m},unstable_rethrow:function(){return l.unstable_rethrow}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(42964),g=a.r(15266),h=a.r(96769),i=a.r(75371),j=a.r(229),k=a.r(55392),l=a.r(86527);function m(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},14705,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return h.ReadonlyURLSearchParams},RedirectType:function(){return l.RedirectType},ServerInsertedHTMLContext:function(){return j.ServerInsertedHTMLContext},forbidden:function(){return l.forbidden},notFound:function(){return l.notFound},permanentRedirect:function(){return l.permanentRedirect},redirect:function(){return l.redirect},unauthorized:function(){return l.unauthorized},unstable_isUnrecognizedActionError:function(){return k.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return l.unstable_rethrow},useParams:function(){return r},usePathname:function(){return p},useRouter:function(){return q},useSearchParams:function(){return o},useSelectedLayoutSegment:function(){return t},useSelectedLayoutSegments:function(){return s},useServerInsertedHTML:function(){return j.useServerInsertedHTML}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(3988)._(a.r(60940)),g=a.r(91145),h=a.r(50635),i=a.r(52221),j=a.r(96090),k=a.r(46734),l=a.r(78811),m=a.r(2955).useDynamicRouteParams,n=a.r(2955).useDynamicSearchParams;function o(){n?.("useSearchParams()");let a=(0,f.useContext)(h.SearchParamsContext);return(0,f.useMemo)(()=>a?new h.ReadonlyURLSearchParams(a):null,[a])}function p(){return m?.("usePathname()"),(0,f.useContext)(h.PathnameContext)}function q(){let a=(0,f.useContext)(g.AppRouterContext);if(null===a)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return a}function r(){return m?.("useParams()"),(0,f.useContext)(h.PathParamsContext)}function s(a="children"){m?.("useSelectedLayoutSegments()");let b=(0,f.useContext)(g.LayoutRouterContext);return b?(0,i.getSelectedLayoutSegmentPath)(b.parentTree,a):null}function t(a="children"){m?.("useSelectedLayoutSegment()"),(0,f.useContext)(h.NavigationPromisesContext);let b=s(a);return(0,i.computeSelectedLayoutSegment)(b,a)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},65047,(a,b,c)=>{b.exports=a.r(14705)},44394,17163,39337,68114,a=>{"use strict";var b=a.i(9637),c=a.i(60940),d=a.i(65047);let e={theme:"dark",accentColor:"blue",fontSize:"medium",editor:{autoSave:10,wordWrap:!0,lineNumbers:!0,previewMode:"split"},project:{autoRefresh:10,showHidden:!1},mcp:{endpoint:"http://localhost:3000/api/mcp"}};a.s(["DEFAULT_AGENTS",0,[{id:"code-assistant",name:"Code Assistant",icon:"๐ค",description:"General-purpose coding help",skills:["code-review","test-writer"],prompt:"You are a helpful coding assistant. Help the user with their coding tasks.",active:!0},{id:"doc-bot",name:"Documentation Bot",icon:"๐",description:"Focused on docs and comments",skills:["doc-generator"],prompt:"You are a documentation specialist. Focus on creating and improving documentation.",active:!0}],"DEFAULT_SETTINGS",0,e,"DEFAULT_SKILLS",0,[{id:"code-review",name:"Code Review",description:"Analyzes code for quality, security, and performance issues",trigger:"/review",prompt:"You are an expert code reviewer. Analyze the provided code for:\n- Code quality and best practices\n- Security vulnerabilities\n- Performance issues\n- Maintainability concerns\n\nProvide actionable feedback.",tools:["vibedoc_read_doc","vibedoc_search_docs"],icon:"๐ง"},{id:"doc-generator",name:"Documentation Generator",description:"Creates documentation from code and comments",trigger:"/docs",prompt:"You are a technical documentation writer. Generate clear, comprehensive documentation for the provided code or feature.",tools:["vibedoc_read_doc","vibedoc_write_doc"],icon:"๐"},{id:"test-writer",name:"Test Writer",description:"Generates unit tests for functions and components",trigger:"/test",prompt:"You are a testing expert. Write comprehensive unit tests for the provided code, covering edge cases and ensuring good test coverage.",tools:["vibedoc_read_doc","vibedoc_search_docs"],icon:"๐งช"}]],17163);let f=(0,c.createContext)(null);function g(){let a=(0,c.useContext)(f);if(!a)throw Error("useApp must be used inside AppProvider");return a}function h({children:a}){let g=(0,d.useRouter)(),[h,i]=(0,c.useState)([]),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(null),[p,q]=(0,c.useState)([]),[r,s]=(0,c.useState)(!0),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(null),[x,y]=(0,c.useState)(e.editor),[z,A]=(0,c.useState)(0),B=(0,c.useRef)(null),C=j?`?root=${encodeURIComponent(j)}`:"",D=(0,c.useCallback)(async a=>{let b=a||j;if(!b)return;let c=`?root=${encodeURIComponent(b)}`;try{let[a,b,d]=await Promise.all([fetch(`/api/summary${c}`).then(a=>a.json()),fetch(`/api/tasks${c}`).then(a=>a.json()),fetch(`/api/activity${c}&limit=30`).then(a=>a.json())]);m(a),o(b.board),q(Array.isArray(d)?d:[])}catch{}s(!1)},[j]);(0,c.useEffect)(()=>{fetch("/api/projects").then(a=>a.json()).then(a=>{i(a),a.length>0?(k(a[0].root),D(a[0].root)):s(!1)}).catch(()=>s(!1))},[]),(0,c.useEffect)(()=>{if(!j)return;let a=new EventSource("/api/events");return B.current=a,a.onmessage=a=>{try{let b=JSON.parse(a.data);if("connected"===b.type)return;u(!0),setTimeout(()=>u(!1),2e3),["task_updated","decision_logged","memory_updated","session_start"].includes(b.type)&&D()}catch{}},()=>{a.close()}},[j,D]);let E=(0,c.useCallback)(async(a,b)=>{o(c=>{let d;if(!c)return c;let e=structuredClone(c);for(let c of Object.keys(e)){let f=e[c].findIndex(b=>b.id===a);-1!==f&&(d={...e[c][f],status:b},e[c]=e[c].filter(b=>b.id!==a))}return d&&e[b]&&(e[b]=[d,...e[b]]),e});try{await fetch(`/api/tasks${C}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({taskId:a,status:b,actor:"human"})}),D()}catch{D()}},[C,D]),F=(0,c.useCallback)(async a=>{let b=await fetch(`/api/docs${C}&read=${encodeURIComponent(a)}`);w(await b.json()),g.push("/docs")},[C,g]);return(0,b.jsx)(f.Provider,{value:{projects:h,activeProject:j,summary:l,board:n,activity:p,liveIndicator:t,loading:r,selectedDoc:v,setSelectedDoc:w,rootParam:C,onProjectChange:function(a){k(a),D(a)},refresh:D,moveTask:E,openDoc:F,editorSettings:x,setEditorSettings:y,autoRefreshSeconds:z,setAutoRefreshSeconds:A},children:a})}function i(){for(var a,b,c=0,d="",e=arguments.length;c<e;c++)(a=arguments[c])&&(b=function a(b){var c,d,e="";if("string"==typeof b||"number"==typeof b)e+=b;else if("object"==typeof b)if(Array.isArray(b)){var f=b.length;for(c=0;c<f;c++)b[c]&&(d=a(b[c]))&&(e&&(e+=" "),e+=d)}else for(d in b)b[d]&&(e&&(e+=" "),e+=d);return e}(a))&&(d&&(d+=" "),d+=b);return d}a.s(["AppProvider",()=>h,"useApp",()=>g],44394),a.s(["clsx",()=>i],39337);let j=(a=new Map,b=null,c)=>({nextPart:a,validators:b,classGroupId:c}),k=[],l=(a,b,c)=>{if(0==a.length-b)return c.classGroupId;let d=a[b],e=c.nextPart.get(d);if(e){let c=l(a,b+1,e);if(c)return c}let f=c.validators;if(null===f)return;let g=0===b?a.join("-"):a.slice(b).join("-"),h=f.length;for(let a=0;a<h;a++){let b=f[a];if(b.validator(g))return b.classGroupId}},m=(a,b)=>{let c=j();for(let d in a)n(a[d],c,d,b);return c},n=(a,b,c,d)=>{let e=a.length;for(let f=0;f<e;f++)o(a[f],b,c,d)},o=(a,b,c,d)=>{"string"==typeof a?p(a,b,c):"function"==typeof a?q(a,b,c,d):r(a,b,c,d)},p=(a,b,c)=>{(""===a?b:s(b,a)).classGroupId=c},q=(a,b,c,d)=>{t(a)?n(a(d),b,c,d):(null===b.validators&&(b.validators=[]),b.validators.push({classGroupId:c,validator:a}))},r=(a,b,c,d)=>{let e=Object.entries(a),f=e.length;for(let a=0;a<f;a++){let[f,g]=e[a];n(g,s(b,f),c,d)}},s=(a,b)=>{let c=a,d=b.split("-"),e=d.length;for(let a=0;a<e;a++){let b=d[a],e=c.nextPart.get(b);e||(e=j(),c.nextPart.set(b,e)),c=e}return c},t=a=>"isThemeGetter"in a&&!0===a.isThemeGetter,u=[],v=(a,b,c,d,e)=>({modifiers:a,hasImportantModifier:b,baseClassName:c,maybePostfixModifierPosition:d,isExternal:e}),w=/\s+/,x=a=>{let b;if("string"==typeof a)return a;let c="";for(let d=0;d<a.length;d++)a[d]&&(b=x(a[d]))&&(c&&(c+=" "),c+=b);return c},y=[],z=a=>{let b=b=>b[a]||y;return b.isThemeGetter=!0,b},A=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,B=/^\((?:(\w[\w-]*):)?(.+)\)$/i,C=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,D=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,E=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,F=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,G=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,H=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,I=a=>C.test(a),J=a=>!!a&&!Number.isNaN(Number(a)),K=a=>!!a&&Number.isInteger(Number(a)),L=a=>a.endsWith("%")&&J(a.slice(0,-1)),M=a=>D.test(a),N=()=>!0,O=a=>E.test(a)&&!F.test(a),P=()=>!1,Q=a=>G.test(a),R=a=>H.test(a),S=a=>!U(a)&&!aa(a),T=a=>ai(a,am,P),U=a=>A.test(a),V=a=>ai(a,an,O),W=a=>ai(a,ao,J),X=a=>ai(a,aq,N),Y=a=>ai(a,ap,P),Z=a=>ai(a,ak,P),$=a=>ai(a,al,R),_=a=>ai(a,ar,Q),aa=a=>B.test(a),ab=a=>aj(a,an),ac=a=>aj(a,ap),ad=a=>aj(a,ak),ae=a=>aj(a,am),af=a=>aj(a,al),ag=a=>aj(a,ar,!0),ah=a=>aj(a,aq,!0),ai=(a,b,c)=>{let d=A.exec(a);return!!d&&(d[1]?b(d[1]):c(d[2]))},aj=(a,b,c=!1)=>{let d=B.exec(a);return!!d&&(d[1]?b(d[1]):c)},ak=a=>"position"===a||"percentage"===a,al=a=>"image"===a||"url"===a,am=a=>"length"===a||"size"===a||"bg-size"===a,an=a=>"length"===a,ao=a=>"number"===a,ap=a=>"family-name"===a,aq=a=>"number"===a||"weight"===a,ar=a=>"shadow"===a,as=((a,...b)=>{let c,d,e,f,g=a=>{let b=d(a);if(b)return b;let f=((a,b)=>{let{parseClassName:c,getClassGroupId:d,getConflictingClassGroupIds:e,sortModifiers:f}=b,g=[],h=a.trim().split(w),i="";for(let a=h.length-1;a>=0;a-=1){let b=h[a],{isExternal:j,modifiers:k,hasImportantModifier:l,baseClassName:m,maybePostfixModifierPosition:n}=c(b);if(j){i=b+(i.length>0?" "+i:i);continue}let o=!!n,p=d(o?m.substring(0,n):m);if(!p){if(!o||!(p=d(m))){i=b+(i.length>0?" "+i:i);continue}o=!1}let q=0===k.length?"":1===k.length?k[0]:f(k).join(":"),r=l?q+"!":q,s=r+p;if(g.indexOf(s)>-1)continue;g.push(s);let t=e(p,o);for(let a=0;a<t.length;++a){let b=t[a];g.push(r+b)}i=b+(i.length>0?" "+i:i)}return i})(a,c);return e(a,f),f};return f=h=>{var i;let j;return d=(c={cache:(a=>{if(a<1)return{get:()=>void 0,set:()=>{}};let b=0,c=Object.create(null),d=Object.create(null),e=(e,f)=>{c[e]=f,++b>a&&(b=0,d=c,c=Object.create(null))};return{get(a){let b=c[a];return void 0!==b?b:void 0!==(b=d[a])?(e(a,b),b):void 0},set(a,b){a in c?c[a]=b:e(a,b)}}})((i=b.reduce((a,b)=>b(a),a())).cacheSize),parseClassName:(a=>{let{prefix:b,experimentalParseClassName:c}=a,d=a=>{let b,c=[],d=0,e=0,f=0,g=a.length;for(let h=0;h<g;h++){let g=a[h];if(0===d&&0===e){if(":"===g){c.push(a.slice(f,h)),f=h+1;continue}if("/"===g){b=h;continue}}"["===g?d++:"]"===g?d--:"("===g?e++:")"===g&&e--}let h=0===c.length?a:a.slice(f),i=h,j=!1;return h.endsWith("!")?(i=h.slice(0,-1),j=!0):h.startsWith("!")&&(i=h.slice(1),j=!0),v(c,j,i,b&&b>f?b-f:void 0)};if(b){let a=b+":",c=d;d=b=>b.startsWith(a)?c(b.slice(a.length)):v(u,!1,b,void 0,!0)}if(c){let a=d;d=b=>c({className:b,parseClassName:a})}return d})(i),sortModifiers:(j=new Map,i.orderSensitiveModifiers.forEach((a,b)=>{j.set(a,1e6+b)}),a=>{let b=[],c=[];for(let d=0;d<a.length;d++){let e=a[d],f="["===e[0],g=j.has(e);f||g?(c.length>0&&(c.sort(),b.push(...c),c=[]),b.push(e)):c.push(e)}return c.length>0&&(c.sort(),b.push(...c)),b}),...(a=>{let b=(a=>{let{theme:b,classGroups:c}=a;return m(c,b)})(a),{conflictingClassGroups:c,conflictingClassGroupModifiers:d}=a;return{getClassGroupId:a=>{if(a.startsWith("[")&&a.endsWith("]")){var c;let b,d,e;return -1===(c=a).slice(1,-1).indexOf(":")?void 0:(d=(b=c.slice(1,-1)).indexOf(":"),(e=b.slice(0,d))?"arbitrary.."+e:void 0)}let d=a.split("-"),e=+(""===d[0]&&d.length>1);return l(d,e,b)},getConflictingClassGroupIds:(a,b)=>{if(b){let b=d[a],e=c[a];if(b){if(e){let a=Array(e.length+b.length);for(let b=0;b<e.length;b++)a[b]=e[b];for(let c=0;c<b.length;c++)a[e.length+c]=b[c];return a}return b}return e||k}return c[a]||k}}})(i)}).cache.get,e=c.cache.set,f=g,g(h)},(...a)=>f(((...a)=>{let b,c,d=0,e="";for(;d<a.length;)(b=a[d++])&&(c=x(b))&&(e&&(e+=" "),e+=c);return e})(...a))})(()=>{let a=z("color"),b=z("font"),c=z("text"),d=z("font-weight"),e=z("tracking"),f=z("leading"),g=z("breakpoint"),h=z("container"),i=z("spacing"),j=z("radius"),k=z("shadow"),l=z("inset-shadow"),m=z("text-shadow"),n=z("drop-shadow"),o=z("blur"),p=z("perspective"),q=z("aspect"),r=z("ease"),s=z("animate"),t=()=>["auto","avoid","all","avoid-page","page","left","right","column"],u=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],v=()=>[...u(),aa,U],w=()=>["auto","hidden","clip","visible","scroll"],x=()=>["auto","contain","none"],y=()=>[aa,U,i],A=()=>[I,"full","auto",...y()],B=()=>[K,"none","subgrid",aa,U],C=()=>["auto",{span:["full",K,aa,U]},K,aa,U],D=()=>[K,"auto",aa,U],E=()=>["auto","min","max","fr",aa,U],F=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G=()=>["start","end","center","stretch","center-safe","end-safe"],H=()=>["auto",...y()],O=()=>[I,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...y()],P=()=>[I,"screen","full","dvw","lvw","svw","min","max","fit",...y()],Q=()=>[I,"screen","full","lh","dvh","lvh","svh","min","max","fit",...y()],R=()=>[a,aa,U],ai=()=>[...u(),ad,Z,{position:[aa,U]}],aj=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ak=()=>["auto","cover","contain",ae,T,{size:[aa,U]}],al=()=>[L,ab,V],am=()=>["","none","full",j,aa,U],an=()=>["",J,ab,V],ao=()=>["solid","dashed","dotted","double"],ap=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],aq=()=>[J,L,ad,Z],ar=()=>["","none",o,aa,U],as=()=>["none",J,aa,U],at=()=>["none",J,aa,U],au=()=>[J,aa,U],av=()=>[I,"full",...y()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[M],breakpoint:[M],color:[N],container:[M],"drop-shadow":[M],ease:["in","out","in-out"],font:[S],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[M],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[M],shadow:[M],spacing:["px",J],text:[M],"text-shadow":[M],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",I,U,aa,q]}],container:["container"],columns:[{columns:[J,U,aa,h]}],"break-after":[{"break-after":t()}],"break-before":[{"break-before":t()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:v()}],overflow:[{overflow:w()}],"overflow-x":[{"overflow-x":w()}],"overflow-y":[{"overflow-y":w()}],overscroll:[{overscroll:x()}],"overscroll-x":[{"overscroll-x":x()}],"overscroll-y":[{"overscroll-y":x()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:A()}],"inset-x":[{"inset-x":A()}],"inset-y":[{"inset-y":A()}],start:[{"inset-s":A(),start:A()}],end:[{"inset-e":A(),end:A()}],"inset-bs":[{"inset-bs":A()}],"inset-be":[{"inset-be":A()}],top:[{top:A()}],right:[{right:A()}],bottom:[{bottom:A()}],left:[{left:A()}],visibility:["visible","invisible","collapse"],z:[{z:[K,"auto",aa,U]}],basis:[{basis:[I,"full","auto",h,...y()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[J,I,"auto","initial","none",U]}],grow:[{grow:["",J,aa,U]}],shrink:[{shrink:["",J,aa,U]}],order:[{order:[K,"first","last","none",aa,U]}],"grid-cols":[{"grid-cols":B()}],"col-start-end":[{col:C()}],"col-start":[{"col-start":D()}],"col-end":[{"col-end":D()}],"grid-rows":[{"grid-rows":B()}],"row-start-end":[{row:C()}],"row-start":[{"row-start":D()}],"row-end":[{"row-end":D()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":E()}],"auto-rows":[{"auto-rows":E()}],gap:[{gap:y()}],"gap-x":[{"gap-x":y()}],"gap-y":[{"gap-y":y()}],"justify-content":[{justify:[...F(),"normal"]}],"justify-items":[{"justify-items":[...G(),"normal"]}],"justify-self":[{"justify-self":["auto",...G()]}],"align-content":[{content:["normal",...F()]}],"align-items":[{items:[...G(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G(),{baseline:["","last"]}]}],"place-content":[{"place-content":F()}],"place-items":[{"place-items":[...G(),"baseline"]}],"place-self":[{"place-self":["auto",...G()]}],p:[{p:y()}],px:[{px:y()}],py:[{py:y()}],ps:[{ps:y()}],pe:[{pe:y()}],pbs:[{pbs:y()}],pbe:[{pbe:y()}],pt:[{pt:y()}],pr:[{pr:y()}],pb:[{pb:y()}],pl:[{pl:y()}],m:[{m:H()}],mx:[{mx:H()}],my:[{my:H()}],ms:[{ms:H()}],me:[{me:H()}],mbs:[{mbs:H()}],mbe:[{mbe:H()}],mt:[{mt:H()}],mr:[{mr:H()}],mb:[{mb:H()}],ml:[{ml:H()}],"space-x":[{"space-x":y()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":y()}],"space-y-reverse":["space-y-reverse"],size:[{size:O()}],"inline-size":[{inline:["auto",...P()]}],"min-inline-size":[{"min-inline":["auto",...P()]}],"max-inline-size":[{"max-inline":["none",...P()]}],"block-size":[{block:["auto",...Q()]}],"min-block-size":[{"min-block":["auto",...Q()]}],"max-block-size":[{"max-block":["none",...Q()]}],w:[{w:[h,"screen",...O()]}],"min-w":[{"min-w":[h,"screen","none",...O()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[g]},...O()]}],h:[{h:["screen","lh",...O()]}],"min-h":[{"min-h":["screen","lh","none",...O()]}],"max-h":[{"max-h":["screen","lh",...O()]}],"font-size":[{text:["base",c,ab,V]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[d,ah,X]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",L,U]}],"font-family":[{font:[ac,Y,b]}],"font-features":[{"font-features":[U]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[e,aa,U]}],"line-clamp":[{"line-clamp":[J,"none",aa,W]}],leading:[{leading:[f,...y()]}],"list-image":[{"list-image":["none",aa,U]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",aa,U]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:R()}],"text-color":[{text:R()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ao(),"wavy"]}],"text-decoration-thickness":[{decoration:[J,"from-font","auto",aa,V]}],"text-decoration-color":[{decoration:R()}],"underline-offset":[{"underline-offset":[J,"auto",aa,U]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:y()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",aa,U]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",aa,U]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ai()}],"bg-repeat":[{bg:aj()}],"bg-size":[{bg:ak()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},K,aa,U],radial:["",aa,U],conic:[K,aa,U]},af,$]}],"bg-color":[{bg:R()}],"gradient-from-pos":[{from:al()}],"gradient-via-pos":[{via:al()}],"gradient-to-pos":[{to:al()}],"gradient-from":[{from:R()}],"gradient-via":[{via:R()}],"gradient-to":[{to:R()}],rounded:[{rounded:am()}],"rounded-s":[{"rounded-s":am()}],"rounded-e":[{"rounded-e":am()}],"rounded-t":[{"rounded-t":am()}],"rounded-r":[{"rounded-r":am()}],"rounded-b":[{"rounded-b":am()}],"rounded-l":[{"rounded-l":am()}],"rounded-ss":[{"rounded-ss":am()}],"rounded-se":[{"rounded-se":am()}],"rounded-ee":[{"rounded-ee":am()}],"rounded-es":[{"rounded-es":am()}],"rounded-tl":[{"rounded-tl":am()}],"rounded-tr":[{"rounded-tr":am()}],"rounded-br":[{"rounded-br":am()}],"rounded-bl":[{"rounded-bl":am()}],"border-w":[{border:an()}],"border-w-x":[{"border-x":an()}],"border-w-y":[{"border-y":an()}],"border-w-s":[{"border-s":an()}],"border-w-e":[{"border-e":an()}],"border-w-bs":[{"border-bs":an()}],"border-w-be":[{"border-be":an()}],"border-w-t":[{"border-t":an()}],"border-w-r":[{"border-r":an()}],"border-w-b":[{"border-b":an()}],"border-w-l":[{"border-l":an()}],"divide-x":[{"divide-x":an()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":an()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ao(),"hidden","none"]}],"divide-style":[{divide:[...ao(),"hidden","none"]}],"border-color":[{border:R()}],"border-color-x":[{"border-x":R()}],"border-color-y":[{"border-y":R()}],"border-color-s":[{"border-s":R()}],"border-color-e":[{"border-e":R()}],"border-color-bs":[{"border-bs":R()}],"border-color-be":[{"border-be":R()}],"border-color-t":[{"border-t":R()}],"border-color-r":[{"border-r":R()}],"border-color-b":[{"border-b":R()}],"border-color-l":[{"border-l":R()}],"divide-color":[{divide:R()}],"outline-style":[{outline:[...ao(),"none","hidden"]}],"outline-offset":[{"outline-offset":[J,aa,U]}],"outline-w":[{outline:["",J,ab,V]}],"outline-color":[{outline:R()}],shadow:[{shadow:["","none",k,ag,_]}],"shadow-color":[{shadow:R()}],"inset-shadow":[{"inset-shadow":["none",l,ag,_]}],"inset-shadow-color":[{"inset-shadow":R()}],"ring-w":[{ring:an()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:R()}],"ring-offset-w":[{"ring-offset":[J,V]}],"ring-offset-color":[{"ring-offset":R()}],"inset-ring-w":[{"inset-ring":an()}],"inset-ring-color":[{"inset-ring":R()}],"text-shadow":[{"text-shadow":["none",m,ag,_]}],"text-shadow-color":[{"text-shadow":R()}],opacity:[{opacity:[J,aa,U]}],"mix-blend":[{"mix-blend":[...ap(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ap()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[J]}],"mask-image-linear-from-pos":[{"mask-linear-from":aq()}],"mask-image-linear-to-pos":[{"mask-linear-to":aq()}],"mask-image-linear-from-color":[{"mask-linear-from":R()}],"mask-image-linear-to-color":[{"mask-linear-to":R()}],"mask-image-t-from-pos":[{"mask-t-from":aq()}],"mask-image-t-to-pos":[{"mask-t-to":aq()}],"mask-image-t-from-color":[{"mask-t-from":R()}],"mask-image-t-to-color":[{"mask-t-to":R()}],"mask-image-r-from-pos":[{"mask-r-from":aq()}],"mask-image-r-to-pos":[{"mask-r-to":aq()}],"mask-image-r-from-color":[{"mask-r-from":R()}],"mask-image-r-to-color":[{"mask-r-to":R()}],"mask-image-b-from-pos":[{"mask-b-from":aq()}],"mask-image-b-to-pos":[{"mask-b-to":aq()}],"mask-image-b-from-color":[{"mask-b-from":R()}],"mask-image-b-to-color":[{"mask-b-to":R()}],"mask-image-l-from-pos":[{"mask-l-from":aq()}],"mask-image-l-to-pos":[{"mask-l-to":aq()}],"mask-image-l-from-color":[{"mask-l-from":R()}],"mask-image-l-to-color":[{"mask-l-to":R()}],"mask-image-x-from-pos":[{"mask-x-from":aq()}],"mask-image-x-to-pos":[{"mask-x-to":aq()}],"mask-image-x-from-color":[{"mask-x-from":R()}],"mask-image-x-to-color":[{"mask-x-to":R()}],"mask-image-y-from-pos":[{"mask-y-from":aq()}],"mask-image-y-to-pos":[{"mask-y-to":aq()}],"mask-image-y-from-color":[{"mask-y-from":R()}],"mask-image-y-to-color":[{"mask-y-to":R()}],"mask-image-radial":[{"mask-radial":[aa,U]}],"mask-image-radial-from-pos":[{"mask-radial-from":aq()}],"mask-image-radial-to-pos":[{"mask-radial-to":aq()}],"mask-image-radial-from-color":[{"mask-radial-from":R()}],"mask-image-radial-to-color":[{"mask-radial-to":R()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":u()}],"mask-image-conic-pos":[{"mask-conic":[J]}],"mask-image-conic-from-pos":[{"mask-conic-from":aq()}],"mask-image-conic-to-pos":[{"mask-conic-to":aq()}],"mask-image-conic-from-color":[{"mask-conic-from":R()}],"mask-image-conic-to-color":[{"mask-conic-to":R()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ai()}],"mask-repeat":[{mask:aj()}],"mask-size":[{mask:ak()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",aa,U]}],filter:[{filter:["","none",aa,U]}],blur:[{blur:ar()}],brightness:[{brightness:[J,aa,U]}],contrast:[{contrast:[J,aa,U]}],"drop-shadow":[{"drop-shadow":["","none",n,ag,_]}],"drop-shadow-color":[{"drop-shadow":R()}],grayscale:[{grayscale:["",J,aa,U]}],"hue-rotate":[{"hue-rotate":[J,aa,U]}],invert:[{invert:["",J,aa,U]}],saturate:[{saturate:[J,aa,U]}],sepia:[{sepia:["",J,aa,U]}],"backdrop-filter":[{"backdrop-filter":["","none",aa,U]}],"backdrop-blur":[{"backdrop-blur":ar()}],"backdrop-brightness":[{"backdrop-brightness":[J,aa,U]}],"backdrop-contrast":[{"backdrop-contrast":[J,aa,U]}],"backdrop-grayscale":[{"backdrop-grayscale":["",J,aa,U]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[J,aa,U]}],"backdrop-invert":[{"backdrop-invert":["",J,aa,U]}],"backdrop-opacity":[{"backdrop-opacity":[J,aa,U]}],"backdrop-saturate":[{"backdrop-saturate":[J,aa,U]}],"backdrop-sepia":[{"backdrop-sepia":["",J,aa,U]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":y()}],"border-spacing-x":[{"border-spacing-x":y()}],"border-spacing-y":[{"border-spacing-y":y()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",aa,U]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[J,"initial",aa,U]}],ease:[{ease:["linear","initial",r,aa,U]}],delay:[{delay:[J,aa,U]}],animate:[{animate:["none",s,aa,U]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[p,aa,U]}],"perspective-origin":[{"perspective-origin":v()}],rotate:[{rotate:as()}],"rotate-x":[{"rotate-x":as()}],"rotate-y":[{"rotate-y":as()}],"rotate-z":[{"rotate-z":as()}],scale:[{scale:at()}],"scale-x":[{"scale-x":at()}],"scale-y":[{"scale-y":at()}],"scale-z":[{"scale-z":at()}],"scale-3d":["scale-3d"],skew:[{skew:au()}],"skew-x":[{"skew-x":au()}],"skew-y":[{"skew-y":au()}],transform:[{transform:[aa,U,"","none","gpu","cpu"]}],"transform-origin":[{origin:v()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:av()}],"translate-x":[{"translate-x":av()}],"translate-y":[{"translate-y":av()}],"translate-z":[{"translate-z":av()}],"translate-none":["translate-none"],accent:[{accent:R()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:R()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",aa,U]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":y()}],"scroll-mx":[{"scroll-mx":y()}],"scroll-my":[{"scroll-my":y()}],"scroll-ms":[{"scroll-ms":y()}],"scroll-me":[{"scroll-me":y()}],"scroll-mbs":[{"scroll-mbs":y()}],"scroll-mbe":[{"scroll-mbe":y()}],"scroll-mt":[{"scroll-mt":y()}],"scroll-mr":[{"scroll-mr":y()}],"scroll-mb":[{"scroll-mb":y()}],"scroll-ml":[{"scroll-ml":y()}],"scroll-p":[{"scroll-p":y()}],"scroll-px":[{"scroll-px":y()}],"scroll-py":[{"scroll-py":y()}],"scroll-ps":[{"scroll-ps":y()}],"scroll-pe":[{"scroll-pe":y()}],"scroll-pbs":[{"scroll-pbs":y()}],"scroll-pbe":[{"scroll-pbe":y()}],"scroll-pt":[{"scroll-pt":y()}],"scroll-pr":[{"scroll-pr":y()}],"scroll-pb":[{"scroll-pb":y()}],"scroll-pl":[{"scroll-pl":y()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",aa,U]}],fill:[{fill:["none",...R()]}],"stroke-w":[{stroke:[J,ab,V,W]}],stroke:[{stroke:["none",...R()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function at(...a){return as(i(a))}a.s(["cn",()=>at],68114)}];
|
|
4
|
+
- Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function aa(a,b,c,d){if(d.syncDynamicErrorWithStack)throw _(a,d.syncDynamicErrorWithStack),new j.StaticGenBailoutError;if(0!==b){if(c.hasSuspenseAboveBody)return;let d=c.dynamicErrors;if(d.length>0){for(let b=0;b<d.length;b++)_(a,d[b]);throw new j.StaticGenBailoutError}if(c.hasDynamicViewport)throw console.error(`Route "${a.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),new j.StaticGenBailoutError;if(1===b)throw console.error(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`),new j.StaticGenBailoutError}else if(!1===c.hasAllowedDynamic&&c.hasDynamicMetadata)throw console.error(`Route "${a.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),new j.StaticGenBailoutError}function ab(a,b,c){if(c.hasSuspenseAboveBody)return[];if(0!==b){let d=c.dynamicErrors;if(d.length>0)return d;if(1===b)return[Object.defineProperty(new q.InvariantError(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E936",enumerable:!1,configurable:!0})]}else if(!1===c.hasAllowedDynamic&&0===c.dynamicErrors.length&&c.dynamicMetadata)return[c.dynamicMetadata];return[]}function ac(a,b){return a.runtimeStagePromise?a.runtimeStagePromise.then(()=>b):b}},25622,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b)||(0,h.isPrerenderInterruptedError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=a.r(81404),e=a.r(93765),f=a.r(91895),g=a.r(15534),h=a.r(2955),i=a.r(53602);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},86527,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=a.r(25622).unstable_rethrow;("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},78811,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return h.RedirectType},forbidden:function(){return j.forbidden},notFound:function(){return i.notFound},permanentRedirect:function(){return g.permanentRedirect},redirect:function(){return g.redirect},unauthorized:function(){return k.unauthorized},unstable_isUnrecognizedActionError:function(){return m},unstable_rethrow:function(){return l.unstable_rethrow}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(42964),g=a.r(15266),h=a.r(96769),i=a.r(75371),j=a.r(229),k=a.r(55392),l=a.r(86527);function m(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},14705,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return h.ReadonlyURLSearchParams},RedirectType:function(){return l.RedirectType},ServerInsertedHTMLContext:function(){return j.ServerInsertedHTMLContext},forbidden:function(){return l.forbidden},notFound:function(){return l.notFound},permanentRedirect:function(){return l.permanentRedirect},redirect:function(){return l.redirect},unauthorized:function(){return l.unauthorized},unstable_isUnrecognizedActionError:function(){return k.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return l.unstable_rethrow},useParams:function(){return r},usePathname:function(){return p},useRouter:function(){return q},useSearchParams:function(){return o},useSelectedLayoutSegment:function(){return t},useSelectedLayoutSegments:function(){return s},useServerInsertedHTML:function(){return j.useServerInsertedHTML}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(3988)._(a.r(60940)),g=a.r(91145),h=a.r(50635),i=a.r(52221),j=a.r(96090),k=a.r(46734),l=a.r(78811),m=a.r(2955).useDynamicRouteParams,n=a.r(2955).useDynamicSearchParams;function o(){n?.("useSearchParams()");let a=(0,f.useContext)(h.SearchParamsContext);return(0,f.useMemo)(()=>a?new h.ReadonlyURLSearchParams(a):null,[a])}function p(){return m?.("usePathname()"),(0,f.useContext)(h.PathnameContext)}function q(){let a=(0,f.useContext)(g.AppRouterContext);if(null===a)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return a}function r(){return m?.("useParams()"),(0,f.useContext)(h.PathParamsContext)}function s(a="children"){m?.("useSelectedLayoutSegments()");let b=(0,f.useContext)(g.LayoutRouterContext);return b?(0,i.getSelectedLayoutSegmentPath)(b.parentTree,a):null}function t(a="children"){m?.("useSelectedLayoutSegment()"),(0,f.useContext)(h.NavigationPromisesContext);let b=s(a);return(0,i.computeSelectedLayoutSegment)(b,a)}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},65047,(a,b,c)=>{b.exports=a.r(14705)},44394,17163,39337,68114,a=>{"use strict";var b=a.i(9637),c=a.i(60940),d=a.i(65047);let e={theme:"dark",accentColor:"blue",fontSize:"medium",editor:{autoSave:10,wordWrap:!0,lineNumbers:!0,previewMode:"split"},project:{autoRefresh:10,showHidden:!1},mcp:{endpoint:"http://localhost:3000/api/mcp"}};a.s(["DEFAULT_AGENTS",0,[{id:"code-assistant",name:"Code Assistant",icon:"๐ค",description:"General-purpose coding help",skills:["code-review","test-writer"],prompt:"You are a helpful coding assistant. Help the user with their coding tasks.",active:!0},{id:"doc-bot",name:"Documentation Bot",icon:"๐",description:"Focused on docs and comments",skills:["doc-generator"],prompt:"You are a documentation specialist. Focus on creating and improving documentation.",active:!0}],"DEFAULT_SETTINGS",0,e,"DEFAULT_SKILLS",0,[{id:"code-review",name:"Code Review",description:"Analyzes code for quality, security, and performance issues",trigger:"/review",prompt:"You are an expert code reviewer. Analyze the provided code for:\n- Code quality and best practices\n- Security vulnerabilities\n- Performance issues\n- Maintainability concerns\n\nProvide actionable feedback.",tools:["vibedoc_read_doc","vibedoc_search_docs"],icon:"๐ง"},{id:"doc-generator",name:"Documentation Generator",description:"Creates documentation from code and comments",trigger:"/docs",prompt:"You are a technical documentation writer. Generate clear, comprehensive documentation for the provided code or feature.",tools:["vibedoc_read_doc","vibedoc_write_doc"],icon:"๐"},{id:"test-writer",name:"Test Writer",description:"Generates unit tests for functions and components",trigger:"/test",prompt:"You are a testing expert. Write comprehensive unit tests for the provided code, covering edge cases and ensuring good test coverage.",tools:["vibedoc_read_doc","vibedoc_search_docs"],icon:"๐งช"}]],17163);let f=(0,c.createContext)(null);function g(){let a=(0,c.useContext)(f);if(!a)throw Error("useApp must be used inside AppProvider");return a}function h({children:a}){let g=(0,d.useRouter)(),[h,i]=(0,c.useState)([]),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)(null),[n,o]=(0,c.useState)(null),[p,q]=(0,c.useState)([]),[r,s]=(0,c.useState)(!0),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(null),[x,y]=(0,c.useState)(e.editor),[z,A]=(0,c.useState)(0),B=(0,c.useRef)(null),C=j?`?root=${encodeURIComponent(j)}`:"",D=(0,c.useCallback)(async a=>{let b=a||j;if(!b)return;let c=`?root=${encodeURIComponent(b)}`;try{let[a,b,d]=await Promise.all([fetch(`/api/summary${c}`).then(a=>a.json()),fetch(`/api/tasks${c}`).then(a=>a.json()),fetch(`/api/activity${c}&limit=30`).then(a=>a.json())]);m(a);let e=b?.board;o(e&&"object"==typeof e?{todo:e.todo??[],"in-progress":e["in-progress"]??[],blocked:e.blocked??[],done:e.done??[],cancelled:e.cancelled??[]}:null),q(Array.isArray(d)?d:[])}catch{}s(!1)},[j]);(0,c.useEffect)(()=>{fetch("/api/projects").then(a=>a.json()).then(a=>{i(a),a.length>0?(k(a[0].root),D(a[0].root)):s(!1)}).catch(()=>s(!1))},[]),(0,c.useEffect)(()=>{if(!j)return;let a=new EventSource("/api/events");return B.current=a,a.onmessage=a=>{try{let b=JSON.parse(a.data);if("connected"===b.type)return;u(!0),setTimeout(()=>u(!1),2e3),["task_updated","decision_logged","memory_updated","session_start"].includes(b.type)&&D()}catch{}},()=>{a.close()}},[j,D]);let E=(0,c.useCallback)(async(a,b)=>{o(c=>{let d;if(!c)return c;let e=structuredClone(c);for(let c of Object.keys(e)){let f=e[c].findIndex(b=>b.id===a);-1!==f&&(d={...e[c][f],status:b},e[c]=e[c].filter(b=>b.id!==a))}return d&&e[b]&&(e[b]=[d,...e[b]]),e});try{await fetch(`/api/tasks${C}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({taskId:a,status:b,actor:"human"})}),D()}catch{D()}},[C,D]),F=(0,c.useCallback)(async a=>{let b=await fetch(`/api/docs${C}&read=${encodeURIComponent(a)}`);w(await b.json()),g.push("/docs")},[C,g]);return(0,b.jsx)(f.Provider,{value:{projects:h,activeProject:j,summary:l,board:n,activity:p,liveIndicator:t,loading:r,selectedDoc:v,setSelectedDoc:w,rootParam:C,onProjectChange:function(a){k(a),D(a)},refresh:D,moveTask:E,openDoc:F,editorSettings:x,setEditorSettings:y,autoRefreshSeconds:z,setAutoRefreshSeconds:A},children:a})}function i(){for(var a,b,c=0,d="",e=arguments.length;c<e;c++)(a=arguments[c])&&(b=function a(b){var c,d,e="";if("string"==typeof b||"number"==typeof b)e+=b;else if("object"==typeof b)if(Array.isArray(b)){var f=b.length;for(c=0;c<f;c++)b[c]&&(d=a(b[c]))&&(e&&(e+=" "),e+=d)}else for(d in b)b[d]&&(e&&(e+=" "),e+=d);return e}(a))&&(d&&(d+=" "),d+=b);return d}a.s(["AppProvider",()=>h,"useApp",()=>g],44394),a.s(["clsx",()=>i],39337);let j=(a=new Map,b=null,c)=>({nextPart:a,validators:b,classGroupId:c}),k=[],l=(a,b,c)=>{if(0==a.length-b)return c.classGroupId;let d=a[b],e=c.nextPart.get(d);if(e){let c=l(a,b+1,e);if(c)return c}let f=c.validators;if(null===f)return;let g=0===b?a.join("-"):a.slice(b).join("-"),h=f.length;for(let a=0;a<h;a++){let b=f[a];if(b.validator(g))return b.classGroupId}},m=(a,b)=>{let c=j();for(let d in a)n(a[d],c,d,b);return c},n=(a,b,c,d)=>{let e=a.length;for(let f=0;f<e;f++)o(a[f],b,c,d)},o=(a,b,c,d)=>{"string"==typeof a?p(a,b,c):"function"==typeof a?q(a,b,c,d):r(a,b,c,d)},p=(a,b,c)=>{(""===a?b:s(b,a)).classGroupId=c},q=(a,b,c,d)=>{t(a)?n(a(d),b,c,d):(null===b.validators&&(b.validators=[]),b.validators.push({classGroupId:c,validator:a}))},r=(a,b,c,d)=>{let e=Object.entries(a),f=e.length;for(let a=0;a<f;a++){let[f,g]=e[a];n(g,s(b,f),c,d)}},s=(a,b)=>{let c=a,d=b.split("-"),e=d.length;for(let a=0;a<e;a++){let b=d[a],e=c.nextPart.get(b);e||(e=j(),c.nextPart.set(b,e)),c=e}return c},t=a=>"isThemeGetter"in a&&!0===a.isThemeGetter,u=[],v=(a,b,c,d,e)=>({modifiers:a,hasImportantModifier:b,baseClassName:c,maybePostfixModifierPosition:d,isExternal:e}),w=/\s+/,x=a=>{let b;if("string"==typeof a)return a;let c="";for(let d=0;d<a.length;d++)a[d]&&(b=x(a[d]))&&(c&&(c+=" "),c+=b);return c},y=[],z=a=>{let b=b=>b[a]||y;return b.isThemeGetter=!0,b},A=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,B=/^\((?:(\w[\w-]*):)?(.+)\)$/i,C=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,D=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,E=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,F=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,G=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,H=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,I=a=>C.test(a),J=a=>!!a&&!Number.isNaN(Number(a)),K=a=>!!a&&Number.isInteger(Number(a)),L=a=>a.endsWith("%")&&J(a.slice(0,-1)),M=a=>D.test(a),N=()=>!0,O=a=>E.test(a)&&!F.test(a),P=()=>!1,Q=a=>G.test(a),R=a=>H.test(a),S=a=>!U(a)&&!aa(a),T=a=>ai(a,am,P),U=a=>A.test(a),V=a=>ai(a,an,O),W=a=>ai(a,ao,J),X=a=>ai(a,aq,N),Y=a=>ai(a,ap,P),Z=a=>ai(a,ak,P),$=a=>ai(a,al,R),_=a=>ai(a,ar,Q),aa=a=>B.test(a),ab=a=>aj(a,an),ac=a=>aj(a,ap),ad=a=>aj(a,ak),ae=a=>aj(a,am),af=a=>aj(a,al),ag=a=>aj(a,ar,!0),ah=a=>aj(a,aq,!0),ai=(a,b,c)=>{let d=A.exec(a);return!!d&&(d[1]?b(d[1]):c(d[2]))},aj=(a,b,c=!1)=>{let d=B.exec(a);return!!d&&(d[1]?b(d[1]):c)},ak=a=>"position"===a||"percentage"===a,al=a=>"image"===a||"url"===a,am=a=>"length"===a||"size"===a||"bg-size"===a,an=a=>"length"===a,ao=a=>"number"===a,ap=a=>"family-name"===a,aq=a=>"number"===a||"weight"===a,ar=a=>"shadow"===a,as=((a,...b)=>{let c,d,e,f,g=a=>{let b=d(a);if(b)return b;let f=((a,b)=>{let{parseClassName:c,getClassGroupId:d,getConflictingClassGroupIds:e,sortModifiers:f}=b,g=[],h=a.trim().split(w),i="";for(let a=h.length-1;a>=0;a-=1){let b=h[a],{isExternal:j,modifiers:k,hasImportantModifier:l,baseClassName:m,maybePostfixModifierPosition:n}=c(b);if(j){i=b+(i.length>0?" "+i:i);continue}let o=!!n,p=d(o?m.substring(0,n):m);if(!p){if(!o||!(p=d(m))){i=b+(i.length>0?" "+i:i);continue}o=!1}let q=0===k.length?"":1===k.length?k[0]:f(k).join(":"),r=l?q+"!":q,s=r+p;if(g.indexOf(s)>-1)continue;g.push(s);let t=e(p,o);for(let a=0;a<t.length;++a){let b=t[a];g.push(r+b)}i=b+(i.length>0?" "+i:i)}return i})(a,c);return e(a,f),f};return f=h=>{var i;let j;return d=(c={cache:(a=>{if(a<1)return{get:()=>void 0,set:()=>{}};let b=0,c=Object.create(null),d=Object.create(null),e=(e,f)=>{c[e]=f,++b>a&&(b=0,d=c,c=Object.create(null))};return{get(a){let b=c[a];return void 0!==b?b:void 0!==(b=d[a])?(e(a,b),b):void 0},set(a,b){a in c?c[a]=b:e(a,b)}}})((i=b.reduce((a,b)=>b(a),a())).cacheSize),parseClassName:(a=>{let{prefix:b,experimentalParseClassName:c}=a,d=a=>{let b,c=[],d=0,e=0,f=0,g=a.length;for(let h=0;h<g;h++){let g=a[h];if(0===d&&0===e){if(":"===g){c.push(a.slice(f,h)),f=h+1;continue}if("/"===g){b=h;continue}}"["===g?d++:"]"===g?d--:"("===g?e++:")"===g&&e--}let h=0===c.length?a:a.slice(f),i=h,j=!1;return h.endsWith("!")?(i=h.slice(0,-1),j=!0):h.startsWith("!")&&(i=h.slice(1),j=!0),v(c,j,i,b&&b>f?b-f:void 0)};if(b){let a=b+":",c=d;d=b=>b.startsWith(a)?c(b.slice(a.length)):v(u,!1,b,void 0,!0)}if(c){let a=d;d=b=>c({className:b,parseClassName:a})}return d})(i),sortModifiers:(j=new Map,i.orderSensitiveModifiers.forEach((a,b)=>{j.set(a,1e6+b)}),a=>{let b=[],c=[];for(let d=0;d<a.length;d++){let e=a[d],f="["===e[0],g=j.has(e);f||g?(c.length>0&&(c.sort(),b.push(...c),c=[]),b.push(e)):c.push(e)}return c.length>0&&(c.sort(),b.push(...c)),b}),...(a=>{let b=(a=>{let{theme:b,classGroups:c}=a;return m(c,b)})(a),{conflictingClassGroups:c,conflictingClassGroupModifiers:d}=a;return{getClassGroupId:a=>{if(a.startsWith("[")&&a.endsWith("]")){var c;let b,d,e;return -1===(c=a).slice(1,-1).indexOf(":")?void 0:(d=(b=c.slice(1,-1)).indexOf(":"),(e=b.slice(0,d))?"arbitrary.."+e:void 0)}let d=a.split("-"),e=+(""===d[0]&&d.length>1);return l(d,e,b)},getConflictingClassGroupIds:(a,b)=>{if(b){let b=d[a],e=c[a];if(b){if(e){let a=Array(e.length+b.length);for(let b=0;b<e.length;b++)a[b]=e[b];for(let c=0;c<b.length;c++)a[e.length+c]=b[c];return a}return b}return e||k}return c[a]||k}}})(i)}).cache.get,e=c.cache.set,f=g,g(h)},(...a)=>f(((...a)=>{let b,c,d=0,e="";for(;d<a.length;)(b=a[d++])&&(c=x(b))&&(e&&(e+=" "),e+=c);return e})(...a))})(()=>{let a=z("color"),b=z("font"),c=z("text"),d=z("font-weight"),e=z("tracking"),f=z("leading"),g=z("breakpoint"),h=z("container"),i=z("spacing"),j=z("radius"),k=z("shadow"),l=z("inset-shadow"),m=z("text-shadow"),n=z("drop-shadow"),o=z("blur"),p=z("perspective"),q=z("aspect"),r=z("ease"),s=z("animate"),t=()=>["auto","avoid","all","avoid-page","page","left","right","column"],u=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],v=()=>[...u(),aa,U],w=()=>["auto","hidden","clip","visible","scroll"],x=()=>["auto","contain","none"],y=()=>[aa,U,i],A=()=>[I,"full","auto",...y()],B=()=>[K,"none","subgrid",aa,U],C=()=>["auto",{span:["full",K,aa,U]},K,aa,U],D=()=>[K,"auto",aa,U],E=()=>["auto","min","max","fr",aa,U],F=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G=()=>["start","end","center","stretch","center-safe","end-safe"],H=()=>["auto",...y()],O=()=>[I,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...y()],P=()=>[I,"screen","full","dvw","lvw","svw","min","max","fit",...y()],Q=()=>[I,"screen","full","lh","dvh","lvh","svh","min","max","fit",...y()],R=()=>[a,aa,U],ai=()=>[...u(),ad,Z,{position:[aa,U]}],aj=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ak=()=>["auto","cover","contain",ae,T,{size:[aa,U]}],al=()=>[L,ab,V],am=()=>["","none","full",j,aa,U],an=()=>["",J,ab,V],ao=()=>["solid","dashed","dotted","double"],ap=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],aq=()=>[J,L,ad,Z],ar=()=>["","none",o,aa,U],as=()=>["none",J,aa,U],at=()=>["none",J,aa,U],au=()=>[J,aa,U],av=()=>[I,"full",...y()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[M],breakpoint:[M],color:[N],container:[M],"drop-shadow":[M],ease:["in","out","in-out"],font:[S],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[M],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[M],shadow:[M],spacing:["px",J],text:[M],"text-shadow":[M],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",I,U,aa,q]}],container:["container"],columns:[{columns:[J,U,aa,h]}],"break-after":[{"break-after":t()}],"break-before":[{"break-before":t()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:v()}],overflow:[{overflow:w()}],"overflow-x":[{"overflow-x":w()}],"overflow-y":[{"overflow-y":w()}],overscroll:[{overscroll:x()}],"overscroll-x":[{"overscroll-x":x()}],"overscroll-y":[{"overscroll-y":x()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:A()}],"inset-x":[{"inset-x":A()}],"inset-y":[{"inset-y":A()}],start:[{"inset-s":A(),start:A()}],end:[{"inset-e":A(),end:A()}],"inset-bs":[{"inset-bs":A()}],"inset-be":[{"inset-be":A()}],top:[{top:A()}],right:[{right:A()}],bottom:[{bottom:A()}],left:[{left:A()}],visibility:["visible","invisible","collapse"],z:[{z:[K,"auto",aa,U]}],basis:[{basis:[I,"full","auto",h,...y()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[J,I,"auto","initial","none",U]}],grow:[{grow:["",J,aa,U]}],shrink:[{shrink:["",J,aa,U]}],order:[{order:[K,"first","last","none",aa,U]}],"grid-cols":[{"grid-cols":B()}],"col-start-end":[{col:C()}],"col-start":[{"col-start":D()}],"col-end":[{"col-end":D()}],"grid-rows":[{"grid-rows":B()}],"row-start-end":[{row:C()}],"row-start":[{"row-start":D()}],"row-end":[{"row-end":D()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":E()}],"auto-rows":[{"auto-rows":E()}],gap:[{gap:y()}],"gap-x":[{"gap-x":y()}],"gap-y":[{"gap-y":y()}],"justify-content":[{justify:[...F(),"normal"]}],"justify-items":[{"justify-items":[...G(),"normal"]}],"justify-self":[{"justify-self":["auto",...G()]}],"align-content":[{content:["normal",...F()]}],"align-items":[{items:[...G(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G(),{baseline:["","last"]}]}],"place-content":[{"place-content":F()}],"place-items":[{"place-items":[...G(),"baseline"]}],"place-self":[{"place-self":["auto",...G()]}],p:[{p:y()}],px:[{px:y()}],py:[{py:y()}],ps:[{ps:y()}],pe:[{pe:y()}],pbs:[{pbs:y()}],pbe:[{pbe:y()}],pt:[{pt:y()}],pr:[{pr:y()}],pb:[{pb:y()}],pl:[{pl:y()}],m:[{m:H()}],mx:[{mx:H()}],my:[{my:H()}],ms:[{ms:H()}],me:[{me:H()}],mbs:[{mbs:H()}],mbe:[{mbe:H()}],mt:[{mt:H()}],mr:[{mr:H()}],mb:[{mb:H()}],ml:[{ml:H()}],"space-x":[{"space-x":y()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":y()}],"space-y-reverse":["space-y-reverse"],size:[{size:O()}],"inline-size":[{inline:["auto",...P()]}],"min-inline-size":[{"min-inline":["auto",...P()]}],"max-inline-size":[{"max-inline":["none",...P()]}],"block-size":[{block:["auto",...Q()]}],"min-block-size":[{"min-block":["auto",...Q()]}],"max-block-size":[{"max-block":["none",...Q()]}],w:[{w:[h,"screen",...O()]}],"min-w":[{"min-w":[h,"screen","none",...O()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[g]},...O()]}],h:[{h:["screen","lh",...O()]}],"min-h":[{"min-h":["screen","lh","none",...O()]}],"max-h":[{"max-h":["screen","lh",...O()]}],"font-size":[{text:["base",c,ab,V]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[d,ah,X]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",L,U]}],"font-family":[{font:[ac,Y,b]}],"font-features":[{"font-features":[U]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[e,aa,U]}],"line-clamp":[{"line-clamp":[J,"none",aa,W]}],leading:[{leading:[f,...y()]}],"list-image":[{"list-image":["none",aa,U]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",aa,U]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:R()}],"text-color":[{text:R()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ao(),"wavy"]}],"text-decoration-thickness":[{decoration:[J,"from-font","auto",aa,V]}],"text-decoration-color":[{decoration:R()}],"underline-offset":[{"underline-offset":[J,"auto",aa,U]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:y()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",aa,U]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",aa,U]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ai()}],"bg-repeat":[{bg:aj()}],"bg-size":[{bg:ak()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},K,aa,U],radial:["",aa,U],conic:[K,aa,U]},af,$]}],"bg-color":[{bg:R()}],"gradient-from-pos":[{from:al()}],"gradient-via-pos":[{via:al()}],"gradient-to-pos":[{to:al()}],"gradient-from":[{from:R()}],"gradient-via":[{via:R()}],"gradient-to":[{to:R()}],rounded:[{rounded:am()}],"rounded-s":[{"rounded-s":am()}],"rounded-e":[{"rounded-e":am()}],"rounded-t":[{"rounded-t":am()}],"rounded-r":[{"rounded-r":am()}],"rounded-b":[{"rounded-b":am()}],"rounded-l":[{"rounded-l":am()}],"rounded-ss":[{"rounded-ss":am()}],"rounded-se":[{"rounded-se":am()}],"rounded-ee":[{"rounded-ee":am()}],"rounded-es":[{"rounded-es":am()}],"rounded-tl":[{"rounded-tl":am()}],"rounded-tr":[{"rounded-tr":am()}],"rounded-br":[{"rounded-br":am()}],"rounded-bl":[{"rounded-bl":am()}],"border-w":[{border:an()}],"border-w-x":[{"border-x":an()}],"border-w-y":[{"border-y":an()}],"border-w-s":[{"border-s":an()}],"border-w-e":[{"border-e":an()}],"border-w-bs":[{"border-bs":an()}],"border-w-be":[{"border-be":an()}],"border-w-t":[{"border-t":an()}],"border-w-r":[{"border-r":an()}],"border-w-b":[{"border-b":an()}],"border-w-l":[{"border-l":an()}],"divide-x":[{"divide-x":an()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":an()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ao(),"hidden","none"]}],"divide-style":[{divide:[...ao(),"hidden","none"]}],"border-color":[{border:R()}],"border-color-x":[{"border-x":R()}],"border-color-y":[{"border-y":R()}],"border-color-s":[{"border-s":R()}],"border-color-e":[{"border-e":R()}],"border-color-bs":[{"border-bs":R()}],"border-color-be":[{"border-be":R()}],"border-color-t":[{"border-t":R()}],"border-color-r":[{"border-r":R()}],"border-color-b":[{"border-b":R()}],"border-color-l":[{"border-l":R()}],"divide-color":[{divide:R()}],"outline-style":[{outline:[...ao(),"none","hidden"]}],"outline-offset":[{"outline-offset":[J,aa,U]}],"outline-w":[{outline:["",J,ab,V]}],"outline-color":[{outline:R()}],shadow:[{shadow:["","none",k,ag,_]}],"shadow-color":[{shadow:R()}],"inset-shadow":[{"inset-shadow":["none",l,ag,_]}],"inset-shadow-color":[{"inset-shadow":R()}],"ring-w":[{ring:an()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:R()}],"ring-offset-w":[{"ring-offset":[J,V]}],"ring-offset-color":[{"ring-offset":R()}],"inset-ring-w":[{"inset-ring":an()}],"inset-ring-color":[{"inset-ring":R()}],"text-shadow":[{"text-shadow":["none",m,ag,_]}],"text-shadow-color":[{"text-shadow":R()}],opacity:[{opacity:[J,aa,U]}],"mix-blend":[{"mix-blend":[...ap(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ap()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[J]}],"mask-image-linear-from-pos":[{"mask-linear-from":aq()}],"mask-image-linear-to-pos":[{"mask-linear-to":aq()}],"mask-image-linear-from-color":[{"mask-linear-from":R()}],"mask-image-linear-to-color":[{"mask-linear-to":R()}],"mask-image-t-from-pos":[{"mask-t-from":aq()}],"mask-image-t-to-pos":[{"mask-t-to":aq()}],"mask-image-t-from-color":[{"mask-t-from":R()}],"mask-image-t-to-color":[{"mask-t-to":R()}],"mask-image-r-from-pos":[{"mask-r-from":aq()}],"mask-image-r-to-pos":[{"mask-r-to":aq()}],"mask-image-r-from-color":[{"mask-r-from":R()}],"mask-image-r-to-color":[{"mask-r-to":R()}],"mask-image-b-from-pos":[{"mask-b-from":aq()}],"mask-image-b-to-pos":[{"mask-b-to":aq()}],"mask-image-b-from-color":[{"mask-b-from":R()}],"mask-image-b-to-color":[{"mask-b-to":R()}],"mask-image-l-from-pos":[{"mask-l-from":aq()}],"mask-image-l-to-pos":[{"mask-l-to":aq()}],"mask-image-l-from-color":[{"mask-l-from":R()}],"mask-image-l-to-color":[{"mask-l-to":R()}],"mask-image-x-from-pos":[{"mask-x-from":aq()}],"mask-image-x-to-pos":[{"mask-x-to":aq()}],"mask-image-x-from-color":[{"mask-x-from":R()}],"mask-image-x-to-color":[{"mask-x-to":R()}],"mask-image-y-from-pos":[{"mask-y-from":aq()}],"mask-image-y-to-pos":[{"mask-y-to":aq()}],"mask-image-y-from-color":[{"mask-y-from":R()}],"mask-image-y-to-color":[{"mask-y-to":R()}],"mask-image-radial":[{"mask-radial":[aa,U]}],"mask-image-radial-from-pos":[{"mask-radial-from":aq()}],"mask-image-radial-to-pos":[{"mask-radial-to":aq()}],"mask-image-radial-from-color":[{"mask-radial-from":R()}],"mask-image-radial-to-color":[{"mask-radial-to":R()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":u()}],"mask-image-conic-pos":[{"mask-conic":[J]}],"mask-image-conic-from-pos":[{"mask-conic-from":aq()}],"mask-image-conic-to-pos":[{"mask-conic-to":aq()}],"mask-image-conic-from-color":[{"mask-conic-from":R()}],"mask-image-conic-to-color":[{"mask-conic-to":R()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ai()}],"mask-repeat":[{mask:aj()}],"mask-size":[{mask:ak()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",aa,U]}],filter:[{filter:["","none",aa,U]}],blur:[{blur:ar()}],brightness:[{brightness:[J,aa,U]}],contrast:[{contrast:[J,aa,U]}],"drop-shadow":[{"drop-shadow":["","none",n,ag,_]}],"drop-shadow-color":[{"drop-shadow":R()}],grayscale:[{grayscale:["",J,aa,U]}],"hue-rotate":[{"hue-rotate":[J,aa,U]}],invert:[{invert:["",J,aa,U]}],saturate:[{saturate:[J,aa,U]}],sepia:[{sepia:["",J,aa,U]}],"backdrop-filter":[{"backdrop-filter":["","none",aa,U]}],"backdrop-blur":[{"backdrop-blur":ar()}],"backdrop-brightness":[{"backdrop-brightness":[J,aa,U]}],"backdrop-contrast":[{"backdrop-contrast":[J,aa,U]}],"backdrop-grayscale":[{"backdrop-grayscale":["",J,aa,U]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[J,aa,U]}],"backdrop-invert":[{"backdrop-invert":["",J,aa,U]}],"backdrop-opacity":[{"backdrop-opacity":[J,aa,U]}],"backdrop-saturate":[{"backdrop-saturate":[J,aa,U]}],"backdrop-sepia":[{"backdrop-sepia":["",J,aa,U]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":y()}],"border-spacing-x":[{"border-spacing-x":y()}],"border-spacing-y":[{"border-spacing-y":y()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",aa,U]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[J,"initial",aa,U]}],ease:[{ease:["linear","initial",r,aa,U]}],delay:[{delay:[J,aa,U]}],animate:[{animate:["none",s,aa,U]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[p,aa,U]}],"perspective-origin":[{"perspective-origin":v()}],rotate:[{rotate:as()}],"rotate-x":[{"rotate-x":as()}],"rotate-y":[{"rotate-y":as()}],"rotate-z":[{"rotate-z":as()}],scale:[{scale:at()}],"scale-x":[{"scale-x":at()}],"scale-y":[{"scale-y":at()}],"scale-z":[{"scale-z":at()}],"scale-3d":["scale-3d"],skew:[{skew:au()}],"skew-x":[{"skew-x":au()}],"skew-y":[{"skew-y":au()}],transform:[{transform:[aa,U,"","none","gpu","cpu"]}],"transform-origin":[{origin:v()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:av()}],"translate-x":[{"translate-x":av()}],"translate-y":[{"translate-y":av()}],"translate-z":[{"translate-z":av()}],"translate-none":["translate-none"],accent:[{accent:R()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:R()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",aa,U]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":y()}],"scroll-mx":[{"scroll-mx":y()}],"scroll-my":[{"scroll-my":y()}],"scroll-ms":[{"scroll-ms":y()}],"scroll-me":[{"scroll-me":y()}],"scroll-mbs":[{"scroll-mbs":y()}],"scroll-mbe":[{"scroll-mbe":y()}],"scroll-mt":[{"scroll-mt":y()}],"scroll-mr":[{"scroll-mr":y()}],"scroll-mb":[{"scroll-mb":y()}],"scroll-ml":[{"scroll-ml":y()}],"scroll-p":[{"scroll-p":y()}],"scroll-px":[{"scroll-px":y()}],"scroll-py":[{"scroll-py":y()}],"scroll-ps":[{"scroll-ps":y()}],"scroll-pe":[{"scroll-pe":y()}],"scroll-pbs":[{"scroll-pbs":y()}],"scroll-pbe":[{"scroll-pbe":y()}],"scroll-pt":[{"scroll-pt":y()}],"scroll-pr":[{"scroll-pr":y()}],"scroll-pb":[{"scroll-pb":y()}],"scroll-pl":[{"scroll-pl":y()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",aa,U]}],fill:[{fill:["none",...R()]}],"stroke-w":[{stroke:[J,ab,V,W]}],stroke:[{stroke:["none",...R()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function at(...a){return as(i(a))}a.s(["cn",()=>at],68114)}];
|
|
5
5
|
|
|
6
6
|
//# sourceMappingURL=_acb63a7d._.js.map
|