@taskmark/ui 0.2.5 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -7
- package/app/board/page.tsx +3 -272
- package/app/page.tsx +14 -14
- package/app/setup/actions.ts +4 -4
- package/app/setup/page.tsx +12 -4
- package/bin/lib/resolve-board.mjs +50 -1
- package/bin/taskmark.js +154 -32
- package/components/board/board-screen.tsx +285 -0
- package/components/board/epic-list.tsx +2 -2
- package/components/board/overall-work-items-list.tsx +1 -1
- package/components/board/story-list.tsx +1 -1
- package/dist/prod-next/BUILD_ID +1 -1
- package/dist/prod-next/app-path-routes-manifest.json +2 -2
- package/dist/prod-next/build-manifest.json +3 -3
- package/dist/prod-next/prerender-manifest.json +3 -3
- package/dist/prod-next/react-loadable-manifest.json +2 -2
- package/dist/prod-next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/dist/prod-next/server/app/_global-error.html +1 -1
- package/dist/prod-next/server/app/_global-error.rsc +1 -1
- package/dist/prod-next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/prod-next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/prod-next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/dist/prod-next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/prod-next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/prod-next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/prod-next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/prod-next/server/app/_not-found.html +1 -1
- package/dist/prod-next/server/app/_not-found.rsc +1 -1
- package/dist/prod-next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/dist/prod-next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/prod-next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/dist/prod-next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/prod-next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/prod-next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dist/prod-next/server/app/api/taskmark-reload/route.js +1 -1
- package/dist/prod-next/server/app/board/page.js +2 -50
- package/dist/prod-next/server/app/board/page.js.nft.json +1 -1
- package/dist/prod-next/server/app/board/page_client-reference-manifest.js +1 -1
- package/dist/prod-next/server/app/page.js +2 -2
- package/dist/prod-next/server/app/page.js.nft.json +1 -1
- package/dist/prod-next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/prod-next/server/app/setup/page.js +2 -2
- package/dist/prod-next/server/app/setup/page.js.nft.json +1 -1
- package/dist/prod-next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/dist/prod-next/server/app-paths-manifest.json +2 -2
- package/dist/prod-next/server/chunks/192.js +49 -0
- package/dist/prod-next/server/chunks/463.js +1 -0
- package/dist/prod-next/server/chunks/487.js +1 -0
- package/dist/prod-next/server/chunks/54.js +19 -0
- package/dist/prod-next/server/chunks/57.js +8 -19
- package/dist/prod-next/server/middleware-build-manifest.js +1 -1
- package/dist/prod-next/server/middleware-react-loadable-manifest.js +1 -1
- package/dist/prod-next/server/pages/404.html +1 -1
- package/dist/prod-next/server/pages/500.html +1 -1
- package/dist/prod-next/server/server-reference-manifest.js +1 -1
- package/dist/prod-next/server/server-reference-manifest.json +1 -1
- package/dist/prod-next/static/chunks/636-626c380f021b95c8.js +1 -0
- package/dist/prod-next/static/chunks/909.932f2af3be7f1e89.js +1 -0
- package/dist/prod-next/static/chunks/app/_global-error/page-a1e3320be3da9be1.js +1 -0
- package/dist/prod-next/static/chunks/app/api/taskmark-reload/route-a1e3320be3da9be1.js +1 -0
- package/dist/prod-next/static/chunks/app/board/page-636f60191db62f52.js +1 -0
- package/dist/prod-next/static/chunks/app/page-562a33b50da7665b.js +1 -0
- package/dist/prod-next/static/chunks/app/setup/page-4cf527b758b1d51e.js +1 -0
- package/dist/prod-next/static/chunks/next/dist/client/components/builtin/app-error-a1e3320be3da9be1.js +1 -0
- package/dist/prod-next/static/chunks/next/dist/client/components/builtin/forbidden-a1e3320be3da9be1.js +1 -0
- package/dist/prod-next/static/chunks/next/dist/client/components/builtin/not-found-a1e3320be3da9be1.js +1 -0
- package/dist/prod-next/static/chunks/next/dist/client/components/builtin/unauthorized-a1e3320be3da9be1.js +1 -0
- package/dist/prod-next/static/chunks/webpack-d33b8a6298c94a64.js +1 -0
- package/dist/public/taskmark-snapshot.json +1 -1
- package/lib/taskmark/autoconfig.ts +54 -3
- package/lib/taskmark/discover.ts +2 -1
- package/lib/taskmark/list-view-mode.ts +1 -1
- package/lib/taskmark/workspace-mode.ts +24 -0
- package/lib/taskmark/workspace.ts +5 -2
- package/package.json +4 -2
- package/public/taskmark-snapshot.json +1 -1
- package/scripts/build-static.mjs +61 -3
- package/dist/prod-next/server/chunks/318.js +0 -1
- package/dist/prod-next/server/chunks/490.js +0 -8
- package/dist/prod-next/server/chunks/616.js +0 -1
- package/dist/prod-next/server/chunks/708.js +0 -1
- package/dist/prod-next/static/chunks/51.e9139a9ea6eb36b9.js +0 -1
- package/dist/prod-next/static/chunks/app/_global-error/page-d34451c04262dd7d.js +0 -1
- package/dist/prod-next/static/chunks/app/api/taskmark-reload/route-d34451c04262dd7d.js +0 -1
- package/dist/prod-next/static/chunks/app/board/page-cd1d9be0c0127225.js +0 -1
- package/dist/prod-next/static/chunks/app/page-d34451c04262dd7d.js +0 -1
- package/dist/prod-next/static/chunks/app/setup/page-c3003359e8becc84.js +0 -1
- package/dist/prod-next/static/chunks/next/dist/client/components/builtin/app-error-d34451c04262dd7d.js +0 -1
- package/dist/prod-next/static/chunks/next/dist/client/components/builtin/forbidden-d34451c04262dd7d.js +0 -1
- package/dist/prod-next/static/chunks/next/dist/client/components/builtin/not-found-d34451c04262dd7d.js +0 -1
- package/dist/prod-next/static/chunks/next/dist/client/components/builtin/unauthorized-d34451c04262dd7d.js +0 -1
- package/dist/prod-next/static/chunks/webpack-bfe8992962004e2b.js +0 -1
- /package/dist/prod-next/static/{wbcgYS3Jw87KqhnA9ttOL → yyRnYAFQrJjF5_b5ZIeqh}/_buildManifest.js +0 -0
- /package/dist/prod-next/static/{wbcgYS3Jw87KqhnA9ttOL → yyRnYAFQrJjF5_b5ZIeqh}/_ssgManifest.js +0 -0
package/scripts/build-static.mjs
CHANGED
|
@@ -133,6 +133,25 @@ function stagePackageForBuild(board) {
|
|
|
133
133
|
return { root: stageDir, staged: true }
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
+
/**
|
|
137
|
+
* An in-place build overwrites .next with an `output: export` build, which
|
|
138
|
+
* `taskmark serve` cannot run. Park the server build and put it back after.
|
|
139
|
+
*/
|
|
140
|
+
function stashNextBuild(buildRoot) {
|
|
141
|
+
const nextDir = path.join(buildRoot, ".next")
|
|
142
|
+
if (!fs.existsSync(nextDir)) return null
|
|
143
|
+
const bak = path.join(buildRoot, ".next.taskmark-serve")
|
|
144
|
+
fs.rmSync(bak, { recursive: true, force: true })
|
|
145
|
+
fs.renameSync(nextDir, bak)
|
|
146
|
+
return { nextDir, bak }
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
function restoreNextBuild(stash) {
|
|
150
|
+
if (!stash) return
|
|
151
|
+
fs.rmSync(stash.nextDir, { recursive: true, force: true })
|
|
152
|
+
fs.renameSync(stash.bak, stash.nextDir)
|
|
153
|
+
}
|
|
154
|
+
|
|
136
155
|
/** Bundle snapshot writer so `@/` aliases resolve outside Next. */
|
|
137
156
|
function writeBoardSnapshot(buildRoot, env) {
|
|
138
157
|
const esbuild = loadEsbuild(buildRoot)
|
|
@@ -194,16 +213,50 @@ export async function resetWorkspace() {}
|
|
|
194
213
|
fs.writeFileSync(full, stub, "utf8")
|
|
195
214
|
stashed.push({ full, bak })
|
|
196
215
|
}
|
|
197
|
-
// Route handlers are incompatible with `output: 'export'`.
|
|
216
|
+
// Route handlers are incompatible with `output: 'export'`. Park the backup
|
|
217
|
+
// outside `app/` — a `.staticbak` suffix is still a routable segment there.
|
|
198
218
|
const apiDir = path.join(buildRoot, "app", "api")
|
|
199
219
|
if (fs.existsSync(apiDir)) {
|
|
200
|
-
const bak =
|
|
220
|
+
const bak = path.join(buildRoot, ".taskmark-build", "app-api.staticbak")
|
|
221
|
+
fs.mkdirSync(path.dirname(bak), { recursive: true })
|
|
222
|
+
fs.rmSync(bak, { recursive: true, force: true })
|
|
201
223
|
fs.renameSync(apiDir, bak)
|
|
202
224
|
stashed.push({ full: apiDir, bak, isDir: true })
|
|
203
225
|
}
|
|
204
226
|
return stashed
|
|
205
227
|
}
|
|
206
228
|
|
|
229
|
+
/**
|
|
230
|
+
* `output: 'export'` rejects `force-dynamic`, but the local server needs it.
|
|
231
|
+
* Swap the literal for the duration of the static build.
|
|
232
|
+
*/
|
|
233
|
+
function stashDynamicPages(buildRoot) {
|
|
234
|
+
const pages = [
|
|
235
|
+
"app/page.tsx",
|
|
236
|
+
"app/board/page.tsx",
|
|
237
|
+
"app/setup/page.tsx",
|
|
238
|
+
]
|
|
239
|
+
const from = `export const dynamic = "force-dynamic"`
|
|
240
|
+
const to = `export const dynamic = "force-static"`
|
|
241
|
+
const stashed = []
|
|
242
|
+
for (const rel of pages) {
|
|
243
|
+
const full = path.join(buildRoot, rel)
|
|
244
|
+
if (!fs.existsSync(full)) continue
|
|
245
|
+
const src = fs.readFileSync(full, "utf8")
|
|
246
|
+
if (!src.includes(from)) continue
|
|
247
|
+
const bak = path.join(
|
|
248
|
+
buildRoot,
|
|
249
|
+
".taskmark-build",
|
|
250
|
+
rel.replace(/[\\/]/g, "__") + ".staticbak"
|
|
251
|
+
)
|
|
252
|
+
fs.mkdirSync(path.dirname(bak), { recursive: true })
|
|
253
|
+
fs.copyFileSync(full, bak)
|
|
254
|
+
fs.writeFileSync(full, src.replace(from, to), "utf8")
|
|
255
|
+
stashed.push({ full, bak })
|
|
256
|
+
}
|
|
257
|
+
return stashed
|
|
258
|
+
}
|
|
259
|
+
|
|
207
260
|
function restoreServerActions(stashed) {
|
|
208
261
|
for (const { full, bak } of stashed) {
|
|
209
262
|
if (fs.existsSync(full)) {
|
|
@@ -268,7 +321,11 @@ function main() {
|
|
|
268
321
|
|
|
269
322
|
writeBoardSnapshot(buildRoot, env)
|
|
270
323
|
|
|
271
|
-
const stashed =
|
|
324
|
+
const stashed = [
|
|
325
|
+
...stashServerActions(buildRoot),
|
|
326
|
+
...stashDynamicPages(buildRoot),
|
|
327
|
+
]
|
|
328
|
+
const stashedNext = staged ? null : stashNextBuild(buildRoot)
|
|
272
329
|
try {
|
|
273
330
|
run(process.execPath, [resolveNextBin(buildRoot), "build", "--webpack"], {
|
|
274
331
|
cwd: buildRoot,
|
|
@@ -288,6 +345,7 @@ function main() {
|
|
|
288
345
|
process.exitCode = 1
|
|
289
346
|
} finally {
|
|
290
347
|
restoreServerActions(stashed)
|
|
348
|
+
restoreNextBuild(stashedNext)
|
|
291
349
|
if (staged) {
|
|
292
350
|
// Keep stage on failure for debugging; remove on success.
|
|
293
351
|
if (!process.exitCode) {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=318,exports.ids=[318],exports.modules={108:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"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=c(48894),e=c(64491),f=c(62880),g=c(76484),h=c(23445),i=c(43449);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},10381:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return d}});class c extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class d extends URLSearchParams{append(){throw new c}delete(){throw new c}set(){throw new c}sort(){throw new c}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},32171:(a,b,c)=>{Object.defineProperty(b,"__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(b,e,{enumerable:!0,get:d[e]});let f=c(81494),g=c(52220),h=c(19121).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?"push":"replace",f.RedirectStatusCode.TemporaryRedirect)}function k(a,b="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 b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},34655:(a,b,c)=>{let d=c(63033),e=c(29294),f=c(23445),g=c(89768),h=c(15693),i=c(43449),j=c(72339),k=c(48894);c(20445);new WeakMap;(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},44057:(a,b,c)=>{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(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(7638).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},52283:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return f}});let d=c(7638),e=`${d.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function f(){let a=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E1041",enumerable:!1,configurable:!0});throw a.digest=e,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},56022:(a,b,c)=>{let d=c(41398),e=c(29294),f=c(63033),g=c(23445),h=c(15693),i=c(48894),j=c(89768),k=c(92305),l=c(72339);c(65934);new WeakMap;(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},65573:(a,b,c)=>{c.d(b,{UL:()=>d.U});var d=c(69015);c(56022),c(34655)},66610:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return m},forbidden:function(){return i.forbidden},notFound:function(){return h.notFound},permanentRedirect:function(){return g.permanentRedirect},redirect:function(){return g.redirect},unauthorized:function(){return j.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return k.unstable_rethrow}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(10381),g=c(32171),h=c(52283),i=c(92606),j=c(44057),k=c(98621);function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}let m={push:"push",replace:"replace"};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},69015:(a,b,c)=>{Object.defineProperty(b,"U",{enumerable:!0,get:function(){return n}});let d=c(20503),e=c(91488),f=c(29294),g=c(63033),h=c(23445),i=c(15693),j=c(48894),k=c(89768),l=c(92305),m=c(72339);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E843",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let r=o.get(q);if(r)return r;let s=(0,j.makeHangingPromise)(q.renderSignal,k.route,"`cookies()`");return o.set(q,s),s;case"prerender-client":case"validation-client":let t="`cookies`";throw Object.defineProperty(new m.InvariantError(`${t} must not be used within a Client Component. Next.js should be preventing ${t} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,j.delayUntilRuntimeStage)(c,p(c.cookies));case"private-cache":return p(c.cookies);case"request":let u;if((0,h.trackDynamicDataInDynamicRender)(c),u=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(u);{let a=(0,g.isInEarlyRenderStage)(c);if(u===c.mutableCookies)return a?c.asyncApiPromises.earlyMutableCookies:c.asyncApiPromises.mutableCookies;return a?c.asyncApiPromises.earlyCookies:c.asyncApiPromises.cookies}}}(0,g.throwForMissingRequestStore)(a)}c(65934);let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},91970:(a,b,c)=>{var d=c(66610);c.o(d,"redirect")&&c.d(b,{redirect:function(){return d.redirect}})},92606:(a,b,c)=>{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(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(7638).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},98621:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(108).unstable_rethrow;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)}};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=490,exports.ids=[490],exports.modules={17305:(a,b,c)=>{c.d(b,{cn:()=>f});var d=c(89356),e=c(16184);function f(...a){return(0,e.QP)((0,d.$)(a))}},24925:(a,b,c)=>{c.d(b,{C:()=>h,o:()=>g});var d=c(92901),e=c(99405),f=c(81788);function g(a){let b=[];for(let c of a){let a=(0,f.N)(c);a.ok&&b.push(a.masterPath)}let c=(0,e.tb)(b);return{masters:b,projects:c,source:"cookies",autoconfig:!1}}function h(a){let b=(0,d.resolveAutoconfigWorkspace)();return b&&b.projects.length>0?{masters:b.masters,projects:b.projects,source:b.source,autoconfig:!0}:g(a)}},26284:(a,b,c)=>{c.d(b,{$:()=>i,r:()=>h});var d=c(48249),e=c(15712),f=c(21654),g=c(33191);let h=(0,f.F)((0,g.cn)("group/button font-head font-medium inline-flex cursor-pointer items-center justify-center gap-2 rounded whitespace-nowrap select-none transition-all duration-200","disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-60","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary aria-invalid:border-destructive","[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"),{variants:{variant:{default:"border-2 border-black bg-primary text-primary-foreground shadow-md transition duration-200 hover:translate-y-1 hover:bg-primary-hover hover:shadow active:translate-x-1 active:translate-y-2 active:shadow-none",secondary:"border-2 border-black bg-secondary text-secondary-foreground shadow-md transition duration-200 hover:translate-y-1 hover:bg-secondary-hover hover:shadow active:translate-x-1 active:translate-y-2 active:shadow-none",destructive:"border-2 border-black bg-destructive text-destructive-foreground shadow-md transition duration-200 hover:translate-y-1 hover:bg-destructive/90 hover:shadow active:translate-x-1 active:translate-y-2 active:shadow-none",outline:"border-2 bg-transparent shadow-md transition duration-200 hover:translate-y-1 hover:shadow active:translate-x-1 active:translate-y-2 active:shadow-none",ghost:"bg-transparent hover:bg-accent",link:"bg-transparent hover:underline"},size:{default:"px-4 py-1.5 text-base",xs:"px-2 py-0.5 text-xs",sm:"px-3 py-1 text-sm",lg:"px-6 py-2 text-base lg:px-8 lg:py-3 lg:text-lg",icon:"p-2","icon-xs":"p-1","icon-sm":"p-1.5","icon-lg":"p-3"}},defaultVariants:{variant:"default",size:"default"}});function i({className:a,variant:b="default",size:c="default",...f}){return(0,d.jsx)(e.$,{"data-slot":"button","data-variant":b,"data-size":c,className:(0,g.cn)(h({variant:b,size:c,className:a})),...f})}},33191:(a,b,c)=>{c.d(b,{cn:()=>f});var d=c(99314),e=c(96862);function f(...a){return(0,e.QP)((0,d.$)(a))}},61132:(a,b,c)=>{c.d(b,{xS:()=>t,ap:()=>s,RM:()=>q,HH:()=>v,yJ:()=>r,s3:()=>u});var d=c(95349),e=c(49487),f=c(42650),g=c(71324),h=c(31421);let i=(0,c(57975).promisify)(h.execFile);function j(a){return a.length>1&&(a.endsWith("/")||a.endsWith("\\"))?a.slice(0,-1):a}async function k(){try{let{stdout:a}=await i("osascript",["-e",'POSIX path of (choose folder with prompt "Select Taskmark master folder")'],{timeout:12e4}),b=j(a.trim());if(!b)return{ok:!1,cancelled:!0};return{ok:!0,path:b}}catch(b){let a=b instanceof Error?b.message:String(b);if(a.includes("User canceled")||a.includes("User cancelled")||a.includes("-128")||b&&"object"==typeof b&&"stderr"in b&&String(b.stderr).includes("-128"))return{ok:!1,cancelled:!0};return{ok:!1,cancelled:!1,error:`Folder picker failed: ${a}`}}}async function l(){try{let{stdout:a}=await i("zenity",["--file-selection","--directory","--title=Select Taskmark master folder"],{timeout:12e4}),b=j(a.trim());if(!b)return{ok:!1,cancelled:!0};return{ok:!0,path:b}}catch(b){if(1===(b&&"object"==typeof b&&"code"in b?b.code:void 0))return{ok:!1,cancelled:!0};let a=b instanceof Error?b.message:String(b);if(a.includes("ENOENT"))return{ok:!1,cancelled:!1,error:"Folder picker needs zenity on Linux, or paste a path instead."};return{ok:!1,cancelled:!1,error:`Folder picker failed: ${a}`}}}async function m(){let a=`
|
|
2
|
-
Add-Type -AssemblyName System.Windows.Forms
|
|
3
|
-
$dialog = New-Object System.Windows.Forms.FolderBrowserDialog
|
|
4
|
-
$dialog.Description = 'Select Taskmark master folder'
|
|
5
|
-
$dialog.ShowNewFolderButton = $false
|
|
6
|
-
if ($dialog.ShowDialog() -ne [System.Windows.Forms.DialogResult]::OK) { exit 1 }
|
|
7
|
-
Write-Output $dialog.SelectedPath
|
|
8
|
-
`;try{let{stdout:b}=await i("powershell.exe",["-NoProfile","-Command",a],{timeout:12e4}),c=j(b.trim());if(!c)return{ok:!1,cancelled:!0};return{ok:!0,path:c}}catch(b){if(1===(b&&"object"==typeof b&&"code"in b?b.code:void 0))return{ok:!1,cancelled:!0};let a=b instanceof Error?b.message:String(b);return{ok:!1,cancelled:!1,error:`Folder picker failed: ${a}`}}}async function n(){switch(process.platform){case"darwin":return k();case"win32":return m();case"linux":return l();default:return{ok:!1,cancelled:!1,error:`Folder picker is not supported on ${process.platform}. Paste a path instead.`}}}var o=c(24925),p=c(81788);async function q(a,b){let c=String(b.get("masterPath")??""),d=(0,p.N)(c);return d.ok?{masterPath:d.masterPath,projects:d.projects}:{error:d.error}}async function r(a,b){let c=String(b.get("masterPath")??""),d=(0,p.N)(c);if(!d.ok)return{error:d.error};await (0,g.mY)(d.masterPath);let f=await (0,g.ek)(),h=(0,o.o)(f),i=d.projects[0],j=h.projects.find(a=>a.id===i?.id)??h.projects[0];j&&await (0,g.CS)(j.id),(0,e.redirect)("/board")}async function s(){let a=await n();return a.ok?{path:a.path}:a.cancelled?{}:{error:a.error}}async function t(){let{resolveAutoconfigWorkspace:a}=await Promise.resolve().then(c.bind(c,92901));a()?.projects.length&&(0,e.redirect)("/board"),(0,e.redirect)("/setup?mode=add")}async function u(a){let b=String(a.get("projectId")??"").trim();b&&(await (0,g.CS)(b),(0,f.revalidatePath)("/board"),(0,e.redirect)("/board"))}async function v(){let{clearMasterFoldersCookie:a}=await Promise.resolve().then(c.bind(c,71324));await a(),await (0,g.df)(),(0,e.redirect)("/setup")}(0,c(89337).D)([q,r,s,t,u,v]),(0,d.A)(q,"60c1b804c85b496a5a4268cadf2d53c67586fb1686",null),(0,d.A)(r,"607f0d919c1cf80e0c8d9f1dcb6541718e94e60ffb",null),(0,d.A)(s,"007c68ee4611c2a0d55fb6f7eb65b2f96bfc714a7e",null),(0,d.A)(t,"00234aed495dfcf35cc075646553fee4b12df48f47",null),(0,d.A)(u,"4061257288b15175bc020e0ec9c7f40bb72ff89257",null),(0,d.A)(v,"006f5085673b66e660b417b5a8ce6c2ce69f1bbf34",null)},61189:(a,b,c)=>{c.d(b,{Ku:()=>f,NT:()=>d,UW:()=>k,XD:()=>h,_7:()=>j,a4:()=>e,qv:()=>g,rt:()=>i});let d="taskmark_master_folder",e="taskmark_master_folders",f="taskmark_active_project",g=31536e3,h=31536e3,i=31536e3,j=3,k=new Set(["node_modules",".git",".next",".turbo",".cache","dist","build","coverage","out","vendor"])},64034:(a,b,c)=>{c.d(b,{BT:()=>i,Wu:()=>k,X9:()=>j,ZB:()=>h,Zp:()=>f,aR:()=>g,wL:()=>l});var d=c(48249);c(67484);var e=c(33191);function f({className:a,size:b="default",...c}){return(0,d.jsx)("div",{"data-slot":"card","data-size":b,className:(0,e.cn)("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded border-2 bg-card py-(--card-spacing) text-sm text-card-foreground shadow-md [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",a),...c})}function g({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-header",className:(0,e.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",a),...b})}function h({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-title",className:(0,e.cn)("text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",a),...b})}function i({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-description",className:(0,e.cn)("text-sm text-muted-foreground",a),...b})}function j({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-action",className:(0,e.cn)("col-start-2 row-span-2 row-start-1 self-start justify-self-end",a),...b})}function k({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-content",className:(0,e.cn)("px-(--card-spacing)",a),...b})}function l({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"card-footer",className:(0,e.cn)("flex items-center rounded-b-xl border-t-2 bg-muted/50 p-(--card-spacing)",a),...b})}},71324:(a,b,c)=>{c.d(b,{mY:()=>k,df:()=>o,clearMasterFoldersCookie:()=>l,KQ:()=>m,ek:()=>i,CS:()=>n});var d=c(36042),e=c(61189);function f(){return"1"===process.env.NEXT_PUBLIC_TASKMARK_STATIC||"1"===process.env.TASKMARK_STATIC}async function g(a){if(f())return null;let b=await (0,d.UL)(),c=b.get(a)?.value;if(!c)return null;try{return decodeURIComponent(c)}catch{return c}}function h(a){return encodeURIComponent(a)}async function i(){let a=await g(e.a4);if(a)try{let b=JSON.parse(a);if(Array.isArray(b))return[...new Set(b.filter(a=>"string"==typeof a).map(a=>a.trim()).filter(Boolean))]}catch{}let b=await g(e.NT);return b?.trim()?[b.trim()]:[]}async function j(a){if(f())return;let b=[...new Set(a.map(a=>a.trim()).filter(Boolean))],c=await (0,d.UL)();c.set(e.a4,h(JSON.stringify(b)),{path:"/",maxAge:e.XD,sameSite:"lax",httpOnly:!0}),b.length>0?c.set(e.NT,h(b[b.length-1]),{path:"/",maxAge:e.qv,sameSite:"lax",httpOnly:!0}):c.delete(e.NT)}async function k(a){let b=[...await i()];return b.includes(a)||b.push(a),await j(b),b}async function l(){if(f())return;let a=await (0,d.UL)();a.delete(e.a4),a.delete(e.NT)}async function m(){return g(e.Ku)}async function n(a){f()||(await (0,d.UL)()).set(e.Ku,h(a),{path:"/",maxAge:e.rt,sameSite:"lax",httpOnly:!0})}async function o(){f()||(await (0,d.UL)()).delete(e.Ku)}},81788:(a,b,c)=>{c.d(b,{N:()=>i});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(99405);function i(a){let b,c,d=a.trim();if(!d)return{ok:!1,code:"empty",error:"Enter a master folder path."};let f=g().resolve(d);try{b=e().statSync(f)}catch(a){if("ENOENT"===(a&&"object"==typeof a&&"code"in a?String(a.code):""))return{ok:!1,code:"not_found",error:"Folder not found. Check the path and try again."};return{ok:!1,code:"unreadable",error:"Cannot read that folder. Check permissions and try again."}}if(!b.isDirectory())return{ok:!1,code:"not_directory",error:"That path is not a folder."};try{c=(0,h.c7)(f)}catch{return{ok:!1,code:"unreadable",error:"Cannot scan that folder. Check permissions and try again."}}return 0===c.length?{ok:!1,code:"no_projects",error:"No Taskmark projects found in subfolders. Look for a nested taskmark/ board (INDEX.md or epics/), or a dedicated *-taskmark folder with those files at its root."}:{ok:!0,masterPath:f,projects:c}}},92901:(a,b,c)=>{c.d(b,{resolveAutoconfigWorkspace:()=>k});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(99405);function i(a){let b=process.env[a];return b&&b.trim()?g().resolve(b.trim()):null}function j(a,b){let c=(0,h.NB)(a);return{source:b,singleProject:!0,masters:[c.projectPath],projects:[c]}}function k(){let a=i("TASKMARK_BOARD");if(a){let b=(0,h.PG)(a);if(b)return j(b,"env_board");console.warn(`[taskmark] TASKMARK_BOARD is set but is not a valid board path: ${a}`)}let b=i("TASKMARK_MASTER");if(b){let a=function(a,b){let c;try{c=(0,h.c7)(a)}catch{return null}return 0===c.length?null:{source:b,singleProject:1===c.length,masters:[g().resolve(a)],projects:c}}(b,"env_master");if(a)return a;console.warn(`[taskmark] TASKMARK_MASTER is set but no Taskmark boards were found: ${b}`)}for(let a of function(){let a=[],b=new Set;for(let c of[process.env.TASKMARK_CWD,process.env.INIT_CWD,process.cwd()]){if(!c||!c.trim())continue;let d=g().resolve(c.trim());try{let c=e().realpathSync(d);if(b.has(c))continue;b.add(c),a.push(c)}catch{if(b.has(d))continue;b.add(d),a.push(d)}}return a}()){let b=(0,h.PG)(a);if(b)return j(b,"cwd")}return null}},99405:(a,b,c)=>{c.d(b,{c7:()=>p,tb:()=>q,PG:()=>n,NB:()=>o});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(61189);function i(a){return a.endsWith("-taskmark")}function j(a){let b=g().resolve(a);return i(g().basename(b))?b:g().dirname(b)}function k(a){return e().existsSync(g().join(a,"INDEX.md"))||e().existsSync(g().join(a,"epics"))}function l(a){let b=g().join(a,"taskmark");try{if(!e().statSync(b).isDirectory())return null}catch{return null}return k(b)?b:null}function m(a){if(!i(g().basename(a)))return null;try{if(!e().statSync(a).isDirectory())return null}catch{return null}return k(a)?a:null}function n(a){let b=g().resolve(a);try{if(!e().statSync(b).isDirectory())return null}catch{return null}let c=m(b);if(c)return c;let d=l(b);return d||(k(b)?b:null)}function o(a){let b=function(a){let b=g().resolve(a);try{return e().realpathSync(b)}catch{return b}}(a);return{id:b,name:g().basename(j(b)),projectPath:j(b),boardPath:b}}function p(a,b=h._7){let c=g().resolve(a),d=new Map;return!function a(c,f){var i;let j,k=m(c)??l(c);if(k){let a=o(k);d.set(a.id,a);return}if(!(f>=b)){try{j=e().readdirSync(c,{withFileTypes:!0})}catch{return}for(let b of j){if(b.isDirectory())i=b.name,h.UW.has(i)||i.startsWith(".")||"taskmark"!==b.name&&a(g().join(c,b.name),f+1)}}}(c,0),[...d.values()].sort((a,b)=>a.name.localeCompare(b.name))}function q(a){let b=new Map;for(let c of a)for(let a of p(c))b.set(a.id,a);return[...b.values()].sort((a,b)=>a.name.localeCompare(b.name))}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports.id=616,exports.ids=[616],exports.modules={18836:(a,b,c)=>{"use strict";c.d(b,{Ku:()=>f,NT:()=>d,UW:()=>i,_7:()=>h,a4:()=>e,pZ:()=>g});let d="taskmark_master_folder",e="taskmark_master_folders",f="taskmark_active_project",g={epics:"taskmark_hide_completed_epics",stories:"taskmark_hide_completed_stories",tasks:"taskmark_hide_completed_tasks",overallWorkItems:"taskmark_hide_completed_overall_work_items",workItems:"taskmark_hide_completed_work_items"},h=3,i=new Set(["node_modules",".git",".next",".turbo",".cache","dist","build","coverage","out","vendor"])},18956:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>o,metadata:()=>n,viewport:()=>m});var d=c(5735),e=c(29760),f=c.n(e),g=c(97931),h=c.n(g),i=c(52929),j=c(85561);let k={url:(process.env.NEXT_PUBLIC_SITE_URL||(process.env.VERCEL_URL?`https://${process.env.VERCEL_URL}`:null)||"https://taskmark.dev").replace(/\/$/,"")};c(82704);let l="Taskmark — product memory for agent work. Local markdown boards for Cursor with sizing, work logs, and velocity.",m={themeColor:"#111111"},n={metadataBase:new URL(k.url),applicationName:"Taskmark",title:{default:"Taskmark",template:"%s \xb7 Taskmark"},description:l,icons:{icon:[{url:"/favicon.ico",sizes:"any"},{url:"/favicon.svg",type:"image/svg+xml"},{url:"/favicon-96x96.png",sizes:"96x96",type:"image/png"}],apple:[{url:"/apple-touch-icon.png",sizes:"180x180"}]},manifest:"/site.webmanifest",openGraph:{type:"website",locale:"en_US",url:k.url,siteName:"Taskmark",title:"Taskmark",description:l,images:[{url:"/og/og-default.png",width:1200,height:630,alt:"Taskmark — product memory for agent work"}]},twitter:{card:"summary_large_image",title:"Taskmark",description:l,images:["/og/og-default.png"]},robots:{index:!0,follow:!0}};function o({children:a}){return(0,d.jsx)("html",{lang:"en",children:(0,d.jsxs)("body",{className:`${f().variable} ${h().variable} font-sans antialiased`,children:[(0,d.jsx)(j.Toaster,{}),(0,d.jsx)(i.BoardDevReloader,{}),a]})})}},23302:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23))},28715:(a,b,c)=>{"use strict";function d(){return"1"===process.env.NEXT_PUBLIC_TASKMARK_STATIC||"1"===process.env.TASKMARK_STATIC}c.d(b,{Z:()=>d})},46055:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(88868);let e=async a=>[{type:"image/x-icon",sizes:"16x16",url:(0,d.fillMetadataSegment)(".",await a.params,"favicon.ico",!0)+"?603d046c9a6fdfbb"}]},52929:(a,b,c)=>{"use strict";c.d(b,{BoardDevReloader:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call BoardDevReloader() from the server but BoardDevReloader is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/menda0/Projects/taskmark/taskmark-frontend/components/board/board-dev-reloader.tsx","BoardDevReloader")},52940:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23)),Promise.resolve().then(c.t.bind(c,60440,23)),Promise.resolve().then(c.t.bind(c,84342,23)),Promise.resolve().then(c.t.bind(c,82265,23)),Promise.resolve().then(c.t.bind(c,35421,23)),Promise.resolve().then(c.t.bind(c,61335,23)),Promise.resolve().then(c.t.bind(c,70664,23)),Promise.resolve().then(c.bind(c,74661))},53641:(a,b,c)=>{"use strict";c.d(b,{c7:()=>p,tb:()=>q,PG:()=>n,NB:()=>o});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(18836);function i(a){return a.endsWith("-taskmark")}function j(a){let b=g().resolve(a);return i(g().basename(b))?b:g().dirname(b)}function k(a){return e().existsSync(g().join(a,"INDEX.md"))||e().existsSync(g().join(a,"epics"))}function l(a){let b=g().join(a,"taskmark");try{if(!e().statSync(b).isDirectory())return null}catch{return null}return k(b)?b:null}function m(a){if(!i(g().basename(a)))return null;try{if(!e().statSync(a).isDirectory())return null}catch{return null}return k(a)?a:null}function n(a){let b=g().resolve(a);try{if(!e().statSync(b).isDirectory())return null}catch{return null}let c=m(b);if(c)return c;let d=l(b);return d||(k(b)?b:null)}function o(a){let b=function(a){let b=g().resolve(a);try{return e().realpathSync(b)}catch{return b}}(a);return{id:b,name:g().basename(j(b)),projectPath:j(b),boardPath:b}}function p(a,b=h._7){let c=g().resolve(a),d=new Map;return!function a(c,f){var i;let j,k=m(c)??l(c);if(k){let a=o(k);d.set(a.id,a);return}if(!(f>=b)){try{j=e().readdirSync(c,{withFileTypes:!0})}catch{return}for(let b of j){if(b.isDirectory())i=b.name,h.UW.has(i)||i.startsWith(".")||"taskmark"!==b.name&&a(g().join(c,b.name),f+1)}}}(c,0),[...d.values()].sort((a,b)=>a.name.localeCompare(b.name))}function q(a){let b=new Map;for(let c of a)for(let a of p(c))b.set(a.id,a);return[...b.values()].sort((a,b)=>a.name.localeCompare(b.name))}},66092:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23)),Promise.resolve().then(c.t.bind(c,15098,23)),Promise.resolve().then(c.t.bind(c,47644,23)),Promise.resolve().then(c.t.bind(c,33859,23)),Promise.resolve().then(c.t.bind(c,98099,23)),Promise.resolve().then(c.t.bind(c,16237,23)),Promise.resolve().then(c.t.bind(c,98562,23)),Promise.resolve().then(c.t.bind(c,36675,23))},66623:(a,b,c)=>{"use strict";c.d(b,{BoardDevReloader:()=>f});var d=c(19099),e=c(67484);function f(){return(0,d.useRouter)(),(0,e.useRef)(0),null}},67268:(a,b,c)=>{Promise.resolve().then(c.bind(c,66623)),Promise.resolve().then(c.bind(c,99703))},75220:(a,b,c)=>{"use strict";c.d(b,{X:()=>k,n:()=>l});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(53641);function i(a){let b=process.env[a];return b&&b.trim()?g().resolve(b.trim()):null}function j(a,b){let c=(0,h.NB)(a);return{source:b,singleProject:!0,masters:[c.projectPath],projects:[c]}}function k(){let a=[],b=new Set;for(let c of[process.env.TASKMARK_CWD,process.env.INIT_CWD,process.cwd()]){if(!c||!c.trim())continue;let d=g().resolve(c.trim());try{let c=e().realpathSync(d);if(b.has(c))continue;b.add(c),a.push(c)}catch{if(b.has(d))continue;b.add(d),a.push(d)}}return a}function l(){let a=i("TASKMARK_BOARD");if(a){let b=(0,h.PG)(a);if(b)return j(b,"env_board");console.warn(`[taskmark] TASKMARK_BOARD is set but is not a valid board path: ${a}`)}let b=i("TASKMARK_MASTER");if(b){let a=function(a,b){let c;try{c=(0,h.c7)(a)}catch{return null}return 0===c.length?null:{source:b,singleProject:1===c.length,masters:[g().resolve(a)],projects:c}}(b,"env_master");if(a)return a;console.warn(`[taskmark] TASKMARK_MASTER is set but no Taskmark boards were found: ${b}`)}for(let a of k()){let b=(0,h.PG)(a);if(b)return j(b,"cwd")}return null}},76692:(a,b,c)=>{"use strict";c.d(b,{KQ:()=>j,nG:()=>k,ek:()=>i});var d=c(65573),e=c(18836);function f(a){return"1"===a||"true"===a}var g=c(28715);async function h(a){if((0,g.Z)())return null;let b=await (0,d.UL)(),c=b.get(a)?.value;if(!c)return null;try{return decodeURIComponent(c)}catch{return c}}async function i(){let a=await h(e.a4);if(a)try{let b=JSON.parse(a);if(Array.isArray(b))return[...new Set(b.filter(a=>"string"==typeof a).map(a=>a.trim()).filter(Boolean))]}catch{}let b=await h(e.NT);return b?.trim()?[b.trim()]:[]}async function j(){return h(e.Ku)}async function k(){if((0,g.Z)())return{epics:!1,stories:!1,tasks:!1,overallWorkItems:!1,workItems:!1};let a=await (0,d.UL)();return{epics:f(a.get(e.pZ.epics)?.value),stories:f(a.get(e.pZ.stories)?.value),tasks:f(a.get(e.pZ.tasks)?.value),overallWorkItems:f(a.get(e.pZ.overallWorkItems)?.value),workItems:f(a.get(e.pZ.workItems)?.value)}}},78335:()=>{},82704:()=>{},83134:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23))},85561:(a,b,c)=>{"use strict";c.d(b,{Toaster:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/menda0/Projects/taskmark/taskmark-frontend/components/ui/sonner.tsx","Toaster")},85828:(a,b,c)=>{Promise.resolve().then(c.bind(c,52929)),Promise.resolve().then(c.bind(c,85561))},96487:()=>{},99703:(a,b,c)=>{"use strict";c.d(b,{Toaster:()=>l});var d=c(48249),e=c(99646),f=c(77265),g=c(34460),h=c(49393),i=c(69357),j=c(8696),k=c(90707);let l=({...a})=>{let{theme:b="system"}=(0,j.D)();return(0,d.jsx)(k.l$,{theme:b,className:"toaster group",icons:{success:(0,d.jsx)(e.A,{className:"size-4"}),info:(0,d.jsx)(f.A,{className:"size-4"}),warning:(0,d.jsx)(g.A,{className:"size-4"}),error:(0,d.jsx)(h.A,{className:"size-4"}),loading:(0,d.jsx)(i.A,{className:"size-4 animate-spin"})},toastOptions:{unstyled:!0,classNames:{toast:"group/toast relative flex w-(--width) items-center gap-3 rounded border-2 border-border bg-popover p-4 font-sans text-popover-foreground shadow-md",content:"flex min-w-0 flex-col gap-0.5",title:"font-head text-sm font-medium",description:"text-sm text-muted-foreground",icon:"shrink-0",actionButton:"ms-auto h-fit min-w-fit shrink-0 rounded border-2 border-border bg-primary px-2 py-1 text-xs font-medium text-primary-foreground shadow-sm transition-all duration-200 hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none",cancelButton:"ms-auto h-fit min-w-fit shrink-0 rounded border-2 border-border bg-muted px-2 py-1 text-xs font-medium text-foreground shadow-sm transition-all duration-200 hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none",closeButton:"absolute -top-2 -start-2 rounded-full border-2 border-border bg-background p-0.5 transition-colors hover:bg-muted",success:"[&_[data-icon]]:text-chart-2",warning:"[&_[data-icon]]:text-chart-1",error:"[&_[data-icon]]:text-destructive"}},...a})}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=708,exports.ids=[708],exports.modules={73708:(a,b,c)=>{c.r(b),c.d(b,{loadWorkItemDetail:()=>e,resolveWorkItemById:()=>f});var d=c(99829);let e=(0,d.createServerReference)("600012ba2f856149ad027ad9fde0e7bf12712ff911",d.callServer,void 0,d.findSourceMapURL,"loadWorkItemDetail"),f=(0,d.createServerReference)("604dfd94d6b22ac48dc04892aef25ab40f6142b244",d.callServer,void 0,d.findSourceMapURL,"resolveWorkItemById")}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[51],{94051:(e,r,a)=>{a.r(r),a.d(r,{loadWorkItemDetail:()=>f,resolveWorkItemById:()=>c});var d=a(9339);let f=(0,d.createServerReference)("600012ba2f856149ad027ad9fde0e7bf12712ff911",d.callServer,void 0,d.findSourceMapURL,"loadWorkItemDetail"),c=(0,d.createServerReference)("604dfd94d6b22ac48dc04892aef25ab40f6142b244",d.callServer,void 0,d.findSourceMapURL,"resolveWorkItemById")}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[167,756,819,851,896,974,988],{84441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[167,756,819,851,896,974,988],{84441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[81],{611:(e,t,r)=>{"use strict";r.d(t,{D_:()=>w,G4:()=>h,Mh:()=>v,NB:()=>f,R5:()=>m,WS:()=>N,_i:()=>j,ad:()=>k,er:()=>c,iK:()=>p,oU:()=>g,xp:()=>x,z_:()=>b,zi:()=>u});var s=r(93032),a=r(3329),n=r(99332),i=r(31385),l=r(92922),o=r(57850),d=r(83242);let c={mode:"none"};function u(e){return"none"!==e.mode}function m(e){return"none"===e.mode?"none":"weeks"===e.mode?`w:${e.year}:${e.weekFrom}-${e.weekTo}`:`r:${e.from}:${e.to}`}function x(e){let t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${s}`}function h(e){return{year:(0,s.p)(e),week:(0,a.s)(e)}}function p(e,t,r){let s=e,a=t+r;for(;a<1;)s-=1,a+=f(s);for(;a>f(s);)a-=f(s),s+=1;return{year:s,week:a}}function f(e){return(0,n.T)(new Date(e,11,28))}function g(e){let t={};for(let r of e){let e=(0,d.kT)(r);if(!e)continue;let{year:s,week:a}=h(e),n=t[s];n?(n.min=Math.min(n.min,a),n.max=Math.max(n.max,a)):t[s]={min:a,max:a}}return{years:Object.keys(t).map(Number).sort((e,t)=>e-t),weeksByYear:t}}function b(e=new Date){let{year:t,week:r}=h(e);return{year:t,weekFrom:Math.max(1,r-2),weekTo:r}}function j(e){return"weeks"===e.mode&&e.weekFrom!==e.weekTo}function v(e,t){return`${e}-W${t}`}function y(e){return"number"==typeof e&&Number.isFinite(e)&&e>0?e:0}function w(e){let t=new Map;for(let r of e){let e=(0,d.kT)(r.completedAt);if(!e)continue;let s=y(r.points);if(s<=0)continue;let{year:a,week:n}=h(e),i=v(a,n);t.set(i,(t.get(i)??0)+s)}return t}function k(e){let t=new Map;for(let r of e){let e=(0,d.kT)(r.completedAt);if(!e)continue;let s=y(r.points);if(s<=0)continue;let a=x(e);t.set(a,(t.get(a)??0)+s)}return t}function N(e,t){if("none"===e.mode)return!0;let r=(0,d.kT)(t);if(!r)return!1;if("weeks"===e.mode){let{year:t,week:s}=h(r);if(t!==e.year)return!1;let a=Math.min(e.weekFrom,e.weekTo),n=Math.max(e.weekFrom,e.weekTo);return s>=a&&s<=n}let s=(0,d.kT)(e.from),a=(0,d.kT)(e.to);if(!s||!a)return!1;let n=(0,i.o)(s<=a?s:a),c=(0,l.D)(s<=a?a:s);return(0,o.v)(r,{start:n,end:c})}},4474:(e,t,r)=>{"use strict";r.d(t,{$:()=>o,r:()=>l});var s=r(95155),a=r(35684),n=r(18460),i=r(91337);let l=(0,n.F)((0,i.cn)("group/button font-head font-medium inline-flex cursor-pointer items-center justify-center gap-2 rounded whitespace-nowrap select-none transition-all duration-200","disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-60","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary aria-invalid:border-destructive","[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"),{variants:{variant:{default:"border-2 border-black bg-primary text-primary-foreground shadow-md transition duration-200 hover:translate-y-1 hover:bg-primary-hover hover:shadow active:translate-x-1 active:translate-y-2 active:shadow-none",secondary:"border-2 border-black bg-secondary text-secondary-foreground shadow-md transition duration-200 hover:translate-y-1 hover:bg-secondary-hover hover:shadow active:translate-x-1 active:translate-y-2 active:shadow-none",destructive:"border-2 border-black bg-destructive text-destructive-foreground shadow-md transition duration-200 hover:translate-y-1 hover:bg-destructive/90 hover:shadow active:translate-x-1 active:translate-y-2 active:shadow-none",outline:"border-2 bg-transparent shadow-md transition duration-200 hover:translate-y-1 hover:shadow active:translate-x-1 active:translate-y-2 active:shadow-none",ghost:"bg-transparent hover:bg-accent",link:"bg-transparent hover:underline"},size:{default:"px-4 py-1.5 text-base",xs:"px-2 py-0.5 text-xs",sm:"px-3 py-1 text-sm",lg:"px-6 py-2 text-base lg:px-8 lg:py-3 lg:text-lg",icon:"p-2","icon-xs":"p-1","icon-sm":"p-1.5","icon-lg":"p-3"}},defaultVariants:{variant:"default",size:"default"}});function o({className:e,variant:t="default",size:r="default",...n}){return(0,s.jsx)(a.$,{"data-slot":"button","data-variant":t,"data-size":r,className:(0,i.cn)(l({variant:t,size:r,className:e})),...n})}},5411:(e,t,r)=>{"use strict";r.d(t,{Eq:()=>o,ZK:()=>d,er:()=>s.er,j8:()=>i,z5:()=>l,z_:()=>c,zi:()=>s.zi});var s=r(611);function a(e){return`${e.kind}:${e.id}`}function n(e){return e.trim().toLowerCase()}function i(e){let t=new Set;for(let r of e)for(let e of r.tags??[]){let r=e.trim();r&&t.add(r)}return[...t].sort((e,t)=>e.localeCompare(t))}function l(e){let t=new Map,r=new Map;for(let s of e){if(s.epicId&&!t.has(s.epicId)){let e={kind:"epic",id:s.epicId,title:s.epicTitle};t.set(s.epicId,{...e,key:a(e),label:`Epic ${s.epicId}: ${s.epicTitle}`,chipLabel:s.epicId})}if("story"===s.kind&&!r.has(s.id)){let e={kind:"story",id:s.id,title:s.title};r.set(s.id,{...e,key:a(e),label:`Story ${s.id}: ${s.title}`,chipLabel:s.id})}}return[...[...t.values()].sort((e,t)=>e.id.localeCompare(t.id)),...[...r.values()].sort((e,t)=>e.id.localeCompare(t.id))]}function o(e,t){let r=t.parentKeys??(t.parentKey?[t.parentKey]:[]),a=t.timeframe??s.er;return e.filter(e=>{var i,l;let o;if(i=t.query,!(!(o=n(i))||e.id.toLowerCase().includes(o)||e.title.toLowerCase().includes(o))||!function(e,t,r){if(!e)return!0;let s=r?.total,a=r?.done;if(null!=s&&s>0&&null!=a)return null==s||null==a||!(s>0)||!(a>=s);return"done"!==t.trim().toLowerCase()}(t.hideCompleted,e.status,{done:e.doneWorkItemCount,total:e.workItemCount})||!function(e,t){if(0===e.length)return!0;if(!t||0===t.length)return!1;let r=new Set(t.map(e=>e.toLowerCase()));return e.some(e=>r.has(e.toLowerCase()))}(t.selectedTags,e.tags))return!1;if(r.length>0&&(!e.epicId||(l={id:e.id,kind:e.kind,epicId:e.epicId},!(0===r.length||r.some(e=>{let t=function(e){if(!e)return null;let t=e.indexOf(":");if(t<=0)return null;let r=e.slice(0,t),s=e.slice(t+1);return("epic"===r||"story"===r)&&s?{kind:r,id:s}:null}(e);return!!t&&("epic"===t.kind?l.epicId===t.id:"story"===l.kind&&l.id===t.id)})))))return!1;return!!(0,s.WS)(a,e.completedAt)})}function d(e,t){let r=t.parentKeys??(t.parentKey?[t.parentKey]:[]),a=[...t.selectedTags].sort().join(","),i=[...r].sort().join(","),l=t.timeframe??s.er;return[e,n(t.query),t.hideCompleted?"1":"0",i,a,(0,s.R5)(l)].join("|")}s.er;let c="flex min-h-8 flex-wrap items-center gap-1 rounded border-2 bg-input bg-clip-padding px-2.5 py-1 text-sm shadow-sm transition-colors focus-within:outline-2 focus-within:outline-offset-2 focus-within:outline-primary"},6620:(e,t,r)=>{"use strict";r.d(t,{T:()=>o});var s=r(95155),a=r(38158),n=r(19805),i=r(83786),l=r(91337);function o({label:e,sortKey:t,activeKey:r,direction:d,onSort:c,className:u,align:m="start"}){let x=r===t;return(0,s.jsx)(i.nd,{"aria-sort":x?"asc"===d?"ascending":"descending":"none",className:(0,l.cn)("p-0",u),children:(0,s.jsxs)("button",{type:"button",onClick:()=>c(t),className:(0,l.cn)("inline-flex h-10 w-full items-center gap-1.5 px-2 font-medium whitespace-nowrap","rounded-sm hover:bg-muted/60 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",x?"text-foreground":"text-foreground/80","center"===m&&"justify-center text-center","end"===m&&"justify-end text-right","start"===m&&"justify-start text-left"),children:[(0,s.jsx)("span",{children:e}),x&&"asc"===d?(0,s.jsx)(a.A,{className:"size-3.5 shrink-0 text-foreground","aria-hidden":!0}):x&&"desc"===d?(0,s.jsx)(n.A,{className:"size-3.5 shrink-0 text-foreground","aria-hidden":!0}):null,(0,s.jsx)("span",{className:"sr-only",children:x?"asc"===d?"sorted ascending; activate to sort descending":"sorted descending; activate to clear sort":"activate to sort ascending"})]})})}},11087:(e,t,r)=>{"use strict";function s(e,t){let r=e.trim().toLowerCase();return r?`e:${r}`:`n:${t.trim().toLowerCase()}`}function a(e,t){let r=new Map;for(let t of e){let e=s(t.email,t.name),a=r.get(e);a?(a.created=!0,!a.identity.name&&t.name&&(a.identity.name=t.name),!a.identity.email&&t.email&&(a.identity.email=t.email),a.identity.initials||(a.identity.initials=t.initials)):r.set(e,{identity:{...t},created:!0,resolved:!1})}for(let e of t){let t=s(e.email,e.name),a=r.get(t);a?(a.resolved=!0,!a.identity.name&&e.name&&(a.identity.name=e.name),!a.identity.email&&e.email&&(a.identity.email=e.email),a.identity.initials||(a.identity.initials=e.initials)):r.set(t,{identity:{...e},created:!1,resolved:!0})}let a=[];for(let e of r.values()){let t,r,s=e.identity.name||"Unknown";e.created&&e.resolved?(t="both",r=`Created and developed by ${s}`):e.created?(t="created",r=`Created by ${s}`):(t="resolved",r=`Resolved by ${s}`),a.push({identity:e.identity,role:t,label:r})}return a}r.d(t,{Ox:()=>a,yx:()=>i});let n=["#0f766e","#1d4ed8","#7c3aed","#be185d","#b45309","#047857","#c2410c","#4338ca","#0e7490","#a16207","#9f1239","#166534","#6d28d9","#0369a1","#9a3412","#115e59"];function i(e){let t=function(e){let t=0;for(let r=0;r<e.length;r++)t=31*t+e.charCodeAt(r)>>>0;return t}((e.initials||"").trim().toUpperCase()||(e.email||e.name||"?").toLowerCase())%n.length;return n[t]}},13530:(e,t,r)=>{"use strict";r.d(t,{AppBar:()=>c});var s=r(95155),a=r(9339);let n=(0,a.createServerReference)("4061257288b15175bc020e0ec9c7f40bb72ff89257",a.callServer,void 0,a.findSourceMapURL,"selectActiveProject"),i=(0,a.createServerReference)("00234aed495dfcf35cc075646553fee4b12df48f47",a.callServer,void 0,a.findSourceMapURL,"openAddProject");var l=r(91337);function o({className:e,alt:t="Taskmark",width:r=40,height:a=45}){return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("img",{src:"/tm_light.png",alt:t,width:r,height:a,className:(0,l.cn)("dark:hidden",e)}),(0,s.jsx)("img",{src:"/tm_dark.png",alt:"","aria-hidden":!0,width:r,height:a,className:(0,l.cn)("hidden dark:block",e)})]})}var d=r(4474);function c({projects:e,activeProjectId:t,autoconfig:r=!1}){return(0,s.jsx)("header",{className:"sticky top-0 z-40 border-b-2 border-border bg-card/95 shadow-sm backdrop-blur",children:(0,s.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-wrap items-center gap-3 px-4 pt-3.5 pb-4",children:[(0,s.jsxs)("div",{className:"group flex min-w-0 flex-1 items-center gap-3 transition-[gap] duration-200 group-hover:gap-4",children:[(0,s.jsx)(o,{alt:"",width:40,height:45,className:"mb-0.5 h-10 w-auto shrink-0 origin-center select-none object-contain transition-transform duration-200 group-hover:scale-110"}),(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,s.jsx)("p",{className:"w-fit cursor-default font-head text-2xl leading-none tracking-tight",children:(0,s.jsxs)("span",{className:"relative inline-block transition-transform duration-200 group-hover:-rotate-2",children:["Taskmark",(0,s.jsx)("svg",{"aria-hidden":!0,viewBox:"0 0 120 10",preserveAspectRatio:"none",className:"pointer-events-none absolute -bottom-1.5 -left-1 h-2.5 w-[calc(100%+1rem)] origin-left text-primary opacity-0 transition-opacity duration-200 group-hover:opacity-100",children:(0,s.jsx)("path",{fill:"currentColor",d:"M1 5.2 L119 3.2 L119 8.8 L1 5.9 Z"})})]})}),(0,s.jsx)("p",{className:"truncate text-xs text-muted-foreground transition-transform duration-200 group-hover:translate-y-1",children:"Product memory for agent work"})]})]}),r?null:(0,s.jsxs)("form",{action:n,className:"flex min-w-0 flex-wrap items-center gap-2",children:[(0,s.jsx)("label",{htmlFor:"projectId",className:"sr-only",children:"Active project"}),(0,s.jsx)("select",{id:"projectId",name:"projectId",defaultValue:t,onChange:e=>{e.currentTarget.form?.requestSubmit()},className:"max-w-[20rem] rounded border-2 border-border bg-input px-3 py-1.5 text-sm shadow-sm outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:e.map(t=>(0,s.jsx)("option",{value:t.id,children:function(e,t){let r=t.filter(t=>t.name===e.name);if(r.length<=1)return e.name;let s=r.findIndex(t=>t.id===e.id)+1;return`${e.name} (${s})`}(t,e)},t.id))}),(0,s.jsx)("noscript",{children:(0,s.jsx)(d.$,{type:"submit",size:"sm",variant:"outline",children:"Switch project"})})]}),r?null:(0,s.jsx)("form",{action:i,children:(0,s.jsx)(d.$,{type:"submit",variant:"outline",size:"sm",children:"Add project"})})]})})}},16327:(e,t,r)=>{"use strict";r.d(t,{CP:()=>ey,WorkItemSheetProvider:()=>ev,Dt:()=>ef});var s=r(95155),a=r(12115),n=r(31966),i=r(9005),l=r(25182),o=r(73321);function d(e){if(null==e||!Number.isFinite(e))return"—";let t=Math.max(0,Math.round(e));return 0===t?"0m":c(6e4*t)}function c(e){if(null==e||!Number.isFinite(e))return"—";let t=Math.max(0,Math.round(e));if(0===t)return"0ms";if(t<1e3)return`${t}ms`;if(t<6e4){let e=t/1e3;if(Number.isInteger(e)||t%1e3==0)return`${Math.round(e)}s`;let r=Math.round(100*e)/100;return`${r}s`}let r=Math.floor(t/1e3),s=Math.floor(r/28800),a=r%28800,n=Math.floor(a/3600),i=Math.floor((a%=3600)/60),l=a%60,o=[];return s>0&&o.push(`${s}d`),n>0&&o.push(`${n}h`),i>0&&o.push(`${i}m`),l>0&&0===s&&0===n&&o.push(`${l}s`),o.length>0?o.join(" "):"0ms"}var u=r(83242),m=r(59134),x=r(36048),h=r(4474),p=r(91337);function f({childrenItems:e,emptyLabel:t}){let{openDetail:r}=ef();return 0===e.length?(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:t}):(0,s.jsx)("ul",{className:"flex w-full flex-col gap-2",children:e.map(e=>{let t="story"===e.type?"story":"item";return(0,s.jsx)("li",{className:"w-full",children:(0,s.jsxs)(h.$,{type:"button",variant:"outline",className:(0,p.cn)("h-auto w-full flex-col items-stretch gap-1.5 px-3 py-2.5 text-left font-normal whitespace-normal"),onClick:()=>r({kind:t,id:e.id,title:e.title,filePath:e.filePath,itemType:"task"===e.type||"bug"===e.type?e.type:void 0}),children:[(0,s.jsx)("span",{className:"w-full text-sm font-medium leading-snug",children:e.title}),(0,s.jsxs)("span",{className:"flex w-full flex-wrap items-center gap-1.5",children:[(0,s.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:e.id}),(0,s.jsx)(m.wF,{type:e.type}),(0,s.jsx)(m.Wh,{status:e.status}),(0,s.jsx)(m.YJ,{priority:e.priority})]})]})},`${e.type}:${e.id}:${e.filePath}`)})})}var g=r(48426),b=r(32957);let j=(0,p.cn)("tm-md text-sm leading-relaxed text-foreground","[&_p]:my-2","[&_h1]:mt-3 [&_h1]:mb-2 [&_h1]:font-head [&_h1]:text-lg [&_h1]:font-semibold","[&_h2]:mt-3 [&_h2]:mb-2 [&_h2]:font-head [&_h2]:text-base [&_h2]:font-semibold","[&_h3]:mt-2.5 [&_h3]:mb-1.5 [&_h3]:font-head [&_h3]:text-sm [&_h3]:font-semibold","[&_h4]:mt-2 [&_h4]:mb-1 [&_h4]:font-head [&_h4]:text-sm [&_h4]:font-semibold","[&_ul]:my-2 [&_ul]:list-disc [&_ul]:pl-5","[&_ol]:my-2 [&_ol]:list-decimal [&_ol]:pl-5","[&_li]:my-0.5 [&_li]:leading-relaxed","[&_blockquote]:my-2 [&_blockquote]:border-l-2 [&_blockquote]:border-border [&_blockquote]:pl-3 [&_blockquote]:text-muted-foreground","[&_a]:underline [&_a]:underline-offset-2 [&_a]:hover:text-primary","[&_code]:rounded [&_code]:bg-muted [&_code]:px-1 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-[0.85em]","[&_pre]:my-2 [&_pre]:overflow-x-auto [&_pre]:rounded [&_pre]:border-2 [&_pre]:border-border [&_pre]:bg-muted [&_pre]:p-3","[&_pre_code]:bg-transparent [&_pre_code]:p-0","[&_hr]:my-3 [&_hr]:border-border","[&_table]:my-2 [&_table]:w-full [&_table]:border-collapse [&_table]:text-left [&_table]:text-xs","[&_th]:border [&_th]:border-border [&_th]:bg-muted/50 [&_th]:px-2 [&_th]:py-1.5 [&_th]:font-head","[&_td]:border [&_td]:border-border [&_td]:px-2 [&_td]:py-1.5","[&_strong]:font-semibold","[&_em]:italic","[&_del]:text-muted-foreground [&_del]:line-through","[&_img]:my-2 [&_img]:max-w-full [&_img]:rounded");function v({text:e,className:t,inline:r=!1}){let a=e.trim();if(!a)return r?null:(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"None noted."});let n=(0,s.jsx)(g.oz,{remarkPlugins:[b.A],components:r?{p:({children:e})=>(0,s.jsx)("span",{children:e}),h1:({children:e})=>(0,s.jsx)("span",{className:"font-semibold",children:e}),h2:({children:e})=>(0,s.jsx)("span",{className:"font-semibold",children:e}),h3:({children:e})=>(0,s.jsx)("span",{className:"font-semibold",children:e}),ul:({children:e})=>(0,s.jsx)("span",{children:e}),ol:({children:e})=>(0,s.jsx)("span",{children:e}),li:({children:e})=>(0,s.jsxs)("span",{children:[e," "]})}:void 0,children:a});return r?(0,s.jsx)("span",{className:(0,p.cn)("text-sm leading-relaxed text-foreground",t),children:n}):(0,s.jsx)("div",{className:(0,p.cn)(j,t),children:n})}var y=r(38291),w=r(61991);function k({itemId:e}){let{openDetailById:t}=ef();return e.trim()?(0,s.jsx)(h.$,{type:"button",variant:"link",className:"h-auto p-0 font-medium text-foreground underline-offset-2 hover:underline",onClick:()=>t(e),children:e}):"—"}function N({detail:e}){var t,r;let a=[{label:"Status",value:(0,s.jsx)(m.Wh,{status:e.status})},{label:"Priority",value:(0,s.jsx)(m.YJ,{priority:e.priority})},{label:"Size",value:"epic"===e.type?"—":e.size||"—"},{label:"Points",value:null==e.points?"—":String(e.points)},{label:"Est",value:d(e.estimateMinutes)},{label:"Actual",value:(t=e.actualMs,r=e.actualMinutes,null!=t&&Number.isFinite(t)?c(t):d(r))},{label:"Parent",value:e.parent?(0,s.jsx)(k,{itemId:e.parent}):"—"},{label:"Epic",value:e.epic?(0,s.jsx)(k,{itemId:e.epic}):"—"},{label:"Owner",value:e.owner||"—"},{label:"Created",value:(0,u.sC)(e.created)},{label:"Updated",value:(0,u.sC)(e.updated)},{label:"Started",value:(0,u.sC)(e.startedAt)},{label:"Completed",value:(0,u.sC)(e.completedAt)}];return(0,s.jsxs)("dl",{className:"grid w-full grid-cols-2 gap-x-4 gap-y-2 text-sm sm:grid-cols-3 lg:grid-cols-4",children:[a.map(e=>(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("dt",{className:"text-xs text-muted-foreground",children:e.label}),(0,s.jsx)("dd",{className:"mt-0.5 font-medium break-words",children:e.value})]},e.label)),e.tags.length>0?(0,s.jsxs)("div",{className:"col-span-full",children:[(0,s.jsx)("dt",{className:"text-xs text-muted-foreground",children:"Tags"}),(0,s.jsx)("dd",{className:"mt-1 flex flex-wrap gap-1",children:e.tags.map(e=>(0,s.jsx)(y.E,{variant:"secondary",children:e},e))})]}):null,(0,s.jsx)("div",{className:"col-span-full mt-1",children:(0,s.jsx)(x.n,{reporters:e.reporters,resolvers:e.resolvers,empty:null})})]})}function C({title:e,children:t}){return(0,s.jsxs)("section",{className:"flex w-full min-w-0 flex-col gap-2",children:[(0,s.jsx)("h3",{className:"font-head text-sm font-semibold tracking-tight",children:e}),(0,s.jsx)("div",{className:"w-full min-w-0",children:t})]})}function z({text:e}){return(0,s.jsx)(v,{text:e})}function _({items:e,raw:t}){return 0===e.length?t.trim()?(0,s.jsx)(z,{text:t}):(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"None noted."}):(0,s.jsx)("ul",{className:"flex flex-col gap-1.5 text-sm",children:e.map((e,t)=>(0,s.jsxs)("li",{className:"flex gap-2",children:[(0,s.jsx)("span",{"aria-hidden":!0,className:e.checked?"mt-0.5 size-4 shrink-0 rounded border-2 border-black bg-[var(--chart-4)]":"mt-0.5 size-4 shrink-0 rounded border-2 border-black bg-card"}),(0,s.jsx)("span",{className:e.checked?"min-w-0 flex-1 text-muted-foreground line-through":"min-w-0 flex-1",children:(0,s.jsx)(v,{text:e.text,inline:!0})})]},`${t}:${e.text}`))})}function $({rows:e}){return 0===e.length?(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"No commits logged."}):(0,s.jsx)("div",{className:"w-full overflow-x-auto rounded border-2 border-border",children:(0,s.jsxs)("table",{className:"w-full text-left text-xs",children:[(0,s.jsx)("thead",{className:"bg-muted/50 font-head",children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{className:"px-2 py-1.5",children:"SHA"}),(0,s.jsx)("th",{className:"px-2 py-1.5",children:"Repo"}),(0,s.jsx)("th",{className:"px-2 py-1.5",children:"Date"}),(0,s.jsx)("th",{className:"px-2 py-1.5",children:"Author"}),(0,s.jsx)("th",{className:"px-2 py-1.5",children:"Message"})]})}),(0,s.jsx)("tbody",{children:e.map((e,t)=>(0,s.jsxs)("tr",{className:"border-t border-border",children:[(0,s.jsx)("td",{className:"px-2 py-1.5 font-mono",children:e.sha||"—"}),(0,s.jsx)("td",{className:"px-2 py-1.5",children:e.repo||"—"}),(0,s.jsx)("td",{className:"px-2 py-1.5 whitespace-nowrap",children:(0,u.sC)(e.date)}),(0,s.jsx)("td",{className:"px-2 py-1.5",children:e.author||"—"}),(0,s.jsx)("td",{className:"px-2 py-1.5",children:e.message||"—"})]},`${e.sha}:${t}`))})]})})}function S({rows:e}){return 0===e.length?(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"No work sessions logged."}):(0,s.jsx)("div",{className:"w-full overflow-x-auto rounded border-2 border-border",children:(0,s.jsxs)("table",{className:"w-full text-left text-xs",children:[(0,s.jsx)("thead",{className:"bg-muted/50 font-head",children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{className:"px-2 py-1.5",children:"#"}),(0,s.jsx)("th",{className:"px-2 py-1.5",children:"Actor"}),(0,s.jsx)("th",{className:"px-2 py-1.5",children:"Started"}),(0,s.jsx)("th",{className:"px-2 py-1.5",children:"Ended"}),(0,s.jsx)("th",{className:"px-2 py-1.5",children:"Summary"})]})}),(0,s.jsx)("tbody",{children:e.map((e,t)=>(0,s.jsxs)("tr",{className:"border-t border-border",children:[(0,s.jsx)("td",{className:"px-2 py-1.5 font-mono",children:e.session||"—"}),(0,s.jsx)("td",{className:"px-2 py-1.5",children:e.actor||"—"}),(0,s.jsx)("td",{className:"px-2 py-1.5 whitespace-nowrap",children:(0,u.sC)(e.started)}),(0,s.jsx)("td",{className:"px-2 py-1.5 whitespace-nowrap",children:(0,u.sC)(e.ended)}),(0,s.jsx)("td",{className:"px-2 py-1.5",children:e.summary||"—"})]},`${e.session}:${t}`))})]})})}function P({rows:e}){return 0===e.length?(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"No prompts logged."}):(0,s.jsx)("div",{className:"w-full overflow-x-auto rounded border-2 border-border",children:(0,s.jsxs)("table",{className:"w-full text-left text-xs",children:[(0,s.jsx)("thead",{className:"bg-muted/50 font-head",children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{className:"px-2 py-1.5",children:"#"}),(0,s.jsx)("th",{className:"px-2 py-1.5",children:"When"}),(0,s.jsx)("th",{className:"px-2 py-1.5",children:"Kind"}),(0,s.jsx)("th",{className:"px-2 py-1.5",children:"Author"}),(0,s.jsx)("th",{className:"px-2 py-1.5",children:"Summary"})]})}),(0,s.jsx)("tbody",{children:e.map((e,t)=>(0,s.jsxs)("tr",{className:"border-t border-border",children:[(0,s.jsx)("td",{className:"px-2 py-1.5 font-mono",children:e.index||"—"}),(0,s.jsx)("td",{className:"px-2 py-1.5 whitespace-nowrap",children:(0,u.sC)(e.when)}),(0,s.jsx)("td",{className:"px-2 py-1.5",children:e.kind||"—"}),(0,s.jsx)("td",{className:"px-2 py-1.5",children:e.author||"—"}),(0,s.jsx)("td",{className:"px-2 py-1.5",children:e.summary||"—"})]},`${e.index}:${t}`))})]})})}function A({detail:e}){return(0,s.jsxs)("div",{className:"flex w-full min-w-0 flex-col gap-5",children:[(0,s.jsx)(N,{detail:e}),(0,s.jsx)(w.w,{}),(0,s.jsx)(C,{title:"Goal",children:(0,s.jsx)(z,{text:e.goal})}),(0,s.jsx)(C,{title:"Scope",children:(0,s.jsx)(z,{text:e.scope})}),(0,s.jsx)(C,{title:"Out of scope",children:(0,s.jsx)(z,{text:e.outOfScope})}),(0,s.jsx)(C,{title:"Success metrics",children:(0,s.jsx)(z,{text:e.successMetrics})}),(0,s.jsx)(C,{title:"Stories & tasks",children:(0,s.jsx)(f,{childrenItems:e.children,emptyLabel:"No stories or epic-direct tasks yet."})}),(0,s.jsx)(C,{title:"Commits",children:(0,s.jsx)($,{rows:e.commits})}),(0,s.jsx)(C,{title:"Work log",children:(0,s.jsx)(S,{rows:e.workLog})})]})}function I({detail:e}){return(0,s.jsxs)("div",{className:"flex w-full min-w-0 flex-col gap-5",children:[(0,s.jsx)(N,{detail:e}),(0,s.jsx)(w.w,{}),(0,s.jsx)(C,{title:"User story",children:(0,s.jsx)(z,{text:e.userStory})}),(0,s.jsx)(C,{title:"Acceptance criteria",children:(0,s.jsx)(_,{items:e.acceptanceCriteria,raw:e.acceptanceCriteriaRaw})}),(0,s.jsx)(C,{title:"Tasks",children:(0,s.jsx)(f,{childrenItems:e.children,emptyLabel:"No tasks or bugs under this story yet."})}),(0,s.jsx)(C,{title:"Prompt & feedback",children:(0,s.jsx)(P,{rows:e.promptFeedback})}),(0,s.jsx)(C,{title:"Commits",children:(0,s.jsx)($,{rows:e.commits})}),(0,s.jsx)(C,{title:"Work log",children:(0,s.jsx)(S,{rows:e.workLog})})]})}function M({detail:e}){return(0,s.jsxs)("div",{className:"flex w-full min-w-0 flex-col gap-5",children:[(0,s.jsx)(N,{detail:e}),(0,s.jsx)(w.w,{}),(0,s.jsx)(C,{title:"Description",children:(0,s.jsx)(z,{text:e.description})}),"bug"===e.type?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(C,{title:"Repro steps",children:(0,s.jsx)(z,{text:e.reproSteps})}),(0,s.jsx)(C,{title:"Fix criteria",children:(0,s.jsx)(_,{items:e.acceptanceCriteria,raw:e.fixCriteria||e.acceptanceCriteriaRaw})})]}):(0,s.jsx)(C,{title:"Acceptance criteria",children:(0,s.jsx)(_,{items:e.acceptanceCriteria,raw:e.acceptanceCriteriaRaw})}),(0,s.jsx)(C,{title:"Notes",children:(0,s.jsx)(z,{text:e.notes})}),(0,s.jsx)(C,{title:"Prompt & feedback",children:(0,s.jsx)(P,{rows:e.promptFeedback})}),(0,s.jsx)(C,{title:"Commits",children:(0,s.jsx)($,{rows:e.commits})}),(0,s.jsx)(C,{title:"Work log",children:(0,s.jsx)(S,{rows:e.workLog})})]})}function T({detail:e}){return"epic"===e.type?(0,s.jsx)(A,{detail:e}):"story"===e.type?(0,s.jsx)(I,{detail:e}):(0,s.jsx)(M,{detail:e})}function F({detail:e}){return(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,s.jsx)(m.wF,{type:e.type}),(0,s.jsx)(m.Wh,{status:e.status})]})}var K=r(92571);function W({className:e,...t}){return(0,s.jsx)(K.A,{"data-slot":"spinner",role:"status","aria-label":"Loading",className:(0,p.cn)("size-4 animate-spin",e),...t})}var L=r(40253),B=r(41537),R=r(76721);function O({className:e,...t}){return(0,s.jsx)("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",className:(0,p.cn)(e),...t})}function E({className:e,...t}){return(0,s.jsx)("ol",{"data-slot":"breadcrumb-list",className:(0,p.cn)("flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground",e),...t})}function Z({className:e,...t}){return(0,s.jsx)("li",{"data-slot":"breadcrumb-item",className:(0,p.cn)("inline-flex items-center gap-1",e),...t})}function D({className:e,render:t,...r}){return(0,B.C)({defaultTagName:"a",props:(0,L.v6)({className:(0,p.cn)("font-head transition-colors hover:text-foreground",e)},r),render:t,state:{slot:"breadcrumb-link"}})}function H({className:e,...t}){return(0,s.jsx)("span",{"data-slot":"breadcrumb-page",role:"link","aria-disabled":"true","aria-current":"page",className:(0,p.cn)("font-medium text-foreground",e),...t})}function U({children:e,className:t,...r}){return(0,s.jsx)("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:(0,p.cn)("[&>svg]:size-3.5",t),...r,children:e??(0,s.jsx)(R.A,{})})}var V=r(98408),q=r(32949),G=r(45477),X=r(39504),Q=r(52579),Y=r(11975),J=r(31799);function ee({...e}){return(0,s.jsx)(V.D,{"data-slot":"sheet",...e})}function et({...e}){return(0,s.jsx)(q.Z,{"data-slot":"sheet-portal",...e})}function er({className:e,...t}){return(0,s.jsx)(G.X,{"data-slot":"sheet-overlay",className:(0,p.cn)("fixed inset-0 z-50 bg-foreground/20 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs",e),...t})}function es({className:e,children:t,side:r="right",showCloseButton:a=!0,...n}){return(0,s.jsxs)(et,{children:[(0,s.jsx)(er,{}),(0,s.jsxs)(X.h,{"data-slot":"sheet-content","data-side":r,className:(0,p.cn)("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-md transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t-2 data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r-2 data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l-2 data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b-2 data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",e),...n,children:[t,a&&(0,s.jsxs)(Q.H,{"data-slot":"sheet-close",render:(0,s.jsx)(h.$,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm"}),children:[(0,s.jsx)(i.A,{}),(0,s.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function ea({className:e,...t}){return(0,s.jsx)("div",{"data-slot":"sheet-header",className:(0,p.cn)("flex flex-col gap-0.5 p-4",e),...t})}function en({className:e,...t}){return(0,s.jsx)(Y.L,{"data-slot":"sheet-title",className:(0,p.cn)("font-head text-base font-medium text-foreground",e),...t})}function ei({className:e,...t}){return(0,s.jsx)(J.r,{"data-slot":"sheet-description",className:(0,p.cn)("text-sm text-muted-foreground",e),...t})}var el=r(91459),eo=r(84851),ed=r(57550),ec=r(41463);let eu="1"===ec.env.NEXT_PUBLIC_TASKMARK_STATIC||"1"===ec.env.TASKMARK_STATIC;async function em(e,t){return eu?(0,eo.mx)(e):(await r.e(51).then(r.bind(r,94051))).loadWorkItemDetail(e,t)}async function ex(e,t){return eu?(0,eo.t0)(e):(await r.e(51).then(r.bind(r,94051))).resolveWorkItemById(e,t)}let eh=a.createContext(null),ep="item";function ef(){let e=a.useContext(eh);if(!e)throw Error("useWorkItemSheet must be used within WorkItemSheetProvider");return e}function eg({crumbs:e,onNavigate:t}){return 0===e.length?null:(0,s.jsx)(O,{children:(0,s.jsx)(E,{className:"font-mono text-xs gap-1",children:e.map((r,n)=>{let i=n===e.length-1;return(0,s.jsxs)(a.Fragment,{children:[n>0?(0,s.jsx)(U,{className:"[&>svg]:size-3"}):null,(0,s.jsx)(Z,{children:i?(0,s.jsx)(H,{className:"font-mono text-xs",children:r}):(0,s.jsx)(D,{className:"font-mono text-xs",href:`#${r}`,onClick:e=>{e.preventDefault(),t(r)},children:r})})]},`${r}-${n}`)})})})}function eb({children:e}){let t=(0,o.useRouter)(),r=(0,o.usePathname)(),l=(0,o.useSearchParams)(),d=l.get(ep)?.trim()||null,[c,u]=a.useState(!1),[x,p]=a.useState({status:"idle"}),[f,g]=a.useState([]),b=a.useRef(0),j=a.useRef(null),v=a.useRef(null),y=a.useRef(!1),w=a.useRef(x);w.current=x;let k=a.useRef(c);k.current=c,a.useEffect(()=>{"ready"===x.status&&x.detail.filePath?v.current=x.detail.filePath:("loading"===x.status||"error"===x.status)&&x.ref.filePath?v.current=x.ref.filePath:"idle"===x.status&&(v.current=null)},[x]);let N=a.useCallback((e,s)=>{let a,n;if((l.get(ep)?.trim()||null)===e)return;let i=(a=new URLSearchParams(l.toString()),e?a.set(ep,e):a.delete(ep),(n=a.toString())?`${r}?${n}`:r);"replace"===s?t.replace(i,{scroll:!1}):t.push(i,{scroll:!1})},[r,t,l]),C=a.useCallback((e,t)=>{var r;if("push"!==t||y.current||!k.current)return;let s="idle"===(r=w.current).status?null:"ready"===r.status?{id:r.detail.id,title:r.detail.title}:{id:r.ref.id,title:r.ref.title||r.ref.id};s&&s.id!==e&&g(e=>[...e,s])},[]),z=a.useCallback((e,t)=>{j.current=e.id,e.filePath&&(v.current=e.filePath),u(!0),p({status:"loading",ref:e}),em(e.filePath,e.kind).then(r=>{t===b.current&&(r.ok?(v.current=r.detail.filePath||e.filePath,p({status:"ready",ref:e,detail:r.detail})):p({status:"error",ref:e,message:r.message,filePath:r.filePath}))})},[]),_=a.useCallback((e,t)=>{let r=t?.history??"push";C(e.id,r),z(e,++b.current),y.current||N(e.id,r)},[z,C,N]),$=a.useCallback((e,t)=>{let r=e.trim();if(!r)return;let s=t?.history??"push",a=t?.withinFilePath?.trim()||v.current||null;C(r,s);let n={kind:r.startsWith("E-")?"epic":r.startsWith("S-")?"story":"item",id:r,title:r,filePath:"",itemType:r.startsWith("B-")?"bug":r.startsWith("T-")?"task":void 0},i=++b.current;j.current=r,u(!0),p({status:"loading",ref:n}),y.current||N(r,s),ex(r,{withinFilePath:a}).then(e=>{if(i===b.current){if(!e.ok)return void p({status:"error",ref:n,message:e.message,filePath:""});z(e.ref,i)}})},[z,C,N]),S=a.useCallback(()=>{b.current+=1,j.current=null,v.current=null,u(!1),p({status:"idle"}),g([])},[]);a.useEffect(()=>{if(!d){null!=j.current&&S();return}j.current!==d&&(g(e=>e.length>0&&e[e.length-1]?.id===d?e.slice(0,-1):e),y.current=!0,$(d,{history:"replace"}),queueMicrotask(()=>{y.current=!1}))},[d,$,S]);let P=e=>{e?u(!0):(S(),N(null,"replace"))},A="loading"===x.status||"ready"===x.status||"error"===x.status?x.ref.id:"Work item",I="ready"===x.status?x.detail.title:"loading"===x.status||"error"===x.status?x.ref.title:"Work item detail",M="ready"===x.status?function(e){let t=e.id.trim();if(!t)return[];if("epic"===e.type)return[t];let r=(e.epic||"").trim(),s=(e.parent||"").trim(),a=[];return r?a.push(r):s.startsWith("E-")&&a.push(s),"story"===e.type||s&&s!==r&&s!==t&&!a.includes(s)&&a.push(s),a.includes(t)||a.push(t),a}(x.detail):"loading"===x.status||"error"===x.status?[x.ref.id]:[],K="ready"===x.status?function(e){if("epic"===e.type)return null;let t=e.id.trim(),r=(e.parent||"").trim();if(r&&r!==t)return r;let s=(e.epic||"").trim();return s&&s!==t?s:null}(x.detail):M.length>1?M[M.length-2]:null,[L,B]=a.useState(null);a.useEffect(()=>{if(!K)return void B(null);let e=!1;return B(null),ex(K,{withinFilePath:v.current}).then(t=>{e||(t.ok?B(t.ref.title||null):B(null))}),()=>{e=!0}},[K]);let R=L&&L!==K?`${K} \xb7 ${L}`:K?`Go to ${K}`:"";return(0,s.jsxs)(eh.Provider,{value:{openDetail:_,openDetailById:$},children:[e,(0,s.jsx)(ee,{open:c,onOpenChange:P,children:(0,s.jsxs)(es,{side:"right",className:"w-full gap-0 overflow-hidden p-0 data-[side=right]:w-full data-[side=right]:sm:max-w-4xl data-[side=right]:lg:max-w-5xl data-[side=right]:xl:max-w-6xl",showCloseButton:!1,children:[(0,s.jsx)("div",{className:"flex shrink-0 items-center justify-between px-3 pt-3",children:(0,s.jsxs)(el.Bc,{delay:200,children:[K?(0,s.jsxs)(el.m_,{children:[(0,s.jsx)(el.k$,{render:(0,s.jsx)(h.$,{type:"button",variant:"ghost",size:"icon-sm","aria-label":L?`Go to ${K}: ${L}`:`Go to parent ${K}`,onClick:()=>$(K)}),children:(0,s.jsx)(n.A,{})}),(0,s.jsx)(el.ZI,{side:"bottom",children:R})]}):(0,s.jsx)(h.$,{type:"button",variant:"ghost",size:"icon-sm",className:"invisible pointer-events-none",tabIndex:-1,"aria-hidden":!0,children:(0,s.jsx)(n.A,{})}),(0,s.jsxs)(el.m_,{children:[(0,s.jsx)(el.k$,{render:(0,s.jsx)(h.$,{type:"button",variant:"ghost",size:"icon-sm","aria-label":"Close",onClick:()=>P(!1)}),children:(0,s.jsx)(i.A,{})}),(0,s.jsx)(el.ZI,{side:"bottom",children:"Close"})]})]})}),(0,s.jsxs)(ea,{className:"w-full border-b-2 border-border pt-2",children:[(0,s.jsxs)("div",{className:"flex w-full min-w-0 flex-wrap items-center gap-2",children:[(0,s.jsx)(eg,{crumbs:M,onNavigate:e=>$(e)}),"ready"===x.status?(0,s.jsx)(F,{detail:x.detail}):"loading"===x.status||"error"===x.status?(0,s.jsx)(m.wF,{type:x.ref.itemType??("item"===x.ref.kind?"task":x.ref.kind)}):null]}),(0,s.jsx)(en,{className:"w-full text-left text-lg leading-snug",children:I}),(0,s.jsxs)(ei,{className:"sr-only",children:["Read-only detail view for ",A]})]}),(0,s.jsxs)("div",{className:"flex min-h-0 w-full flex-1 flex-col overflow-y-auto p-4",children:["loading"===x.status?(0,s.jsxs)("div",{role:"status",className:"flex flex-col items-center justify-center gap-3 py-16 text-sm text-muted-foreground",children:[(0,s.jsx)(W,{className:"size-6"}),"Loading ",x.ref.id,"…"]}):null,"error"===x.status?(0,s.jsxs)("div",{role:"alert",className:"w-full rounded border-2 border-destructive/40 bg-destructive/10 px-3 py-3 text-sm",children:[(0,s.jsxs)("p",{className:"font-medium text-destructive",children:["Could not load ",x.ref.id]}),(0,s.jsx)("p",{className:"mt-1 text-muted-foreground",children:x.message}),x.filePath?(0,s.jsx)("p",{className:"mt-2 break-all font-mono text-xs text-muted-foreground",children:(0,ed._)(x.filePath)}):null]}):null,"ready"===x.status?(0,s.jsx)("div",{className:"w-full min-w-0",children:(0,s.jsx)(T,{detail:x.detail})}):null,"idle"===x.status?(0,s.jsx)("p",{className:"py-12 text-center text-sm text-muted-foreground",children:"Select a work item to view its details."}):null]})]})})]})}let ej={openDetail:()=>{},openDetailById:()=>{}};function ev({children:e}){return(0,s.jsx)(a.Suspense,{fallback:(0,s.jsx)(eh.Provider,{value:ej,children:e}),children:(0,s.jsx)(eb,{children:e})})}function ey({itemRef:e,label:t}){let{openDetail:r}=ef();return(0,s.jsx)(h.$,{type:"button",variant:"ghost",size:"icon-sm",className:"shrink-0","aria-label":t??`View ${e.id}`,onClick:t=>{t.preventDefault(),t.stopPropagation(),r(e)},children:(0,s.jsx)(l.A,{})})}},24581:(e,t,r)=>{"use strict";r.d(t,{ProjectContributorsPanel:()=>o});var s=r(95155),a=r(95885),n=r(91459),i=r(91337),l=r(11087);function o({contributors:e,className:t}){return 0===e.length?(0,s.jsx)("p",{className:(0,i.cn)("text-sm text-muted-foreground",t),children:"No contributors yet."}):(0,s.jsx)(n.Bc,{delay:200,children:(0,s.jsx)("ul",{className:(0,i.cn)("grid grid-cols-1 gap-2 sm:grid-cols-2 md:grid-cols-3",t),"aria-label":"Project contributors",children:e.map(e=>{let t=e.name||"Unknown",r=e.email?`${t} \xb7 ${e.email}`:t,o=(0,l.yx)(e);return(0,s.jsxs)("li",{className:"flex min-w-0 items-center gap-2.5",children:[(0,s.jsxs)(n.m_,{children:[(0,s.jsx)(n.k$,{render:(0,s.jsx)("span",{className:"inline-flex shrink-0 cursor-default"}),"aria-label":r,children:(0,s.jsx)(a.eu,{size:"default",children:(0,s.jsx)(a.q5,{className:(0,i.cn)("bg-transparent font-semibold tracking-wide text-white !text-[7px]"),style:{backgroundColor:o},children:e.initials||"?"})})}),(0,s.jsx)(n.ZI,{side:"top",children:r})]}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("p",{className:"truncate text-sm font-medium leading-tight",children:t}),e.email?(0,s.jsx)("p",{className:"truncate font-mono text-xs text-muted-foreground",children:e.email}):null]})]},`${e.email}|${e.name}`)})})})}},25124:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,Bm:()=>d,nU:()=>o});var s=r(95155),a=r(59134),n=r(91459),i=r(83242);function l({label:e,date:t,children:r,className:a}){let o=`${e} ${(0,i.sC)(t)}`;return(0,s.jsx)(n.Bc,{children:(0,s.jsxs)(n.m_,{children:[(0,s.jsx)(n.k$,{render:(0,s.jsx)("span",{className:a}),title:o,children:r}),(0,s.jsx)(n.ZI,{children:o})]})})}function o({id:e,created:t,children:r}){return(0,s.jsx)(l,{label:"Created",date:t,className:"font-mono text-xs",children:r??e})}function d({status:e,solvedAt:t}){let r=(0,s.jsx)(a.Wh,{status:e});return"done"!==e?r:(0,s.jsx)(l,{label:"Solved",date:t,children:r})}function c({size:e,points:t}){let r=e?.trim()?e:"—",a=null==t?"—":String(t),i=`Points ${a}`;return(0,s.jsx)(n.Bc,{children:(0,s.jsxs)(n.m_,{children:[(0,s.jsx)(n.k$,{render:(0,s.jsx)("span",{className:"cursor-default"}),title:i,children:r}),(0,s.jsx)(n.ZI,{children:i})]})})}},29326:(e,t,r)=>{"use strict";r.d(t,{TaskList:()=>y});var s=r(95155),a=r(12115),n=r(83786),i=r(79984),l=r(59134),o=r(25124),d=r(77480),c=r(45619),u=r(6620),m=r(54405),x=r(16327),h=r(36048),p=r(63520),f=r(75438),g=r(55940),b=r(57550),j=r(5411),v=r(63082);function y({list:e,countableCompletions:t=[],initialHideCompleted:r=!1}){let{project:w,storyId:k,storyTitle:N,items:C,errors:z}=e,_=N?`${k}: ${N}`:k,[$,S]=(0,a.useState)(""),[P,A]=(0,f.M)("tasks",r),[I,M]=(0,a.useState)(j.er),{sort:T,onSort:F}=(0,g.G)(),K=(0,a.useMemo)(()=>C.map(e=>e.completedAt),[C]),W=(0,a.useMemo)(()=>(0,j.Eq)(C,{query:$,hideCompleted:P,selectedTags:[],timeframe:I}),[C,$,P,I]),L=(0,a.useMemo)(()=>(0,v.Fp)(W,T),[W,T]),{pageRows:B,page:R,pageSize:O,totalCount:E,totalPages:Z,setPage:D,setPageSize:H}=(0,p.K)(L,[(0,j.ZK)(k,{query:$,hideCompleted:P,parentKey:null,selectedTags:[],timeframe:I}),(0,v.Zo)(T)].join("|")),U=C.length>0,V=!!$.trim()||P||(0,j.zi)(I);return(0,s.jsxs)(i.Zp,{children:[(0,s.jsxs)(i.aR,{children:[(0,s.jsx)(i.ZB,{className:"font-head text-xl",children:"Sub Tasks"}),(0,s.jsxs)(i.BT,{children:[(0,s.jsx)("span",{className:"font-medium text-foreground",children:_}),(0,s.jsx)("span",{className:"mt-1 block font-mono text-xs",children:w.name})]}),U?(0,s.jsx)(i.X9,{children:(0,s.jsx)(m.r,{id:`task-timeframe-${k}`,value:I,onChange:M,completedAts:K,countableCompletions:t})}):null]}),(0,s.jsxs)(i.Wu,{className:"flex flex-col gap-4",children:[z.length>0?(0,s.jsxs)("div",{role:"status",className:"rounded border-2 border-destructive/40 bg-destructive/10 px-3 py-2 text-sm",children:[(0,s.jsxs)("p",{className:"font-medium text-destructive",children:[z.length," issue",1===z.length?"":"s"," loading items"]}),(0,s.jsx)("ul",{className:"mt-2 flex flex-col gap-1 font-mono text-xs text-muted-foreground",children:z.map(e=>(0,s.jsxs)("li",{children:[(0,b._)(e.filePath),": ",e.message]},`${e.filePath}:${e.message}`))})]}):null,U?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(d.n,{searchId:`task-search-${k}`,query:$,onQueryChange:S,hideCompleted:P,onHideCompletedChange:A}),0===W.length?(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:V?"No sub tasks match the current search or filters.":"No sub tasks under this story yet."}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.XI,{children:[(0,s.jsx)(n.A0,{children:(0,s.jsxs)(n.Hj,{children:[(0,s.jsx)(n.nd,{className:"w-10"}),(0,s.jsx)(u.T,{label:"ID",sortKey:"id",activeKey:T?.key??null,direction:T?.direction??null,onSort:F}),(0,s.jsx)(u.T,{label:"Type",sortKey:"type",activeKey:T?.key??null,direction:T?.direction??null,onSort:F}),(0,s.jsx)(u.T,{label:"Title",sortKey:"title",activeKey:T?.key??null,direction:T?.direction??null,onSort:F}),(0,s.jsx)(u.T,{label:"Size",sortKey:"size",activeKey:T?.key??null,direction:T?.direction??null,onSort:F}),(0,s.jsx)(u.T,{label:"Points",sortKey:"points",activeKey:T?.key??null,direction:T?.direction??null,onSort:F}),(0,s.jsx)(u.T,{label:"People",sortKey:"people",activeKey:T?.key??null,direction:T?.direction??null,onSort:F,className:"w-16 text-center"}),(0,s.jsx)(u.T,{label:"Status",sortKey:"status",activeKey:T?.key??null,direction:T?.direction??null,onSort:F,align:"center"})]})}),(0,s.jsx)(n.BF,{children:B.map(e=>{var t;return(0,s.jsxs)(n.Hj,{children:[(0,s.jsx)(n.nA,{className:"w-10 pr-0",children:(0,s.jsx)(x.CP,{itemRef:{kind:"item",id:e.id,title:e.title,filePath:e.filePath,itemType:e.type}})}),(0,s.jsx)(n.nA,{className:"font-mono text-xs",children:(0,s.jsx)(o.nU,{id:e.id,created:e.created})}),(0,s.jsx)(n.nA,{children:(0,s.jsx)(l.wF,{type:e.type})}),(0,s.jsx)(n.nA,{className:"max-w-[18rem] whitespace-normal font-medium",children:e.title}),(0,s.jsx)(n.nA,{children:e.size}),(0,s.jsx)(n.nA,{children:null===(t=e.points)?"—":String(t)}),(0,s.jsx)(n.nA,{className:"text-center",children:(0,s.jsx)("div",{className:"flex justify-center",children:(0,s.jsx)(h.O,{reporters:e.reporters,resolvers:e.resolvers})})}),(0,s.jsx)(n.nA,{className:"text-center",children:(0,s.jsx)("div",{className:"inline-flex w-full justify-center",children:(0,s.jsx)(o.Bm,{status:e.status,solvedAt:e.completedAt})})})]},`${w.id}:${e.id}:${e.filePath}`)})})]}),(0,s.jsx)(c.r,{page:R,totalPages:Z,totalCount:E,pageSize:O,onPageChange:D,onPageSizeChange:H})]})]}):(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"No sub tasks under this story yet."})]})]})}},36048:(e,t,r)=>{"use strict";r.d(t,{O:()=>d,n:()=>c});var s=r(95155),a=r(95885),n=r(91459),i=r(91337),l=r(11087);function o({identity:e,label:t,className:r,size:d="sm"}){let c=(0,l.yx)(e);return(0,s.jsxs)(n.m_,{children:[(0,s.jsx)(n.k$,{render:(0,s.jsx)("span",{className:"inline-flex cursor-default"}),"aria-label":t,children:(0,s.jsx)(a.eu,{size:d,className:r,children:(0,s.jsx)(a.q5,{className:(0,i.cn)("bg-transparent font-semibold tracking-wide text-white !text-[7px]"),style:{backgroundColor:c},children:e.initials||"?"})})}),(0,s.jsx)(n.ZI,{side:"top",children:t})]})}function d({reporters:e,resolvers:t,className:r,empty:c=null}){let u=(0,l.Ox)(e,t);return 0===u.length?(0,s.jsx)(s.Fragment,{children:c}):(0,s.jsx)(n.Bc,{delay:200,children:(0,s.jsx)(a.Z7,{className:(0,i.cn)("justify-start",r),role:"group","aria-label":"Work item contributors",children:u.map(e=>(0,s.jsx)(o,{identity:e.identity,label:e.label},`${e.identity.email}|${e.identity.name}|${e.role}`))})})}function c({reporters:e,resolvers:t,className:r,empty:a="—"}){let d=(0,l.Ox)(e,t);if(0===d.length)return(0,s.jsx)(s.Fragment,{children:a});let u=[{role:"both",heading:"Created and developed by",people:d.filter(e=>"both"===e.role)},{role:"created",heading:"Created by",people:d.filter(e=>"created"===e.role)},{role:"resolved",heading:"Resolved by",people:d.filter(e=>"resolved"===e.role)}].filter(e=>e.people.length>0);return(0,s.jsx)(n.Bc,{delay:200,children:(0,s.jsx)("div",{className:(0,i.cn)("flex flex-col gap-3",r),"aria-label":"Work item contributors",children:u.map(e=>(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)("p",{className:"text-xs font-medium text-muted-foreground",children:e.heading}),(0,s.jsx)("ul",{className:"flex flex-col gap-2",children:e.people.map(e=>{let t=e.identity.name||"Unknown",r=e.identity.email;return(0,s.jsxs)("li",{className:"flex min-w-0 items-center gap-2.5",children:[(0,s.jsx)(o,{identity:e.identity,label:e.label,size:"default"}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("p",{className:"truncate text-sm font-medium leading-tight",children:t}),r?(0,s.jsx)("p",{className:"truncate font-mono text-xs font-normal text-muted-foreground",children:r}):null]})]},`${e.identity.email}|${e.identity.name}|${e.role}`)})})]},e.role))})})}},38291:(e,t,r)=>{"use strict";r.d(t,{E:()=>o});var s=r(40253),a=r(41537),n=r(18460),i=r(91337);let l=(0,n.F)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded border-2 px-2 py-0.5 text-xs font-head font-medium whitespace-nowrap shadow-sm transition-all focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive text-destructive-foreground [a]:hover:bg-destructive/90",outline:"bg-transparent text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"border-transparent bg-transparent shadow-none hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"border-transparent bg-transparent shadow-none text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});function o({className:e,variant:t="default",render:r,...n}){return(0,a.C)({defaultTagName:"span",props:(0,s.v6)({className:(0,i.cn)(l({variant:t}),e)},n),render:r,state:{slot:"badge",variant:t}})}},38636:(e,t,r)=>{Promise.resolve().then(r.bind(r,13530)),Promise.resolve().then(r.bind(r,82050)),Promise.resolve().then(r.bind(r,67095)),Promise.resolve().then(r.bind(r,64791)),Promise.resolve().then(r.bind(r,24581)),Promise.resolve().then(r.bind(r,49676)),Promise.resolve().then(r.bind(r,29326)),Promise.resolve().then(r.bind(r,16327)),Promise.resolve().then(r.bind(r,89411)),Promise.resolve().then(r.bind(r,71265)),Promise.resolve().then(r.t.bind(r,98500,23))},45619:(e,t,r)=>{"use strict";r.d(t,{r:()=>m});var s=r(95155),a=r(77397),n=r(78780),i=r(76721),l=r(37095),o=r(4474),d=r(79792),c=r(72557),u=r(91337);function m({page:e,totalPages:t,totalCount:r,pageSize:x,onPageChange:h,onPageSizeChange:p,className:f}){if(0===r)return null;let g=Math.max(t,1),b=e<=1,j=e>=g,v=Math.min(e*x,r);return(0,s.jsxs)("div",{className:(0,u.cn)("flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",f),children:[(0,s.jsxs)("p",{className:"text-xs text-muted-foreground tabular-nums",children:[(e-1)*x+1,"–",v," of ",r,(0,s.jsx)("span",{className:"mx-1.5 text-border",children:"\xb7"}),"Page ",e," of ",g]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)(d.J,{htmlFor:"list-page-size",className:"text-xs text-muted-foreground",children:"Rows"}),(0,s.jsx)("select",{id:"list-page-size",className:"h-8 rounded border-2 border-border bg-input px-2 text-sm shadow-sm outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",value:x,onChange:e=>p(Number(e.target.value)),children:c.xp.map(e=>(0,s.jsx)("option",{value:e,children:e},e))})]}),(0,s.jsxs)("nav",{"aria-label":"Pagination",className:"flex items-center gap-0.5",children:[(0,s.jsx)(o.$,{type:"button",variant:"outline",size:"icon-sm","aria-label":"First page",disabled:b,onClick:()=>h(1),children:(0,s.jsx)(a.A,{})}),(0,s.jsx)(o.$,{type:"button",variant:"outline",size:"icon-sm","aria-label":"Previous page",disabled:b,onClick:()=>h(e-1),children:(0,s.jsx)(n.A,{})}),(0,s.jsx)(o.$,{type:"button",variant:"outline",size:"icon-sm","aria-label":"Next page",disabled:j,onClick:()=>h(e+1),children:(0,s.jsx)(i.A,{})}),(0,s.jsx)(o.$,{type:"button",variant:"outline",size:"icon-sm","aria-label":"Last page",disabled:j,onClick:()=>h(g),children:(0,s.jsx)(l.A,{})})]})]})]})}},49676:(e,t,r)=>{"use strict";r.d(t,{StaticBoardApp:()=>_});var s=r(95155),a=r(12115),n=r(98500),i=r.n(n),l=r(73321),o=r(13530),d=r(82050),c=r(67095),u=r(64791),m=r(19707),x=r(67998),h=r(52427),p=r(93954),f=r(57465),g=r(91337);function b({title:e,value:t,subtitle:r,icon:a,accentClassName:n,className:i}){return(0,s.jsxs)("div",{className:(0,g.cn)("flex min-h-[7.5rem] flex-col justify-between gap-3 border-2 border-black bg-white p-4 shadow-none",i),children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-neutral-800",children:e}),(0,s.jsx)("div",{className:(0,g.cn)("flex size-9 shrink-0 items-center justify-center border-2 border-black text-black shadow-[3px_3px_0_0_#000]",n),"aria-hidden":!0,children:a})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)("p",{className:"font-head text-3xl font-bold leading-none tracking-tight text-black tabular-nums sm:text-4xl",children:t}),r?(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:r}):null]})]})}var j=r(24581);function v({metrics:e}){let t=function(e){if(null==e||!Number.isFinite(e))return"—";let t=Math.round(10*e)/10;return Number.isInteger(t)?String(t):t.toFixed(1)}(e.currentSpeedPtsPerWeek);return(0,s.jsxs)("section",{className:"flex flex-col gap-4","aria-label":"Project status metrics",children:[(0,s.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-4",children:[(0,s.jsx)(b,{title:"Total work items",value:e.totalWorkItems,subtitle:"Stories, bugs, and tasks",accentClassName:"bg-violet-400",icon:(0,s.jsx)(m.A,{className:"size-4",strokeWidth:2.5})}),(0,s.jsx)(b,{title:"Complete work items",value:e.completeWorkItems,subtitle:"Status done",accentClassName:"bg-pink-400",icon:(0,s.jsx)(x.A,{className:"size-4",strokeWidth:2.5})}),(0,s.jsx)(b,{title:"Current week",value:e.currentWeekPointsDone,subtitle:e.currentWeekPointsDone>0?"pts done this ISO week":"No completed points this week",accentClassName:"bg-emerald-400",icon:(0,s.jsx)(h.A,{className:"size-4",strokeWidth:2.5})}),(0,s.jsx)(b,{title:"Current speed",value:t,subtitle:null==e.currentSpeedPtsPerWeek?"No completed tasks yet":`pts/week \xb7 ${e.speedWeekCount} active weeks (90d)`,accentClassName:"bg-sky-400",icon:(0,s.jsx)(p.A,{className:"size-4",strokeWidth:2.5})})]}),(0,s.jsxs)("div",{className:"border-2 border-black bg-white p-4",children:[(0,s.jsxs)("div",{className:"mb-3 flex items-center gap-2",children:[(0,s.jsx)("div",{className:"flex size-8 items-center justify-center border-2 border-black bg-amber-300 text-black shadow-[3px_3px_0_0_#000]","aria-hidden":!0,children:(0,s.jsx)(f.A,{className:"size-4",strokeWidth:2.5})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:"text-sm font-medium text-neutral-800",children:"Contributors"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"People who reported or resolved work on this board"})]})]}),(0,s.jsx)(j.ProjectContributorsPanel,{contributors:e.contributors})]})]})}var y=r(29326),w=r(89411),k=r(16327),N=r(56471),C=r(84851),z=r(97077);function _({snapshot:e}){a.useMemo(()=>((0,C.Yn)(e),null),[e]);let t=(0,l.useSearchParams)(),r=(0,N.CJ)(t.get("view")??void 0),n="overall"===r&&t.get("epic")?.trim()||null,m="overall"===r&&n&&t.get("story")?.trim()||null,x=t.get("item")?.trim()||null,h=e.project,p=e.epics,f=p.epics.length,g=p.errors.length,b=e.hideCompletedDefaults,j=e.countableCompletions,$=e.statusMetrics,S=e.workItemsView,P=n?p.epics.find(e=>e.id===n)??null:null,A=null!=n?e.workItemsByEpic[n]??null:null,I=A&&m?A.rows.find(e=>"story"===e.kind&&e.id===m)??null:null,M=n&&I?e.itemsByStory[(0,z.P)(n,I.id)]??null:null;return(0,s.jsx)(k.WorkItemSheetProvider,{children:(0,s.jsxs)("div",{className:"min-h-svh bg-[linear-gradient(180deg,_#fff_0%,_#f7f4ff_100%)]",children:[(0,s.jsx)(o.AppBar,{projects:e.projects,activeProjectId:h.id,autoconfig:!0}),(0,s.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-6 px-4 py-8",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"font-head text-3xl tracking-tight",children:"overall"===r?"Epics":N.pN[r]}),(0,s.jsxs)("p",{className:"mt-1 text-sm text-muted-foreground",children:[h.name,"overall"===r?` \xb7 ${f} epic${1===f?"":"s"}`:"","overall"===r&&g>0?` \xb7 ${g} parse issue${1===g?"":"s"}`:"","workitems"===r?` \xb7 ${S.rows.length} item${1===S.rows.length?"":"s"}`:"","overall"===r&&P?` \xb7 selected ${P.id}`:"overall"===r&&n?` \xb7 epic ${n} not in list`:"overall"===r?" \xb7 select an epic to view work items":"","overall"===r&&I?` \xb7 story ${I.id}`:"overall"===r&&m?` \xb7 story ${m} not in list`:""]})]}),(0,s.jsx)(c.ListViewSwitcher,{activeView:r,selectedEpicId:n,selectedStoryId:I?.id??null})]}),(0,s.jsx)(v,{metrics:$}),"overall"===r?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(d.EpicList,{lists:[p],selectedEpicId:n,countableCompletions:j,initialHideCompleted:b.epics}),A?(0,s.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,s.jsxs)("div",{className:"flex items-baseline justify-between gap-3",children:[(0,s.jsxs)("h2",{className:"font-head text-2xl tracking-tight",children:["Work items for"," ",A.epicTitle??A.epicId]}),(0,s.jsx)(i(),{href:(0,N.cu)({view:"overall",item:x}),className:"text-sm text-muted-foreground underline-offset-2 hover:underline",children:"Clear selection"})]}),(0,s.jsx)(u.OverallWorkItemsList,{list:A,selectedStoryId:I?.id??null,countableCompletions:j,initialHideCompleted:b.overallWorkItems})]}):null,M&&I?(0,s.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,s.jsxs)("div",{className:"flex items-baseline justify-between gap-3",children:[(0,s.jsxs)("h2",{className:"font-head text-2xl tracking-tight",children:["Sub Tasks for ",M.storyTitle??M.storyId]}),(0,s.jsx)(i(),{href:(0,N.cu)({view:"overall",epic:M.epicId,item:x}),className:"text-sm text-muted-foreground underline-offset-2 hover:underline",children:"Clear story"})]}),(0,s.jsx)(y.TaskList,{list:M,countableCompletions:j,initialHideCompleted:b.tasks})]}):null]}):null,"workitems"===r?(0,s.jsx)(w.WorkItemsList,{list:S,countableCompletions:j,initialHideCompleted:b.workItems}):null]})]})})}},50974:(e,t,r)=>{"use strict";r.d(t,{P:()=>p});var s=r(95155),a=r(45491),n=r(44689),i=r(49445),l=r(2386),o=r(8241),d=r(91337);function c({className:e,children:t,value:r,...n}){return(0,s.jsxs)(a.w,{value:r,"data-slot":"progress",className:(0,d.cn)("flex flex-wrap gap-3",e),...n,children:[t,(0,s.jsx)(u,{children:(0,s.jsx)(m,{})})]})}function u({className:e,...t}){return(0,s.jsx)(n.X,{className:(0,d.cn)("relative flex h-4 w-full items-center overflow-hidden rounded border-2 bg-background",e),"data-slot":"progress-track",...t})}function m({className:e,...t}){return(0,s.jsx)(i.Z,{"data-slot":"progress-indicator",className:(0,d.cn)("h-full bg-primary transition-all",e),...t})}function x({className:e,...t}){return(0,s.jsx)(l.u,{className:(0,d.cn)("text-sm font-medium",e),"data-slot":"progress-label",...t})}function h({className:e,...t}){return(0,s.jsx)(o.D,{className:(0,d.cn)("ml-auto text-sm text-muted-foreground tabular-nums",e),"data-slot":"progress-value",...t})}function p({done:e,total:t,className:r}){let a=Math.max(0,Math.min(e,t)),n=t>0?Math.round(a/t*100):0;return(0,s.jsxs)(c,{value:n,className:(0,d.cn)("w-full min-w-[8rem] max-w-[12rem]",r),title:0===t?"No child work items":`${a} of ${t} done (${n}%)`,children:[(0,s.jsx)(x,{className:"text-xs",children:0===t?"No items":`${a}/${t} done`}),(0,s.jsx)(h,{className:"text-xs"})]})}},54405:(e,t,r)=>{"use strict";r.d(t,{r:()=>es});var s=r(95155),a=r(12115),n=r(84940),i=r(17405),l=r(31166),o=r(32933),d=r(75025),c=r(10751),u=r(44539),m=r(9005),x=r(4474),h=r(78780),p=r(76721),f=r(12363),g=r(29759),b=r(80679),j=r(91337);function v({className:e,classNames:t,showOutsideDays:r=!0,fixedWeeks:a=!0,captionLayout:n="label",buttonVariant:i="ghost",locale:l,formatters:o,components:d,...c}){let u=(0,g.a)();return(0,s.jsx)(b.h,{showOutsideDays:r,fixedWeeks:a,className:(0,j.cn)("group/calendar bg-card p-2 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)] in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:n,locale:l,formatters:{formatMonthDropdown:(e,t)=>t?t.format(e,"LLL"):e.toLocaleString(l?.code,{month:"short"}),...o},classNames:{root:(0,j.cn)("w-fit",u.root),months:(0,j.cn)("relative flex flex-col gap-4 md:flex-row",u.months),month:(0,j.cn)("flex w-full flex-col gap-4",u.month),nav:(0,j.cn)("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",u.nav),button_previous:(0,j.cn)((0,x.r)({variant:i}),"size-(--cell-size) rounded border-2 p-0 shadow-sm select-none aria-disabled:opacity-50",u.button_previous),button_next:(0,j.cn)((0,x.r)({variant:i}),"size-(--cell-size) rounded border-2 p-0 shadow-sm select-none aria-disabled:opacity-50",u.button_next),month_caption:(0,j.cn)("flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)",u.month_caption),dropdowns:(0,j.cn)("flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium",u.dropdowns),dropdown_root:(0,j.cn)("relative rounded-(--cell-radius)",u.dropdown_root),dropdown:(0,j.cn)("absolute inset-0 bg-popover opacity-0",u.dropdown),caption_label:(0,j.cn)("font-head font-medium select-none","label"===n?"text-sm":"flex items-center gap-1 rounded-(--cell-radius) text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground",u.caption_label),month_grid:(0,j.cn)("w-full border-collapse",u.month_grid),weekdays:(0,j.cn)("flex",u.weekdays),weekday:(0,j.cn)("flex w-(--cell-size) items-center justify-center rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none",u.weekday),week:(0,j.cn)("mt-2 flex w-full",u.week),week_number_header:(0,j.cn)("w-(--cell-size) select-none",u.week_number_header),week_number:(0,j.cn)("text-[0.8rem] text-muted-foreground select-none",u.week_number),day:(0,j.cn)("group/day relative size-(--cell-size) rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius)",c.showWeekNumber?"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)":"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)",u.day),range_start:(0,j.cn)("relative isolate z-0 rounded-l-(--cell-radius) bg-primary/30 after:absolute after:inset-y-0 after:right-0 after:w-4 after:bg-primary/30",u.range_start),range_middle:(0,j.cn)("rounded-none",u.range_middle),range_end:(0,j.cn)("relative isolate z-0 rounded-r-(--cell-radius) bg-primary/30 after:absolute after:inset-y-0 after:left-0 after:w-4 after:bg-primary/30",u.range_end),today:(0,j.cn)("rounded-(--cell-radius) border-2 border-primary text-foreground data-[selected=true]:rounded-none",u.today),outside:(0,j.cn)("text-muted-foreground aria-selected:text-muted-foreground",u.outside),disabled:(0,j.cn)("text-muted-foreground opacity-50",u.disabled),hidden:(0,j.cn)("invisible",u.hidden),...t},components:{Root:({className:e,rootRef:t,...r})=>(0,s.jsx)("div",{"data-slot":"calendar",ref:t,className:(0,j.cn)(e),...r}),Chevron:({className:e,orientation:t,...r})=>"left"===t?(0,s.jsx)(h.A,{className:(0,j.cn)("size-4",e),...r}):"right"===t?(0,s.jsx)(p.A,{className:(0,j.cn)("size-4",e),...r}):(0,s.jsx)(f.A,{className:(0,j.cn)("size-4",e),...r}),DayButton:({...e})=>(0,s.jsx)(y,{locale:l,...e}),WeekNumber:({children:e,...t})=>(0,s.jsx)("td",{...t,children:(0,s.jsx)("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:e})}),...d},...c})}function y({className:e,day:t,modifiers:r,locale:n,...i}){let l=(0,g.a)(),o=a.useRef(null);return a.useEffect(()=>{r.focused&&o.current?.focus()},[r.focused]),(0,s.jsx)(x.$,{variant:"ghost",size:"icon","data-day":`${t.date.getFullYear()}-${String(t.date.getMonth()+1).padStart(2,"0")}-${String(t.date.getDate()).padStart(2,"0")}`,"data-selected-single":r.selected&&!r.range_start&&!r.range_end&&!r.range_middle,"data-range-start":r.range_start,"data-range-end":r.range_end,"data-range-middle":r.range_middle,className:(0,j.cn)("relative isolate z-10 flex size-(--cell-size) flex-col items-center justify-center gap-1 border-0 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:outline-2 group-data-[focused=true]/day:outline-offset-2 group-data-[focused=true]/day:outline-primary data-[range-end=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-end=true]:border-2 data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-primary/30 data-[range-middle=true]:text-foreground data-[range-start=true]:rounded-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) data-[range-start=true]:border-2 data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:border-2 data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-foreground [&>span]:text-xs [&>span]:opacity-70",l.day,e),...i})}var w=r(82208),k=r(11241),N=r(99447),C=r(91763),z=r(44118);function _({...e}){return(0,s.jsx)(w.y,{"data-slot":"popover",...e})}function $({...e}){return(0,s.jsx)(k.W,{"data-slot":"popover-trigger",...e})}function S({className:e,align:t="center",alignOffset:r=0,side:a="bottom",sideOffset:n=4,...i}){return(0,s.jsx)(N.i,{children:(0,s.jsx)(C.U,{align:t,alignOffset:r,side:a,sideOffset:n,className:"isolate z-50",children:(0,s.jsx)(z.i,{"data-slot":"popover-content",className:(0,j.cn)("z-50 flex w-72 origin-(--transform-origin) flex-col gap-2.5 rounded border-2 bg-popover p-2.5 text-sm text-popover-foreground shadow-md outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...i})})})}var P=r(92240),A=r(70943),I=r(14654),M=r(11699),T=r(90360),F=r(34181),K=r(76082),W=r(58585),L=r(73255),B=r(19766),R=r(43208),O=r(8651),E=r(40633),Z=r(64577),D=r(94088);let H=P.H;function U({className:e,...t}){return(0,s.jsx)(A.y,{"data-slot":"select-value",className:(0,j.cn)("flex flex-1 text-left",e),...t})}function V({className:e,size:t="default",children:r,...a}){return(0,s.jsxs)(I.b,{"data-slot":"select-trigger","data-size":t,className:(0,j.cn)("flex w-fit items-center justify-between gap-1.5 rounded border-2 bg-input py-2 pr-2 pl-2.5 text-sm whitespace-nowrap shadow-sm transition-colors outline-none select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...a,children:[r,(0,s.jsx)(M.w,{render:(0,s.jsx)(f.A,{className:"pointer-events-none size-4 text-muted-foreground"})})]})}function q({className:e,children:t,side:r="bottom",sideOffset:a=4,align:n="center",alignOffset:i=0,alignItemWithTrigger:l=!0,...o}){return(0,s.jsx)(T.V,{children:(0,s.jsx)(F.l,{side:r,sideOffset:a,align:n,alignOffset:i,alignItemWithTrigger:l,className:"isolate z-50",children:(0,s.jsxs)(K.t,{"data-slot":"select-content","data-align-trigger":l,className:(0,j.cn)("relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded border-2 bg-popover text-popover-foreground shadow-md duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...o,children:[(0,s.jsx)(X,{}),(0,s.jsx)(W.B,{children:t}),(0,s.jsx)(Q,{})]})})})}function G({className:e,children:t,...r}){return(0,s.jsxs)(L.e,{"data-slot":"select-item",className:(0,j.cn)("relative flex w-full cursor-default items-center gap-1.5 rounded-sm py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...r,children:[(0,s.jsx)(B.h,{className:"flex flex-1 shrink-0 gap-2 whitespace-nowrap",children:t}),(0,s.jsx)(R.h,{render:(0,s.jsx)("span",{className:"pointer-events-none absolute right-2 flex size-4 items-center justify-center"}),children:(0,s.jsx)(Z.A,{className:"pointer-events-none"})})]})}function X({className:e,...t}){return(0,s.jsx)(O.w,{"data-slot":"select-scroll-up-button",className:(0,j.cn)("top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",e),...t,children:(0,s.jsx)(D.A,{})})}function Q({className:e,...t}){return(0,s.jsx)(E.d,{"data-slot":"select-scroll-down-button",className:(0,j.cn)("bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",e),...t,children:(0,s.jsx)(f.A,{})})}var Y=r(61991),J=r(83242),ee=r(611);let et=new Intl.NumberFormat("en",{notation:"compact",compactDisplay:"short",maximumFractionDigits:1});function er({points:e,className:t}){return e<=0?(0,s.jsx)("span",{className:(0,j.cn)("tabular-nums text-muted-foreground/40",t),children:"—"}):(0,s.jsx)("span",{className:(0,j.cn)("tabular-nums text-muted-foreground",t),children:et.format(e)})}function es({value:e,onChange:t,completedAts:r,countableCompletions:h,id:p="timeframe-filter",className:f}){let g,b,w=(0,a.useMemo)(()=>h?[...h]:r.map(e=>({completedAt:e,points:0})),[h,r]),k=(0,a.useMemo)(()=>(0,ee.oU)(r),[r]),N=(0,a.useMemo)(()=>(0,ee.D_)(w),[w]),C=(0,a.useMemo)(()=>(0,ee.ad)(w),[w]),z=k.years,P=z.length>1,A=(0,ee._i)(e),I=(0,a.useMemo)(()=>(0,ee.z_)(),[]),M=(0,a.useMemo)(()=>(0,ee.G4)(new Date),[]),T=(0,a.useMemo)(()=>(0,ee.iK)(M.year,M.week,-1),[M.year,M.week]),F=(0,a.useMemo)(()=>(0,ee.iK)(M.year,M.week,1),[M.year,M.week]),K=z.length>0?z[z.length-1]:I.year,[W,L]=(0,a.useState)(K),[B,R]=(0,a.useState)(!1),O=(0,a.useRef)(null),E=z.length>0?z:[I.year],Z="weeks"===e.mode?e.year:W,D=E.length>1;(0,a.useEffect)(()=>{if(!B||W!==M.year)return;let e=requestAnimationFrame(()=>{let e=O.current;e&&(e.scrollIntoView({block:"center",inline:"nearest"}),e.focus({preventScroll:!0}))});return()=>cancelAnimationFrame(e)},[B,W,M.year]);let X=(0,a.useMemo)(()=>({min:1,max:(0,ee.NB)(Z)}),[Z]),Q="weeks"===e.mode?Math.min(e.weekFrom,e.weekTo):I.weekFrom,ea="weeks"===e.mode?Math.max(e.weekFrom,e.weekTo):I.weekTo,en=(0,ee.NB)(W),ei="range"===e.mode?{from:(0,J.kT)(e.from)??void 0,to:(0,J.kT)(e.to)??void 0}:void 0,[el,eo]=(0,a.useState)(),ed="range"===e.mode?ei:el,ec=(0,ee.zi)(e),eu="weeks"===e.mode&&e.weekFrom===e.weekTo;function em(e,r,s){t({mode:"weeks",year:e,weekFrom:Math.min(r,s),weekTo:Math.max(r,s)})}let ex=eu?`ISO week ${(g=Math.min(Q,ea))===(b=Math.max(Q,ea))?`W${g}`:`W${g}–W${b}`} ${Z}`:"Filter by solved ISO week",eh="range"===e.mode&&ei?.from&&ei?.to?`Date range ${(0,d.GP)(ei.from,"MMM d")} – ${(0,d.GP)(ei.to,"MMM d, yyyy")}`:"Filter by solved date range";return(0,s.jsxs)("div",{className:(0,j.cn)("flex flex-nowrap items-center gap-2",f),role:"group","aria-label":"Solved timeframe",children:[A?(0,s.jsxs)(s.Fragment,{children:[D?(0,s.jsxs)(H,{value:String(Z),onValueChange:function(e){if(null==e)return;let t=Number(e);if(!Number.isFinite(t))return;let r=(0,ee.NB)(t),s=Math.min(Q,r),a=Math.min(ea,r);s===a&&a>1?em(t,a-1,a):s===a&&a<r?em(t,a,a+1):em(t,s,a)},children:[(0,s.jsx)(V,{id:`${p}-year`,size:"sm",className:"h-8 min-w-[4.75rem]","aria-label":"ISO week year",children:(0,s.jsx)(U,{})}),(0,s.jsx)(q,{children:E.map(e=>(0,s.jsx)(G,{value:String(e),children:e},e))})]}):null,(0,s.jsxs)("div",{className:"inline-flex h-8 shrink-0 items-center overflow-hidden rounded border-2 border-black bg-input shadow-sm",role:"group","aria-label":"ISO week range",children:[(0,s.jsxs)(H,{value:String(Q),onValueChange:function(e){if(null==e)return;let t=Number(e);if(!Number.isFinite(t))return;let r=Math.max(t,ea);em(Z,t,r)},children:[(0,s.jsx)(V,{id:`${p}-week-from`,size:"sm",className:"h-full min-w-[4.25rem] rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0","aria-label":"From ISO week",children:(0,s.jsx)(U,{children:e=>null!=e?`W${e}`:"From"})}),(0,s.jsx)(q,{children:Array.from({length:X.max},(e,t)=>{let r=t+1;return(0,s.jsxs)(G,{value:String(r),disabled:r>ea,children:["W",r]},r)})})]}),(0,s.jsx)("span",{className:"shrink-0 px-0.5 font-mono text-xs text-muted-foreground","aria-hidden":!0,children:"–"}),(0,s.jsxs)(H,{value:String(ea),onValueChange:function(e){if(null==e)return;let t=Number(e);Number.isFinite(t)&&em(Z,Math.min(Q,t),t)},children:[(0,s.jsx)(V,{id:`${p}-week-to`,size:"sm",className:"h-full min-w-[4.25rem] rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0","aria-label":"To ISO week",children:(0,s.jsx)(U,{children:e=>null!=e?`W${e}`:"To"})}),(0,s.jsx)(q,{children:Array.from({length:X.max},(e,t)=>{let r=t+1;return(0,s.jsxs)(G,{value:String(r),disabled:r<Q,children:["W",r]},r)})})]})]})]}):(0,s.jsxs)(_,{open:B,onOpenChange:e=>{R(e),e&&L(M.year)},children:[(0,s.jsx)($,{render:(0,s.jsx)(x.$,{id:`${p}-weeks-picker`,type:"button",variant:"outline",size:"icon-sm",className:(0,j.cn)("shrink-0",eu&&"border-primary"),"aria-label":ex,title:ex}),children:(0,s.jsx)(c.A,{className:"size-3.5 opacity-70"})}),(0,s.jsxs)(S,{align:"end",className:"w-72 gap-0 p-0",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2 border-b border-border px-2.5 py-2",children:[(0,s.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Week"}),P?(0,s.jsxs)(H,{value:String(W),onValueChange:e=>{if(null==e)return;let t=Number(e);Number.isFinite(t)&&L(t)},children:[(0,s.jsx)(V,{size:"sm",className:"h-7 min-w-[4.5rem]","aria-label":"ISO week year",children:(0,s.jsx)(U,{})}),(0,s.jsx)(q,{children:z.map(e=>(0,s.jsx)(G,{value:String(e),children:e},e))})]}):(0,s.jsx)("span",{className:"font-mono text-xs tabular-nums text-muted-foreground",children:W})]}),(0,s.jsx)("div",{className:"max-h-56 overflow-y-auto p-1",role:"listbox","aria-label":`ISO weeks in ${W}`,children:Array.from({length:en},(t,r)=>{let a,c=r+1,{start:u,end:m}=(a=new Date(W,0,4),a=(0,n.v)(a,W),a=(0,i.O)(a,c),{start:(0,l.b)(a),end:(0,o.g)(a)}),x="weeks"===e.mode&&e.year===W&&e.weekFrom===c&&e.weekTo===c,h=W===M.year&&c===M.week,p=W===T.year&&c===T.week,f=W===F.year&&c===F.week,g=h?"Now":p?"Prev":f?"Next":null,b=N.get((0,ee.Mh)(W,c))??0,v=k.weeksByYear[W],y=!!(v&&c>=v.min&&c<=v.max);return(0,s.jsxs)("button",{ref:h?O:void 0,type:"button",role:"option","aria-selected":x,"aria-current":h?"date":void 0,className:(0,j.cn)("flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-sm outline-none hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent",x&&"bg-accent text-accent-foreground",!y&&!p&&!h&&!f&&"text-muted-foreground"),onClick:()=>{em(W,c,c),R(!1)},children:[(0,s.jsxs)("span",{className:"flex min-w-0 flex-1 items-center gap-1.5",children:[(0,s.jsxs)("span",{className:"font-mono text-xs tabular-nums",children:["W",c]}),g?(0,s.jsx)("span",{className:"rounded bg-primary/15 px-1 py-px text-[10px] font-medium tracking-wide text-primary uppercase",children:g}):null,(0,s.jsxs)("span",{className:"truncate text-xs text-muted-foreground",children:[(0,d.GP)(u,"MMM d")," – ",(0,d.GP)(m,"MMM d")]})]}),(0,s.jsx)(er,{points:b,className:"shrink-0 text-xs"})]},c)})}),(0,s.jsx)(Y.w,{}),(0,s.jsxs)("div",{className:"flex flex-col gap-0.5 p-1.5",children:[(0,s.jsxs)(x.$,{type:"button",variant:"ghost",size:"sm",className:"h-8 w-full justify-start font-normal",onClick:()=>{em(T.year,T.week,T.week),L(T.year),R(!1)},children:["Previous week",(0,s.jsxs)("span",{className:"ml-auto font-mono text-xs text-muted-foreground",children:["W",T.week]})]}),(0,s.jsxs)(x.$,{type:"button",variant:"ghost",size:"sm",className:"h-8 w-full justify-start font-normal",onClick:function(){em(M.year,M.week,M.week),L(M.year),R(!1)},children:["This week",(0,s.jsxs)("span",{className:"ml-auto font-mono text-xs text-muted-foreground",children:["W",M.week]})]}),(0,s.jsxs)(x.$,{type:"button",variant:"ghost",size:"sm",className:"h-8 w-full justify-start font-normal",onClick:()=>{em(F.year,F.week,F.week),L(F.year),R(!1)},children:["Next week",(0,s.jsxs)("span",{className:"ml-auto font-mono text-xs text-muted-foreground",children:["W",F.week]})]}),(0,s.jsx)(x.$,{type:"button",variant:"ghost",size:"sm",className:"h-8 w-full justify-start font-normal",onClick:function(){let e=(0,ee.z_)(),t=E.includes(e.year)?e.year:W,r=(0,ee.NB)(t),s=Math.min(e.weekTo,r),a=Math.max(1,Math.min(e.weekFrom,s));a===s&&(s=(a=s>1?s-1:s)===s&&s<r?s+1:s),em(t,a,s),L(t),R(!1)},children:"Select week range…"})]})]})]}),(0,s.jsxs)(_,{onOpenChange:t=>{t&&"range"!==e.mode&&eo(void 0)},children:[(0,s.jsx)($,{render:(0,s.jsx)(x.$,{id:`${p}-dates`,type:"button",variant:"outline",size:"icon-sm",className:(0,j.cn)("shrink-0","range"===e.mode&&"border-primary"),"aria-label":eh,title:eh}),children:(0,s.jsx)(u.A,{className:"size-3.5 opacity-70"})}),(0,s.jsx)(S,{align:"end",className:"w-auto p-2",children:(0,s.jsx)(v,{mode:"range",numberOfMonths:1,selected:ed,onSelect:function(e){eo(e),e?.from&&e.to&&t({mode:"range",from:(0,ee.xp)(e.from),to:(0,ee.xp)(e.to)})},defaultMonth:ed?.from??ed?.to,className:"[--cell-size:--spacing(9)]",components:{DayButton:function(e){let t=(0,ee.xp)(e.day.date),r=C.get(t)??0;return(0,s.jsxs)(y,{...e,className:(0,j.cn)(e.className,"h-auto min-h-(--cell-size) gap-0.5 py-1"),children:[e.children,r>0?(0,s.jsx)("span",{className:"text-[9px] leading-none tabular-nums text-muted-foreground opacity-80",title:`${r} story point${1===r?"":"s"}`,children:et.format(r)}):(0,s.jsx)("span",{className:"text-[9px] leading-none opacity-0",children:"0"})]})}}})})]}),ec?(0,s.jsx)(x.$,{type:"button",variant:"ghost",size:"icon-sm",className:"shrink-0 text-muted-foreground",onClick:function(){eo(void 0),t(ee.er)},"aria-label":"Clear timeframe filter",title:"Clear timeframe",children:(0,s.jsx)(m.A,{className:"size-3.5"})}):null]})}},55940:(e,t,r)=>{"use strict";r.d(t,{G:()=>n});var s=r(12115),a=r(63082);function n(e=null){let[t,r]=(0,s.useState)(e);return{sort:t,onSort:(0,s.useCallback)(e=>{r(t=>(0,a.PQ)(t,e))},[])}}},56471:(e,t,r)=>{"use strict";r.d(t,{A$:()=>s,CJ:()=>l,LO:()=>m,LV:()=>u,cu:()=>o,pN:()=>n});let s=["overall","workitems"],a="overall",n={overall:"Overall",workitems:"Work items"},i=new Set(["all","stories","tasks","workitems"]);function l(e){let t="string"==typeof e?e.trim().toLowerCase():"";return"overall"===t?"overall":i.has(t)?"workitems":a}function o(e){let t=new URLSearchParams,r=e.view??a;r!==a&&t.set("view",r),"overall"===r&&(e.epic&&t.set("epic",e.epic),e.epic&&e.story&&t.set("story",e.story)),e.item&&t.set("item",e.item);let s=t.toString();return s?`/board?${s}`:"/board"}let d={backlog:0,in_progress:1,done:2,blocked:3,cancelled:4},c={critical:0,high:1,medium:2,low:3};function u(e){return d[e.toLowerCase()]??50}function m(e){return c[e.toLowerCase()]??50}},57550:(e,t,r)=>{"use strict";function s(e){let t=e.replace(/\\/g,"/").split("/").filter(Boolean);return t[t.length-1]||e}r.d(t,{_:()=>s})},59134:(e,t,r)=>{"use strict";r.d(t,{Wh:()=>l,YH:()=>i,YJ:()=>d,wF:()=>o});var s=r(95155),a=r(38291),n=r(91337);function i(e){return"bug"===e?"border-black bg-destructive/15 text-destructive":"epic"===e?"border-black bg-[var(--chart-1)]/40 text-black":"story"===e?"border-black bg-[var(--chart-3)]/50 text-black":"border-black bg-[var(--chart-2)] text-black"}function l({status:e}){return(0,s.jsx)(a.E,{variant:"outline",className:(0,n.cn)(function(e){switch(e){case"done":return"border-black bg-[var(--chart-4)] text-black";case"in_progress":return"border-black bg-[var(--chart-1)] text-black";case"blocked":return"border-black bg-destructive text-destructive-foreground";case"cancelled":return"border-black bg-muted text-muted-foreground line-through";case"backlog":return"border-black bg-[var(--chart-3)] text-black";default:return"border-black bg-card text-foreground"}}(e)),children:e.replaceAll("_"," ")})}function o({type:e}){return(0,s.jsx)(a.E,{variant:"outline",className:(0,n.cn)(i(e)),children:e})}function d({priority:e}){return(0,s.jsx)(a.E,{variant:"outline",className:(0,n.cn)("capitalize",function(e){switch(e.toLowerCase()){case"critical":return"border-black bg-destructive text-destructive-foreground";case"high":return"border-black bg-[var(--chart-1)] text-black";case"medium":return"border-black bg-[var(--chart-3)] text-black";case"low":return"border-black bg-muted text-muted-foreground";default:return"border-black bg-card text-foreground"}}(e)),children:e.replaceAll("_"," ")})}},61991:(e,t,r)=>{"use strict";r.d(t,{w:()=>i});var s=r(95155),a=r(30030),n=r(91337);function i({className:e,orientation:t="horizontal",...r}){return(0,s.jsx)(a.w,{"data-slot":"separator",orientation:t,className:(0,n.cn)("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",e),...r})}},63082:(e,t,r)=>{"use strict";r.d(t,{Fp:()=>h,PQ:()=>p,Zo:()=>f});var s=r(56471);let a={XS:1,S:2,M:3,L:4,XL:5},n={E:1,S:2,T:3,B:4};function i(e){return e?.trim()?a[e.trim().toUpperCase()]??null:null}function l(e){let t=e.trim().match(/^([A-Za-z]+)-(\d+)$/);if(!t)return null;let r=t[1].toUpperCase();return{prefixRank:n[r]??100+r.charCodeAt(0),num:Number(t[2]),raw:e.trim()}}function o(e,t,r){if(null===e&&null===t)return 0;if(null===e)return 1;if(null===t)return -1;let s=e-t;return"asc"===r?s:-s}function d(e,t,r){let s=e?.trim()??"",a=t?.trim()??"";if(!s&&!a)return 0;if(!s)return 1;if(!a)return -1;let n=s.localeCompare(a,void 0,{sensitivity:"base",numeric:!0});return"asc"===r?n:-n}function c(e,t,r){var s,a;let n,i,o=e?.trim()??"",d=t?.trim()??"";if(!o&&!d)return 0;if(!o)return 1;if(!d)return -1;let c=(s=o,a=d,n=l(s),i=l(a),n&&i?n.prefixRank!==i.prefixRank?n.prefixRank-i.prefixRank:n.num!==i.num?n.num-i.num:n.raw.localeCompare(i.raw):s.localeCompare(a,void 0,{sensitivity:"base",numeric:!0}));return"asc"===r?c:-c}let u={epic:0,story:1,task:2,bug:3};function m(e){return e?.trim()?u[e.trim().toLowerCase()]??null:null}function x(e,t){let r=new Set,s=[];for(let a of[...e??[],...t??[]]){let e=(a.email||a.name||"").trim().toLowerCase();!e||r.has(e)||(r.add(e),s.push((a.name||a.email||"").trim().toLowerCase()))}return s.sort((e,t)=>e.localeCompare(t,void 0,{sensitivity:"base"})),s.join(", ")}function h(e,t){return t?e.map((e,t)=>({row:e,index:t})).sort((e,r)=>{let a=function(e,t,r){var a,n,l,u,h,p,f,g,b,j;switch(r.key){case"id":return c(e.id,t.id,r.direction);case"title":return d(e.title,t.title,r.direction);case"size":let v,y;return a=e.size,n=t.size,l=r.direction,null!==(y=o(v=i(a),i(n),l))&&0!==y?y:0===y&&null!==v?0:d(a,n,l);case"epic":return function(e,t,r){let s=(e.epicTitle?.trim()||e.epicId?.trim()||"").toLowerCase(),a=(t.epicTitle?.trim()||t.epicId?.trim()||"").toLowerCase();if(!s&&!a)return c(e.epicId,t.epicId,r);if(!s)return 1;if(!a)return -1;let n=s.localeCompare(a,void 0,{sensitivity:"base"});return 0!==n?"asc"===r?n:-n:c(e.epicId,t.epicId,r)}(e,t,r.direction);case"points":return u=e.points,h=t.points,p=r.direction,o(null==u||Number.isNaN(u)?null:u,null==h||Number.isNaN(h)?null:h,p)??0;case"status":return function(e,t,r){let a=e?.trim()??"",n=t?.trim()??"";if(!a&&!n)return 0;if(!a)return 1;if(!n)return -1;let i=(0,s.LV)(a)-(0,s.LV)(n);return"asc"===r?i:-i}(e.status,t.status,r.direction);case"priority":return function(e,t,r){let a=e?.trim()??"",n=t?.trim()??"";if(!a&&!n)return 0;if(!a)return 1;if(!n)return -1;let i=(0,s.LO)(a)-(0,s.LO)(n);return"asc"===r?i:-i}(e.priority,t.priority,r.direction);case"type":let w,k;return f=e.kind??e.type,g=t.kind??t.type,b=r.direction,null!==(k=o(w=m(f),m(g),b))&&0!==k?k:0===k&&null!==w?0:d(f,g,b);case"people":return j=r.direction,d(x(e.reporters,e.resolvers),x(t.reporters,t.resolvers),j);default:return 0}}(e.row,r.row,t);return 0!==a?a:e.index-r.index}).map(({row:e})=>e):[...e]}function p(e,t){return e?.key!==t?{key:t,direction:"asc"}:"asc"===e.direction?{key:t,direction:"desc"}:null}function f(e){return e?`${e.key}:${e.direction}`:""}},63520:(e,t,r)=>{"use strict";r.d(t,{K:()=>n});var s=r(12115),a=r(72557);function n(e,t){let[r,n]=(0,s.useState)(1),[i,l]=(0,s.useState)(a.yQ);(0,s.useEffect)(()=>{n(1)},[t]);let o=(0,s.useMemo)(()=>(0,a.Cp)(e,r,i),[e,r,i]);return(0,s.useEffect)(()=>{o.page!==r&&n(o.page)},[o.page,r]),{...o,setPage:n,setPageSize:function(e){l((0,a.$G)(e)?e:a.yQ),n(1)}}}},64791:(e,t,r)=>{"use strict";r.d(t,{OverallWorkItemsList:()=>C});var s=r(95155),a=r(12115),n=r(98500),i=r.n(n),l=r(83786),o=r(79984),d=r(50974),c=r(25124),u=r(77480),m=r(45619),x=r(6620),h=r(59134),p=r(54405),f=r(16327),g=r(36048),b=r(63520),j=r(75438),v=r(55940),y=r(91337),w=r(57550),k=r(5411),N=r(63082);function C({list:e,selectedStoryId:t=null,countableCompletions:r=[],initialHideCompleted:n=!1}){let{project:z,epicId:_,epicTitle:$,rows:S,errors:P}=e,A=$?`${_}: ${$}`:_,[I,M]=(0,a.useState)(""),[T,F]=(0,j.M)("overallWorkItems",n),[K,W]=(0,a.useState)(k.er),{sort:L,onSort:B}=(0,v.G)(),R=(0,a.useMemo)(()=>S.map(e=>e.completedAt),[S]),O=(0,a.useMemo)(()=>(0,k.Eq)(S,{query:I,hideCompleted:T,selectedTags:[],timeframe:K}),[S,I,T,K]),E=(0,a.useMemo)(()=>(0,N.Fp)(O,L),[O,L]),{pageRows:Z,page:D,pageSize:H,totalCount:U,totalPages:V,setPage:q,setPageSize:G}=(0,b.K)(E,[(0,k.ZK)(_,{query:I,hideCompleted:T,parentKey:null,selectedTags:[],timeframe:K}),(0,N.Zo)(L)].join("|")),X=S.length>0,Q=!!I.trim()||T||(0,k.zi)(K);return(0,s.jsxs)(o.Zp,{children:[(0,s.jsxs)(o.aR,{children:[(0,s.jsx)(o.ZB,{className:"font-head text-xl",children:"Work items"}),(0,s.jsxs)(o.BT,{children:[(0,s.jsx)("span",{className:"font-medium text-foreground",children:A}),(0,s.jsx)("span",{className:"mt-1 block font-mono text-xs",children:z.name})]}),X?(0,s.jsx)(o.X9,{children:(0,s.jsx)(p.r,{id:`overall-workitems-timeframe-${_}`,value:K,onChange:W,completedAts:R,countableCompletions:r})}):null]}),(0,s.jsxs)(o.Wu,{className:"flex flex-col gap-4",children:[P.length>0?(0,s.jsxs)("div",{role:"status",className:"rounded border-2 border-destructive/40 bg-destructive/10 px-3 py-2 text-sm",children:[(0,s.jsxs)("p",{className:"font-medium text-destructive",children:[P.length," issue",1===P.length?"":"s"," loading work items"]}),(0,s.jsx)("ul",{className:"mt-2 flex flex-col gap-1 font-mono text-xs text-muted-foreground",children:P.map(e=>(0,s.jsxs)("li",{children:[(0,w._)(e.filePath),": ",e.message]},`${e.filePath}:${e.message}`))})]}):null,X?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(u.n,{searchId:`overall-workitems-search-${_}`,query:I,onQueryChange:M,hideCompleted:T,onHideCompletedChange:F}),0===O.length?(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:Q?"No work items match the current search or filters.":"No work items under this epic yet."}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(l.XI,{children:[(0,s.jsx)(l.A0,{children:(0,s.jsxs)(l.Hj,{children:[(0,s.jsx)(l.nd,{className:"w-10"}),(0,s.jsx)(x.T,{label:"ID",sortKey:"id",activeKey:L?.key??null,direction:L?.direction??null,onSort:B}),(0,s.jsx)(x.T,{label:"Type",sortKey:"type",activeKey:L?.key??null,direction:L?.direction??null,onSort:B}),(0,s.jsx)(x.T,{label:"Title",sortKey:"title",activeKey:L?.key??null,direction:L?.direction??null,onSort:B}),(0,s.jsx)(l.nd,{children:"Sub tasks"}),(0,s.jsx)(x.T,{label:"Size",sortKey:"size",activeKey:L?.key??null,direction:L?.direction??null,onSort:B}),(0,s.jsx)(x.T,{label:"People",sortKey:"people",activeKey:L?.key??null,direction:L?.direction??null,onSort:B,className:"w-16 text-center"}),(0,s.jsx)(x.T,{label:"Status",sortKey:"status",activeKey:L?.key??null,direction:L?.direction??null,onSort:B,align:"center"})]})}),(0,s.jsx)(l.BF,{children:Z.map(e=>{let r="story"===e.kind,a=r&&t===e.id,n=r?`/board?epic=${encodeURIComponent(_)}&story=${encodeURIComponent(e.id)}`:null;return(0,s.jsxs)(l.Hj,{"data-state":a?"selected":void 0,className:(0,y.cn)(a&&"bg-muted/60","hover:bg-muted/40"),children:[(0,s.jsx)(l.nA,{className:"w-10 pr-0",children:(0,s.jsx)(f.CP,{itemRef:{kind:r?"story":"item",id:e.id,title:e.title,filePath:e.filePath,itemType:"task"===e.kind||"bug"===e.kind?e.kind:void 0}})}),(0,s.jsx)(l.nA,{className:"font-mono text-xs",children:(0,s.jsx)(c.nU,{id:e.id,created:e.created,children:n?(0,s.jsx)(i(),{href:n,className:"underline-offset-2 hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring","aria-current":a?"true":void 0,children:e.id}):e.id})}),(0,s.jsx)(l.nA,{children:(0,s.jsx)(h.wF,{type:e.kind})}),(0,s.jsx)(l.nA,{className:"max-w-[18rem] whitespace-normal font-medium",children:n?(0,s.jsx)(i(),{href:n,className:"underline-offset-2 hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:e.title}):e.title}),(0,s.jsx)(l.nA,{className:"tabular-nums",children:r?e.workItemCount:"—"}),(0,s.jsx)(l.nA,{children:(0,s.jsx)(c.Aw,{size:e.size,points:e.points})}),(0,s.jsx)(l.nA,{className:"text-center",children:(0,s.jsx)("div",{className:"flex justify-center",children:(0,s.jsx)(g.O,{reporters:e.reporters,resolvers:e.resolvers})})}),(0,s.jsx)(l.nA,{className:"text-center",children:(0,s.jsx)("div",{className:"inline-flex w-full justify-center",children:r&&e.workItemCount>0?(0,s.jsx)(d.P,{done:e.doneWorkItemCount,total:e.workItemCount}):(0,s.jsx)(c.Bm,{status:e.status,solvedAt:e.completedAt})})})]},`${z.id}:${e.kind}:${e.id}:${e.filePath}`)})})]}),(0,s.jsx)(m.r,{page:D,totalPages:V,totalCount:U,pageSize:H,onPageChange:q,onPageSizeChange:G})]})]}):(0,s.jsxs)("p",{className:"text-sm text-muted-foreground",children:["No work items under this epic yet",$?.toLowerCase()==="general"?" — stories and general tasks will appear here.":"."]})]})]})}},67095:(e,t,r)=>{"use strict";r.d(t,{ListViewSwitcher:()=>g});var s=r(95155),a=r(12115),n=r(73321),i=r(81381),l=r(53591),o=r(52302),d=r(18460),c=r(91337);function u({className:e,orientation:t="horizontal",...r}){return(0,s.jsx)(i.p,{"data-slot":"tabs","data-orientation":t,className:(0,c.cn)("group/tabs flex gap-2 data-horizontal:flex-col",e),...r})}let m=(0,d.F)("group/tabs-list inline-flex w-fit items-center justify-center rounded p-1 text-muted-foreground group-data-horizontal/tabs:h-11 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none",{variants:{variant:{default:"border-2 bg-card shadow-sm",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function x({className:e,variant:t="default",...r}){return(0,s.jsx)(l.j,{"data-slot":"tabs-list","data-variant":t,className:(0,c.cn)(m({variant:t}),e),...r})}function h({className:e,...t}){return(0,s.jsx)(o.M,{"data-slot":"tabs-trigger",className:(0,c.cn)("relative inline-flex h-[calc(100%-1px)] flex-1 cursor-pointer items-center justify-center gap-1.5 rounded border-2 border-transparent px-4 py-2 text-sm font-head font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 group-data-[variant=default]/tabs-list:data-active:border-border group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent","data-active:bg-primary data-active:text-primary-foreground group-data-[variant=line]/tabs-list:data-active:text-foreground","after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-1 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-1 group-data-[variant=line]/tabs-list:data-active:after:opacity-100",e),...t})}var p=r(56471);function f({activeView:e,selectedEpicId:t=null,selectedStoryId:r=null}){let a=(0,n.useRouter)(),i=(0,n.useSearchParams)().get("item");return(0,s.jsx)(u,{value:e,onValueChange:e=>{"string"!=typeof e||a.push((0,p.cu)({view:e,epic:"overall"===e?t:null,story:"overall"===e?r:null,item:i}))},children:(0,s.jsx)(x,{"aria-label":"Board list view",children:p.A$.map(e=>(0,s.jsx)(h,{value:e,children:p.pN[e]},e))})})}function g(e){return(0,s.jsx)(a.Suspense,{fallback:(0,s.jsx)(u,{value:e.activeView,children:(0,s.jsx)(x,{"aria-label":"Board list view",children:p.A$.map(e=>(0,s.jsx)(h,{value:e,disabled:!0,children:p.pN[e]},e))})}),children:(0,s.jsx)(f,{...e})})}},72557:(e,t,r)=>{"use strict";r.d(t,{$G:()=>n,Cp:()=>i,xp:()=>s,yQ:()=>a});let s=[10,25,50,100],a=25;function n(e){return s.includes(e)}function i(e,t,r){let s=n(r)?r:a,i=e.length,l=0===i?0:Math.ceil(i/s),o=0===l?1:Math.min(Math.max(1,Math.trunc(t)||1),l),d=(o-1)*s;return{pageRows:e.slice(d,d+s),totalCount:i,totalPages:l,page:o,pageSize:s}}},75438:(e,t,r)=>{"use strict";r.d(t,{M:()=>n});var s=r(12115);let a={epics:"taskmark_hide_completed_epics",stories:"taskmark_hide_completed_stories",tasks:"taskmark_hide_completed_tasks",overallWorkItems:"taskmark_hide_completed_overall_work_items",workItems:"taskmark_hide_completed_work_items"};function n(e,t=!1){let[r,i]=(0,s.useState)(t);return[r,(0,s.useCallback)(t=>{!function(e,t){if("u"<typeof document)return;let r=a[e];document.cookie=`${r}=${t?"1":"0"}; path=/; max-age=31536000; SameSite=Lax`}(e,t),i(t)},[e])]}},77480:(e,t,r)=>{"use strict";r.d(t,{n:()=>O});var s=r(95155),a=r(65377),n=r(9005),i=r(4474),l=r(5411),o=r(91337);function d({value:e,onChange:t,placeholder:r="Search by id or name…",className:c,id:u="list-search"}){return(0,s.jsxs)("div",{className:(0,o.cn)(l.z_,"min-w-[12rem] flex-1 max-w-sm",c),children:[(0,s.jsx)(a.A,{className:"size-3.5 shrink-0 text-muted-foreground","aria-hidden":!0}),(0,s.jsx)("input",{id:u,type:"search",value:e,onChange:e=>t(e.target.value),placeholder:r,className:"min-w-16 flex-1 bg-transparent outline-none placeholder:text-muted-foreground","aria-label":"Search by work item id or name"}),e?(0,s.jsx)(i.$,{type:"button",variant:"ghost",size:"icon-xs",className:"-mr-1 opacity-50 hover:opacity-100",onClick:()=>t(""),"aria-label":"Clear search",children:(0,s.jsx)(n.A,{className:"size-3.5"})}):null]})}var c=r(79792),u=r(28489),m=r(89455);function x({className:e,size:t="default",...r}){return(0,s.jsx)(u.l,{"data-slot":"switch","data-size":t,className:(0,o.cn)("peer group/switch relative inline-flex shrink-0 cursor-pointer items-center border-2 border-foreground transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary aria-invalid:border-destructive data-[size=default]:h-6 data-[size=default]:w-11 data-[size=sm]:h-5 data-[size=sm]:w-9 data-checked:bg-primary data-disabled:cursor-not-allowed data-disabled:opacity-50",e),...r,children:(0,s.jsx)(m.p,{"data-slot":"switch-thumb",className:"pointer-events-none mx-0.5 block border-2 border-foreground bg-primary transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-5 group-data-[size=sm]/switch:data-checked:translate-x-4 data-checked:bg-background data-unchecked:translate-x-0"})})}function h({checked:e,onCheckedChange:t,id:r="hide-completed",className:a}){return(0,s.jsxs)(c.J,{htmlFor:r,className:(0,o.cn)("inline-flex h-8 cursor-pointer items-center gap-2 px-1 text-sm font-normal text-muted-foreground hover:text-foreground",a),children:[(0,s.jsx)(x,{id:r,size:"sm",checked:e,onCheckedChange:t,"aria-label":"Hide completed"}),"Hide completed"]})}var p=r(12115),f=r(5756),g=r(2385),b=r(19001),j=r(93313),v=r(29432),y=r(56758),w=r(47028),k=r(63205),N=r(38074),C=r(45665),z=r(5178),_=r(4544),$=r(64577),S=r(18460);(0,S.F)("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]","inline-end":"order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]","block-start":"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2","block-end":"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2"}},defaultVariants:{align:"inline-start"}}),(0,S.F)("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",sm:"","icon-xs":"size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});let P=f.i;function A({className:e,side:t="bottom",sideOffset:r=6,align:a="start",alignOffset:n=0,anchor:i,...l}){return(0,s.jsx)(g.K,{children:(0,s.jsx)(b.o,{side:t,sideOffset:r,align:a,alignOffset:n,anchor:i,className:"isolate z-50",children:(0,s.jsx)(j.I,{"data-slot":"combobox-content","data-chips":!!i,className:(0,o.cn)("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded border-2 bg-popover text-popover-foreground shadow-md duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...l})})})}function I({className:e,...t}){return(0,s.jsx)(v.e,{"data-slot":"combobox-list",className:(0,o.cn)("no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0",e),...t})}function M({className:e,children:t,...r}){return(0,s.jsxs)(y.x,{"data-slot":"combobox-item",className:(0,o.cn)("relative flex w-full cursor-default items-center gap-2 rounded-sm py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...r,children:[t,(0,s.jsx)(w.Q,{render:(0,s.jsx)("span",{className:"pointer-events-none absolute right-2 flex size-4 items-center justify-center"}),children:(0,s.jsx)($.A,{className:"pointer-events-none"})})]})}function T({className:e,...t}){return(0,s.jsx)(k.$,{"data-slot":"combobox-empty",className:(0,o.cn)("hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex",e),...t})}function F({className:e,...t}){return(0,s.jsx)(N.H,{"data-slot":"combobox-chips",className:(0,o.cn)("flex min-h-8 flex-wrap items-center gap-1 rounded border-2 bg-input bg-clip-padding px-2.5 py-1 text-sm shadow-sm transition-colors focus-within:outline-2 focus-within:outline-offset-2 focus-within:outline-primary has-aria-invalid:border-destructive has-data-[slot=combobox-chip]:px-1",e),...t})}function K({className:e,children:t,showRemove:r=!0,...a}){return(0,s.jsxs)(C.e,{"data-slot":"combobox-chip",className:(0,o.cn)("flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm border-2 bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0",e),...a,children:[t,r&&(0,s.jsx)(z.a,{render:(0,s.jsx)(i.$,{variant:"ghost",size:"icon-xs"}),className:"-ml-1 opacity-50 hover:opacity-100","data-slot":"combobox-chip-remove",children:(0,s.jsx)(n.A,{className:"pointer-events-none"})})]})}function W({className:e,...t}){return(0,s.jsx)(_.o,{"data-slot":"combobox-chip-input",className:(0,o.cn)("min-w-16 flex-1 outline-none",e),...t})}function L(){return p.useRef(null)}function B({options:e,value:t,onChange:r,id:a="parent-filter"}){let n=L(),i=e.filter(e=>t.includes(e.key));return 0===e.length?(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:"No parents on board"}):(0,s.jsxs)(P,{multiple:!0,items:e,value:i,onValueChange:e=>{r((e??[]).map(e=>e.key))},itemToStringLabel:e=>`${e.chipLabel} ${e.title} ${e.label}`,isItemEqualToValue:(e,t)=>e?.key===t?.key,children:[(0,s.jsxs)(F,{ref:n,className:(0,o.cn)(l.z_,"min-w-[16rem] max-w-md"),children:[i.map(e=>(0,s.jsx)(K,{children:e.chipLabel},e.key)),(0,s.jsx)(W,{id:a,placeholder:0===i.length?"Filter by parent epic or story…":"Add parent…","aria-label":"Filter by parent epic or story"})]}),(0,s.jsxs)(A,{anchor:n,className:"w-80",children:[(0,s.jsx)(T,{children:"No matching parents"}),(0,s.jsx)(I,{children:e=>(0,s.jsx)(M,{value:e,children:(0,s.jsx)("span",{className:"truncate",children:e.label})},e.key)})]})]})}function R({options:e,value:t,onChange:r,id:a="tags-filter"}){let n=L();return 0===e.length?(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:"No tags on board"}):(0,s.jsxs)(P,{multiple:!0,items:e,value:t,onValueChange:e=>r(e??[]),children:[(0,s.jsxs)(F,{ref:n,className:(0,o.cn)(l.z_,"min-w-[12rem] max-w-xs"),children:[t.map(e=>(0,s.jsx)(K,{children:e},e)),(0,s.jsx)(W,{id:a,placeholder:0===t.length?"Filter by tags…":"Add tag…","aria-label":"Filter by tags"})]}),(0,s.jsxs)(A,{anchor:n,children:[(0,s.jsx)(T,{children:"No matching tags"}),(0,s.jsx)(I,{children:e=>(0,s.jsx)(M,{value:e,children:e},e)})]})]})}function O({query:e,onQueryChange:t,hideCompleted:r,onHideCompletedChange:a,parentOptions:n,parentKeys:i=[],onParentKeysChange:l,tagOptions:c,selectedTags:u=[],onSelectedTagsChange:m,searchId:x,className:p}){let f=!!(n&&l),g=!!(c&&m);return(0,s.jsxs)("div",{className:(0,o.cn)("flex flex-wrap items-center gap-2 border-b border-border pb-3",p),role:"search",children:[(0,s.jsx)(d,{id:x,value:e,onChange:t}),f?(0,s.jsx)(B,{options:n,value:i,onChange:l}):null,g?(0,s.jsx)(R,{options:c,value:u,onChange:m}):null,(0,s.jsx)(h,{checked:r,onCheckedChange:a,id:x?`${x}-hide-completed`:void 0})]})}},79792:(e,t,r)=>{"use strict";r.d(t,{J:()=>n});var s=r(95155);r(12115);var a=r(91337);function n({className:e,...t}){return(0,s.jsx)("label",{"data-slot":"label",className:(0,a.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...t})}},79984:(e,t,r)=>{"use strict";r.d(t,{BT:()=>o,Wu:()=>c,X9:()=>d,ZB:()=>l,Zp:()=>n,aR:()=>i,wL:()=>u});var s=r(95155);r(12115);var a=r(91337);function n({className:e,size:t="default",...r}){return(0,s.jsx)("div",{"data-slot":"card","data-size":t,className:(0,a.cn)("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded border-2 bg-card py-(--card-spacing) text-sm text-card-foreground shadow-md [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",e),...r})}function i({className:e,...t}){return(0,s.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",e),...t})}function l({className:e,...t}){return(0,s.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",e),...t})}function o({className:e,...t}){return(0,s.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-sm text-muted-foreground",e),...t})}function d({className:e,...t}){return(0,s.jsx)("div",{"data-slot":"card-action",className:(0,a.cn)("col-start-2 row-span-2 row-start-1 self-start justify-self-end",e),...t})}function c({className:e,...t}){return(0,s.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-(--card-spacing)",e),...t})}function u({className:e,...t}){return(0,s.jsx)("div",{"data-slot":"card-footer",className:(0,a.cn)("flex items-center rounded-b-xl border-t-2 bg-muted/50 p-(--card-spacing)",e),...t})}},82050:(e,t,r)=>{"use strict";r.d(t,{EpicList:()=>z});var s=r(95155),a=r(12115),n=r(98500),i=r.n(n),l=r(83786),o=r(79984),d=r(25124),c=r(50974),u=r(77480),m=r(45619),x=r(6620),h=r(54405),p=r(16327),f=r(36048),g=r(63520),b=r(75438),j=r(55940),v=r(91337),y=r(57550);function w(e){if("general"===e.title.trim().toLowerCase()||e.tags.some(e=>"general"===e.trim().toLowerCase()))return!0;let t=e.filePath.replace(/[/\\]epic\.md$/i,"").split(/[/\\]/).pop()??"";return t.toLowerCase().endsWith("-general")||"general"===t.toLowerCase()}var k=r(5411),N=r(63082);function C({project:e,epics:t,errors:r,selectedEpicId:n,countableCompletions:z=[],initialHideCompleted:_=!1}){let[$,S]=(0,a.useState)(""),[P,A]=(0,b.M)("epics",_),{sort:I,onSort:M}=(0,j.G)(),[T,F]=(0,a.useState)(k.er),K=(0,a.useMemo)(()=>t.filter(e=>!(w(e)&&0===e.workItemCount)),[t]),W=(0,a.useMemo)(()=>K.map(e=>e.completedAt),[K]),L=(0,a.useMemo)(()=>(0,k.Eq)(K,{query:$,hideCompleted:P,selectedTags:[],timeframe:T}),[K,$,P,T]),B=(0,a.useMemo)(()=>(0,N.Fp)(L,I),[L,I]),{pageRows:R,page:O,pageSize:E,totalCount:Z,totalPages:D,setPage:H,setPageSize:U}=(0,g.K)(B,[(0,k.ZK)(e.id,{query:$,hideCompleted:P,parentKey:null,selectedTags:[],timeframe:T}),(0,N.Zo)(I)].join("|")),V=K.length>0,q=!!$.trim()||P||(0,k.zi)(T);return(0,s.jsxs)(o.Zp,{children:[(0,s.jsxs)(o.aR,{children:[(0,s.jsx)(o.ZB,{className:"font-head text-xl",children:e.name}),V?(0,s.jsx)(o.X9,{children:(0,s.jsx)(h.r,{id:`epic-timeframe-${e.id}`,value:T,onChange:F,completedAts:W,countableCompletions:z})}):null]}),(0,s.jsxs)(o.Wu,{className:"flex flex-col gap-4",children:[r.length>0?(0,s.jsxs)("div",{role:"status",className:"rounded border-2 border-destructive/40 bg-destructive/10 px-3 py-2 text-sm",children:[(0,s.jsxs)("p",{className:"font-medium text-destructive",children:[r.length," epic file",1===r.length?"":"s"," could not be parsed"]}),(0,s.jsx)("ul",{className:"mt-2 flex flex-col gap-1 font-mono text-xs text-muted-foreground",children:r.map(e=>(0,s.jsxs)("li",{children:[(0,y._)(e.filePath),": ",e.message]},e.filePath))})]}):null,V?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(u.n,{searchId:`epic-search-${e.id}`,query:$,onQueryChange:S,hideCompleted:P,onHideCompletedChange:A}),0===L.length?(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:q?"No epics match the current search or filters.":"No epics in this board yet."}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(l.XI,{children:[(0,s.jsx)(l.A0,{children:(0,s.jsxs)(l.Hj,{children:[(0,s.jsx)(l.nd,{className:"w-10"}),(0,s.jsx)(x.T,{label:"ID",sortKey:"id",activeKey:I?.key??null,direction:I?.direction??null,onSort:M}),(0,s.jsx)(x.T,{label:"Title",sortKey:"title",activeKey:I?.key??null,direction:I?.direction??null,onSort:M}),(0,s.jsx)(l.nd,{children:"Work items"}),(0,s.jsx)(x.T,{label:"Points",sortKey:"points",activeKey:I?.key??null,direction:I?.direction??null,onSort:M}),(0,s.jsx)(x.T,{label:"People",sortKey:"people",activeKey:I?.key??null,direction:I?.direction??null,onSort:M,className:"w-16 text-center"}),(0,s.jsx)(l.nd,{children:"Progress"})]})}),(0,s.jsx)(l.BF,{children:R.map(t=>{var r;let a=n===t.id,o=w(t);return(0,s.jsxs)(l.Hj,{"data-state":a?"selected":void 0,className:(0,v.cn)(a&&"bg-muted/60","hover:bg-muted/40"),children:[(0,s.jsx)(l.nA,{className:"w-10 pr-0",children:(0,s.jsx)(p.CP,{itemRef:{kind:"epic",id:t.id,title:t.title,filePath:t.filePath}})}),(0,s.jsx)(l.nA,{className:"font-mono text-xs",children:(0,s.jsx)(d.nU,{id:t.id,created:t.created,children:(0,s.jsx)(i(),{href:`/board?epic=${encodeURIComponent(t.id)}`,className:"underline-offset-2 hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring","aria-current":a?"true":void 0,children:t.id})})}),(0,s.jsx)(l.nA,{className:"max-w-[18rem] whitespace-normal font-medium",children:(0,s.jsxs)(i(),{href:`/board?epic=${encodeURIComponent(t.id)}`,className:"underline-offset-2 hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:[t.title,o?(0,s.jsx)("span",{className:"ml-2 text-xs font-normal text-muted-foreground",children:"general tasks and user stories"}):null]})}),(0,s.jsx)(l.nA,{className:"tabular-nums",children:t.workItemCount}),(0,s.jsx)(l.nA,{children:null===(r=t.points)?"—":String(r)}),(0,s.jsx)(l.nA,{className:"text-center",children:(0,s.jsx)("div",{className:"flex justify-center",children:(0,s.jsx)(f.O,{reporters:t.reporters,resolvers:t.resolvers})})}),(0,s.jsx)(l.nA,{children:(0,s.jsx)(c.P,{done:t.doneWorkItemCount,total:t.workItemCount})})]},`${e.id}:${t.id}:${t.filePath}`)})})]}),(0,s.jsx)(m.r,{page:O,totalPages:D,totalCount:Z,pageSize:E,onPageChange:H,onPageSizeChange:U})]})]}):(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"No epics in this board yet. Init should seed a General epic for general tasks and user stories."})]})]})}function z({lists:e,selectedEpicId:t=null,countableCompletions:r=[],initialHideCompleted:a=!1}){return 0===e.length?(0,s.jsx)(o.Zp,{children:(0,s.jsxs)(o.aR,{children:[(0,s.jsx)(o.ZB,{className:"font-head text-xl",children:"Epics"}),(0,s.jsx)(o.BT,{children:"No Taskmark projects were discovered under this master folder."})]})}):(0,s.jsx)("div",{className:"flex flex-col gap-6",children:e.map(({project:e,epics:n,errors:i})=>(0,s.jsx)(C,{project:e,epics:n,errors:i,selectedEpicId:t,countableCompletions:r,initialHideCompleted:a},e.boardPath))})}},83242:(e,t,r)=>{"use strict";r.d(t,{kT:()=>o,sC:()=>d});var s=r(41282),a=r(26612),n=r(75025);let i=/^\d{4}-\d{2}-\d{2}$/,l=new Set(["","null","—","-","n/a","N/A"]);function o(e){let t=e?.trim()??"";if(!t||l.has(t))return null;if(i.test(t)){let[e,r,a]=t.split("-").map(Number),n=new Date(e,r-1,a);return(0,s.f)(n)?n:null}try{let e=(0,a.H)(t);return(0,s.f)(e)?e:null}catch{return null}}function d(e){let t=e?.trim()??"";if(!t||l.has(t))return"—";let r=o(t);return r?t.includes("T")||/\d{2}:\d{2}/.test(t)?(0,n.GP)(r,"MMM d, yyyy, HH:mm"):(0,n.GP)(r,"MMM d, yyyy"):t}},83786:(e,t,r)=>{"use strict";r.d(t,{A0:()=>i,BF:()=>l,Hj:()=>o,XI:()=>n,nA:()=>c,nd:()=>d});var s=r(95155);r(12115);var a=r(91337);function n({className:e,...t}){return(0,s.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,s.jsx)("table",{"data-slot":"table",className:(0,a.cn)("w-full caption-bottom text-sm",e),...t})})}function i({className:e,...t}){return(0,s.jsx)("thead",{"data-slot":"table-header",className:(0,a.cn)("[&_tr]:border-b",e),...t})}function l({className:e,...t}){return(0,s.jsx)("tbody",{"data-slot":"table-body",className:(0,a.cn)("[&_tr:last-child]:border-0",e),...t})}function o({className:e,...t}){return(0,s.jsx)("tr",{"data-slot":"table-row",className:(0,a.cn)("border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted",e),...t})}function d({className:e,...t}){return(0,s.jsx)("th",{"data-slot":"table-head",className:(0,a.cn)("h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0",e),...t})}function c({className:e,...t}){return(0,s.jsx)("td",{"data-slot":"table-cell",className:(0,a.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0",e),...t})}},84851:(e,t,r)=>{"use strict";r.d(t,{Yn:()=>l,mx:()=>o,t0:()=>d});var s=r(97077);let a=null,n=null;async function i(){return a||(n||(n=fetch(s.x).then(e=>{if(!e.ok)throw Error(`Failed to load ${s.x}`);return e.json()}).then(e=>(a=e,e)).finally(()=>{n=null})),n)}function l(e){a=e}async function o(e){let t=(await i()).detailsByPath[e];return t?{ok:!0,detail:t}:{ok:!1,filePath:e,message:"Work item detail not found in static snapshot"}}async function d(e){let t=e.trim(),r=(await i()).refsById[t];return r?{ok:!0,ref:r}:{ok:!1,itemId:t,message:`Work item ${t} was not found`}}},89411:(e,t,r)=>{"use strict";r.d(t,{WorkItemsList:()=>z});var s=r(95155),a=r(12115),n=r(83786),i=r(79984),l=r(38291),o=r(91459),d=r(59134),c=r(91337);function u({id:e,title:t,kind:r="epic"}){return(0,s.jsx)(o.Bc,{children:(0,s.jsxs)(o.m_,{children:[(0,s.jsx)(o.k$,{render:(0,s.jsx)(l.E,{variant:"outline",className:(0,c.cn)("cursor-default font-mono text-xs",(0,d.YH)(r)),title:t||e}),children:e}),(0,s.jsx)(o.ZI,{children:t||e})]})})}var m=r(50974),x=r(25124),h=r(77480),p=r(45619),f=r(6620),g=r(54405),b=r(16327),j=r(36048),v=r(63520),y=r(75438),w=r(55940),k=r(57550),N=r(5411),C=r(63082);function z({list:e,countableCompletions:t,initialHideCompleted:r=!1}){let{project:l,rows:o,errors:c}=e,[_,$]=(0,a.useState)(""),[S,P]=(0,y.M)("workItems",r),[A,I]=(0,a.useState)([]),[M,T]=(0,a.useState)([]),[F,K]=(0,a.useState)(N.er),{sort:W,onSort:L}=(0,w.G)(),B=(0,a.useMemo)(()=>(0,N.z5)(o),[o]),R=(0,a.useMemo)(()=>(0,N.j8)(o),[o]),O=(0,a.useMemo)(()=>o.map(e=>e.completedAt),[o]),E=(0,a.useMemo)(()=>t??o.map(e=>({completedAt:e.completedAt,points:e.points})),[t,o]),Z=(0,a.useMemo)(()=>(0,N.Eq)(o,{query:_,hideCompleted:S,parentKeys:A,selectedTags:M,timeframe:F}),[o,_,S,A,M,F]),D=(0,a.useMemo)(()=>(0,C.Fp)(Z,W),[Z,W]),{pageRows:H,page:U,pageSize:V,totalCount:q,totalPages:G,setPage:X,setPageSize:Q}=(0,v.K)(D,[(0,N.ZK)(l.id,{query:_,hideCompleted:S,parentKeys:A,selectedTags:M,timeframe:F}),(0,C.Zo)(W)].join("|")),Y=o.length>0,J=!!_.trim()||S||A.length>0||M.length>0||(0,N.zi)(F);return(0,s.jsxs)(i.Zp,{children:[(0,s.jsxs)(i.aR,{children:[(0,s.jsx)(i.ZB,{className:"font-head text-xl",children:"Work items"}),(0,s.jsxs)(i.BT,{children:[(0,s.jsx)("span",{className:"font-medium text-foreground",children:l.name}),(0,s.jsx)("span",{className:"mt-1 block text-xs text-muted-foreground",children:"Stories and epic-direct tasks/bugs \xb7 open by status/priority/created; done by newest solved date"})]}),Y?(0,s.jsx)(i.X9,{children:(0,s.jsx)(g.r,{id:`workitems-timeframe-${l.id}`,value:F,onChange:K,completedAts:O,countableCompletions:E})}):null]}),(0,s.jsxs)(i.Wu,{className:"flex flex-col gap-4",children:[c.length>0?(0,s.jsxs)("div",{role:"status",className:"rounded border-2 border-destructive/40 bg-destructive/10 px-3 py-2 text-sm",children:[(0,s.jsxs)("p",{className:"font-medium text-destructive",children:[c.length," issue",1===c.length?"":"s"," loading work items"]}),(0,s.jsx)("ul",{className:"mt-2 flex flex-col gap-1 font-mono text-xs text-muted-foreground",children:c.map(e=>(0,s.jsxs)("li",{children:[(0,k._)(e.filePath),": ",e.message]},`${e.filePath}:${e.message}`))})]}):null,Y?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(h.n,{searchId:`workitems-search-${l.id}`,query:_,onQueryChange:$,hideCompleted:S,onHideCompletedChange:P,parentOptions:B,parentKeys:A,onParentKeysChange:I,tagOptions:R,selectedTags:M,onSelectedTagsChange:T}),0===Z.length?(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:J?"No work items match the current search or filters.":"No stories or epic-direct tasks on this board yet."}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.XI,{children:[(0,s.jsx)(n.A0,{children:(0,s.jsxs)(n.Hj,{children:[(0,s.jsx)(n.nd,{className:"w-10"}),(0,s.jsx)(f.T,{label:"ID",sortKey:"id",activeKey:W?.key??null,direction:W?.direction??null,onSort:L}),(0,s.jsx)(f.T,{label:"Type",sortKey:"type",activeKey:W?.key??null,direction:W?.direction??null,onSort:L}),(0,s.jsx)(f.T,{label:"Title",sortKey:"title",activeKey:W?.key??null,direction:W?.direction??null,onSort:L}),(0,s.jsx)(f.T,{label:"Epic",sortKey:"epic",activeKey:W?.key??null,direction:W?.direction??null,onSort:L}),(0,s.jsx)(f.T,{label:"Size",sortKey:"size",activeKey:W?.key??null,direction:W?.direction??null,onSort:L}),(0,s.jsx)(f.T,{label:"People",sortKey:"people",activeKey:W?.key??null,direction:W?.direction??null,onSort:L,className:"w-16 text-center"}),(0,s.jsx)(f.T,{label:"Priority",sortKey:"priority",activeKey:W?.key??null,direction:W?.direction??null,onSort:L,align:"center"}),(0,s.jsx)(f.T,{label:"Status",sortKey:"status",activeKey:W?.key??null,direction:W?.direction??null,onSort:L,align:"center"})]})}),(0,s.jsx)(n.BF,{children:H.map(e=>{let t="story"===e.kind?"story":"item";return(0,s.jsxs)(n.Hj,{children:[(0,s.jsx)(n.nA,{className:"w-10 pr-0",children:(0,s.jsx)(b.CP,{itemRef:{kind:t,id:e.id,title:e.title,filePath:e.filePath,itemType:"task"===e.kind||"bug"===e.kind?e.kind:void 0}})}),(0,s.jsx)(n.nA,{children:(0,s.jsx)(x.nU,{id:e.id,created:e.created})}),(0,s.jsx)(n.nA,{children:(0,s.jsx)(d.wF,{type:e.kind})}),(0,s.jsx)(n.nA,{className:"max-w-[16rem] whitespace-normal font-medium",children:e.title}),(0,s.jsx)(n.nA,{children:(0,s.jsx)(u,{id:e.epicId,title:e.epicTitle})}),(0,s.jsx)(n.nA,{children:(0,s.jsx)(x.Aw,{size:e.size,points:e.points})}),(0,s.jsx)(n.nA,{className:"text-center",children:(0,s.jsx)("div",{className:"flex justify-center",children:(0,s.jsx)(j.O,{reporters:e.reporters,resolvers:e.resolvers})})}),(0,s.jsx)(n.nA,{className:"text-center",children:(0,s.jsx)("div",{className:"inline-flex w-full justify-center",children:(0,s.jsx)(d.YJ,{priority:e.priority})})}),(0,s.jsx)(n.nA,{className:"text-center",children:(0,s.jsx)("div",{className:"inline-flex w-full justify-center",children:"story"===e.kind&&e.workItemCount>0?(0,s.jsx)(m.P,{done:e.doneWorkItemCount,total:e.workItemCount}):(0,s.jsx)(x.Bm,{status:e.status,solvedAt:e.completedAt})})})]},`${l.id}:${e.kind}:${e.id}:${e.filePath}`)})})]}),(0,s.jsx)(p.r,{page:U,totalPages:G,totalCount:q,pageSize:V,onPageChange:X,onPageSizeChange:Q})]})]}):(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"No stories or epic-direct tasks on this board yet."})]})]})}},91337:(e,t,r)=>{"use strict";r.d(t,{cn:()=>n});var s=r(29722),a=r(622);function n(...e){return(0,a.QP)((0,s.$)(e))}},91459:(e,t,r)=>{"use strict";r.d(t,{Bc:()=>m,ZI:()=>p,k$:()=>h,m_:()=>x});var s=r(95155),a=r(3683),n=r(11412),i=r(95602),l=r(75314),o=r(93295),d=r(57991),c=r(57353),u=r(91337);function m({delay:e=0,...t}){return(0,s.jsx)(a.B,{"data-slot":"tooltip-provider",delay:e,...t})}function x({...e}){return(0,s.jsx)(n.s,{"data-slot":"tooltip",...e})}function h({...e}){return(0,s.jsx)(i.k,{"data-slot":"tooltip-trigger",...e})}function p({className:e,side:t="top",sideOffset:r=4,align:a="center",alignOffset:n=0,children:i,...m}){return(0,s.jsx)(l.K,{children:(0,s.jsx)(o.o,{align:a,alignOffset:n,side:t,sideOffset:r,className:"isolate z-50",children:(0,s.jsxs)(d.o,{"data-slot":"tooltip-content",className:(0,u.cn)("z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...m,children:[i,(0,s.jsx)(c.P,{className:"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5"})]})})})}},95885:(e,t,r)=>{"use strict";r.d(t,{Z7:()=>d,eu:()=>l,q5:()=>o});var s=r(95155);r(12115);var a=r(513),n=r(20941),i=r(91337);function l({className:e,size:t="default",...r}){return(0,s.jsx)(a.C,{"data-slot":"avatar","data-size":t,className:(0,i.cn)("group/avatar relative flex size-8 shrink-0 rounded-full border-2 select-none data-[size=lg]:size-10 data-[size=sm]:size-6",e),...r})}function o({className:e,...t}){return(0,s.jsx)(n.q,{"data-slot":"avatar-fallback",className:(0,i.cn)("flex size-full items-center justify-center rounded-full bg-muted font-head text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs",e),...t})}function d({className:e,...t}){return(0,s.jsx)("div",{"data-slot":"avatar-group",className:(0,i.cn)("group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background",e),...t})}},97077:(e,t,r)=>{"use strict";r.d(t,{P:()=>a,x:()=>s});let s="/taskmark-snapshot.json";function a(e,t){return`${e}::${t}`}}},e=>{e.O(0,[701,669,441,794,358],()=>e(e.s=38636)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[167,756,819,851,896,974,988],{84441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[620],{4474:(e,t,a)=>{"use strict";a.d(t,{$:()=>i,r:()=>d});var r=a(95155),s=a(35684),o=a(18460),n=a(91337);let d=(0,o.F)((0,n.cn)("group/button font-head font-medium inline-flex cursor-pointer items-center justify-center gap-2 rounded whitespace-nowrap select-none transition-all duration-200","disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-60","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary aria-invalid:border-destructive","[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"),{variants:{variant:{default:"border-2 border-black bg-primary text-primary-foreground shadow-md transition duration-200 hover:translate-y-1 hover:bg-primary-hover hover:shadow active:translate-x-1 active:translate-y-2 active:shadow-none",secondary:"border-2 border-black bg-secondary text-secondary-foreground shadow-md transition duration-200 hover:translate-y-1 hover:bg-secondary-hover hover:shadow active:translate-x-1 active:translate-y-2 active:shadow-none",destructive:"border-2 border-black bg-destructive text-destructive-foreground shadow-md transition duration-200 hover:translate-y-1 hover:bg-destructive/90 hover:shadow active:translate-x-1 active:translate-y-2 active:shadow-none",outline:"border-2 bg-transparent shadow-md transition duration-200 hover:translate-y-1 hover:shadow active:translate-x-1 active:translate-y-2 active:shadow-none",ghost:"bg-transparent hover:bg-accent",link:"bg-transparent hover:underline"},size:{default:"px-4 py-1.5 text-base",xs:"px-2 py-0.5 text-xs",sm:"px-3 py-1 text-sm",lg:"px-6 py-2 text-base lg:px-8 lg:py-3 lg:text-lg",icon:"p-2","icon-xs":"p-1","icon-sm":"p-1.5","icon-lg":"p-3"}},defaultVariants:{variant:"default",size:"default"}});function i({className:e,variant:t="default",size:a="default",...o}){return(0,r.jsx)(s.$,{"data-slot":"button","data-variant":t,"data-size":a,className:(0,n.cn)(d({variant:t,size:a,className:e})),...o})}},79984:(e,t,a)=>{"use strict";a.d(t,{BT:()=>i,Wu:()=>l,X9:()=>c,ZB:()=>d,Zp:()=>o,aR:()=>n,wL:()=>u});var r=a(95155);a(12115);var s=a(91337);function o({className:e,size:t="default",...a}){return(0,r.jsx)("div",{"data-slot":"card","data-size":t,className:(0,s.cn)("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded border-2 bg-card py-(--card-spacing) text-sm text-card-foreground shadow-md [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",e),...a})}function n({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"card-header",className:(0,s.cn)("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)",e),...t})}function d({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"card-title",className:(0,s.cn)("text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",e),...t})}function i({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"card-description",className:(0,s.cn)("text-sm text-muted-foreground",e),...t})}function c({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"card-action",className:(0,s.cn)("col-start-2 row-span-2 row-start-1 self-start justify-self-end",e),...t})}function l({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"card-content",className:(0,s.cn)("px-(--card-spacing)",e),...t})}function u({className:e,...t}){return(0,r.jsx)("div",{"data-slot":"card-footer",className:(0,s.cn)("flex items-center rounded-b-xl border-t-2 bg-muted/50 p-(--card-spacing)",e),...t})}},91337:(e,t,a)=>{"use strict";a.d(t,{cn:()=>o});var r=a(29722),s=a(622);function o(...e){return(0,s.QP)((0,r.$)(e))}},93511:(e,t,a)=>{Promise.resolve().then(a.bind(a,93986)),Promise.resolve().then(a.t.bind(a,98500,23))},93986:(e,t,a)=>{"use strict";a.d(t,{SetupWizard:()=>f});var r=a(95155),s=a(12115),o=a(4474),n=a(79984),d=a(9339);let i=(0,d.createServerReference)("60c1b804c85b496a5a4268cadf2d53c67586fb1686",d.callServer,void 0,d.findSourceMapURL,"previewMasterFolder"),c=(0,d.createServerReference)("607f0d919c1cf80e0c8d9f1dcb6541718e94e60ffb",d.callServer,void 0,d.findSourceMapURL,"saveMasterFolder"),l=(0,d.createServerReference)("007c68ee4611c2a0d55fb6f7eb65b2f96bfc714a7e",d.callServer,void 0,d.findSourceMapURL,"pickMasterFolder"),u={},m={};function f({initialPath:e="",adding:t=!1,hasExistingProjects:a=!1}){let[d,p]=(0,s.useState)(e),[h,x]=(0,s.useState)(null),[v,b]=(0,s.useTransition)(),[g,j,w]=(0,s.useActionState)(i,u),[y,N,k]=(0,s.useActionState)(c,m);(0,s.useEffect)(()=>{g.masterPath&&p(g.masterPath)},[g.masterPath]);let S=y.error??g.error??h??void 0,z=g.projects,P=d.trim().length>0,_=w||k||v;return(0,r.jsxs)(n.Zp,{className:"w-full max-w-xl border-2 shadow-lg",children:[(0,r.jsxs)(n.aR,{children:[(0,r.jsx)(n.ZB,{className:"font-head text-2xl tracking-tight",children:t?"Add a project workspace":"Set up your workspace"}),(0,r.jsx)(n.BT,{className:"text-base leading-relaxed",children:t?"Choose another master folder. Newly found boards are added to your project list; existing ones stay.":(0,r.jsxs)(r.Fragment,{children:["Choose a master folder. Taskmark will look inside its subfolders for nested"," ",(0,r.jsx)("code",{className:"font-mono text-sm",children:"taskmark/"})," boards or dedicated"," ",(0,r.jsx)("code",{className:"font-mono text-sm",children:"*-taskmark"})," project folders."]})})]}),(0,r.jsxs)(n.Wu,{className:"flex flex-col gap-4",children:[(0,r.jsxs)("form",{action:j,className:"flex flex-col gap-3",children:[(0,r.jsx)("label",{htmlFor:"masterPath",className:"text-sm font-medium",children:"Master folder path"}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-stretch",children:[(0,r.jsx)("input",{id:"masterPath",name:"masterPath",value:d,onChange:e=>p(e.target.value),placeholder:"/Users/you/Projects/my-workspace",autoComplete:"off",spellCheck:!1,className:"w-full min-w-0 flex-1 rounded border-2 border-border bg-input px-3 py-2 font-mono text-sm shadow-sm outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring"}),(0,r.jsx)(o.$,{type:"button",variant:"secondary",disabled:_,onClick:function(){x(null),b(async()=>{let e=await l();e.error?x(e.error):e.path&&p(e.path)})},className:"shrink-0 sm:self-stretch",children:v?"Opening…":"Browse…"})]}),(0,r.jsx)("div",{className:"flex flex-wrap gap-2",children:(0,r.jsx)(o.$,{type:"submit",variant:"outline",disabled:_||!d.trim(),children:w?"Scanning…":"Find projects"})})]}),S?(0,r.jsx)("p",{role:"alert",className:"rounded border-2 border-destructive bg-destructive/10 px-3 py-2 text-sm text-destructive",children:S}):null,z&&z.length>0?(0,r.jsxs)("div",{className:"rounded border-2 border-border bg-muted/40 px-3 py-3",children:[(0,r.jsxs)("p",{className:"mb-2 text-sm font-medium",children:["Found ",z.length," Taskmark project",1===z.length?"":"s",a?" to add":""]}),(0,r.jsx)("ul",{className:"flex flex-col gap-2",children:z.map(e=>(0,r.jsx)("li",{className:"text-sm font-medium text-foreground",children:e.name},e.id))})]}):null]}),(0,r.jsx)(n.wL,{className:"justify-end gap-2",children:(0,r.jsxs)("form",{action:N,children:[(0,r.jsx)("input",{type:"hidden",name:"masterPath",value:d}),(0,r.jsx)(o.$,{type:"submit",disabled:!P||_,size:"lg",children:k?"Saving…":t?"Add to project list":"Continue"})]})})]})}}},e=>{e.O(0,[701,441,794,358],()=>e(e.s=93511)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[167,756,819,851,896,974,988],{84441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[167,756,819,851,896,974,988],{84441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[167,756,819,851,896,974,988],{84441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[167,756,819,851,896,974,988],{84441:()=>{}},_=>{_.O(0,[441,794,358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(()=>{"use strict";var e,t,r,o,n,i,a,u,l={},c={};function s(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={exports:{}},o=!0;try{l[e].call(r.exports,r,r.exports,s),o=!1}finally{o&&delete c[e]}return r.exports}s.m=l,e=[],s.O=(t,r,o,n)=>{if(r){n=n||0;for(var i=e.length;i>0&&e[i-1][2]>n;i--)e[i]=e[i-1];e[i]=[r,o,n];return}for(var a=1/0,i=0;i<e.length;i++){for(var[r,o,n]=e[i],u=!0,l=0;l<r.length;l++)(!1&n||a>=n)&&Object.keys(s.O).every(e=>s.O[e](r[l]))?r.splice(l--,1):(u=!1,n<a&&(a=n));if(u){e.splice(i--,1);var c=o();void 0!==c&&(t=c)}}return t},s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,s.t=function(e,o){if(1&o&&(e=this(e)),8&o||"object"==typeof e&&e&&(4&o&&e.__esModule||16&o&&"function"==typeof e.then))return e;var n=Object.create(null);s.r(n);var i={};t=t||[null,r({}),r([]),r(r)];for(var a=2&o&&e;"object"==typeof a&&!~t.indexOf(a);a=r(a))Object.getOwnPropertyNames(a).forEach(t=>i[t]=()=>e[t]);return i.default=()=>e,s.d(n,i),n},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,r)=>(s.f[r](e,t),t),[])),s.u=e=>"static/chunks/"+e+".e9139a9ea6eb36b9.js",s.miniCssF=e=>{},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},s.l=(e,t,r,n)=>{if(o[e])return void o[e].push(t);if(void 0!==r)for(var i,a,u=document.getElementsByTagName("script"),l=0;l<u.length;l++){var c=u[l];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")=="_N_E:"+r){i=c;break}}i||(a=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,s.nc&&i.setAttribute("nonce",s.nc),i.setAttribute("data-webpack","_N_E:"+r),i.src=s.tu(e)),o[e]=[t];var f=(t,r)=>{i.onerror=i.onload=null,clearTimeout(d);var n=o[e];if(delete o[e],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach(e=>e(r)),t)return t(r)},d=setTimeout(f.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),a&&document.head.appendChild(i)},s.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.tt=()=>(void 0===n&&(n={createScriptURL:e=>e},"u">typeof trustedTypes&&trustedTypes.createPolicy&&(n=trustedTypes.createPolicy("nextjs#bundler",n))),n),s.tu=e=>s.tt().createScriptURL(e),s.p="/_next/",i={68:0,538:0,513:0},s.f.j=(e,t)=>{var r=s.o(i,e)?i[e]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(513|538|68)$/.test(e))i[e]=0;else{var o=new Promise((t,o)=>r=i[e]=[t,o]);t.push(r[2]=o);var n=s.p+s.u(e),a=Error();s.l(n,t=>{if(s.o(i,e)&&(0!==(r=i[e])&&(i[e]=void 0),r)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;a.message="Loading chunk "+e+" failed.\n("+o+": "+n+")",a.name="ChunkLoadError",a.type=o,a.request=n,r[1](a)}},"chunk-"+e,e)}},s.O.j=e=>0===i[e],a=(e,t)=>{var r,o,[n,a,u]=t,l=0;if(n.some(e=>0!==i[e])){for(r in a)s.o(a,r)&&(s.m[r]=a[r]);if(u)var c=u(s)}for(e&&e(t);l<n.length;l++)o=n[l],s.o(i,o)&&i[o]&&i[o][0](),i[o]=0;return s.O(c)},(u=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(a.bind(null,0)),u.push=a.bind(null,u.push.bind(u))})();
|
/package/dist/prod-next/static/{wbcgYS3Jw87KqhnA9ttOL → yyRnYAFQrJjF5_b5ZIeqh}/_buildManifest.js
RENAMED
|
File without changes
|