@taskmark/ui 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (691) hide show
  1. package/README.md +17 -5
  2. package/app/board/actions.ts +62 -0
  3. package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/app → app}/board/page.tsx +13 -0
  4. package/app/layout.tsx +87 -0
  5. package/{dist/standalone/dist/standalone/dist/standalone/app → app}/page.tsx +4 -0
  6. package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/app → app}/setup/page.tsx +5 -0
  7. package/bin/taskmark.js +59 -13
  8. package/{dist/standalone/dist/standalone/components → components}/board/project-status-metrics-strip.tsx +4 -2
  9. package/{dist/standalone/dist/standalone/app/board/page.tsx → components/board/static-board-app.tsx} +35 -104
  10. package/{dist/standalone/dist/standalone/dist/standalone/components → components}/board/work-item-sheet.tsx +37 -4
  11. package/dist/standalone/.next/BUILD_ID +1 -1
  12. package/dist/standalone/.next/build-manifest.json +8 -7
  13. package/dist/standalone/.next/required-server-files.json +6 -0
  14. package/dist/standalone/.next/server/app/_global-error/page/build-manifest.json +5 -4
  15. package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  16. package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  17. package/dist/standalone/.next/server/app/_global-error.html +1 -1
  18. package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
  19. package/dist/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  20. package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  21. package/dist/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  22. package/dist/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  23. package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  24. package/dist/standalone/.next/server/app/_not-found/page/build-manifest.json +5 -4
  25. package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  26. package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  27. package/dist/standalone/.next/server/app/_not-found.html +1 -1
  28. package/dist/standalone/.next/server/app/_not-found.rsc +4 -4
  29. package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  30. package/dist/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  31. package/dist/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  32. package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  33. package/dist/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  34. package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  35. package/dist/standalone/.next/server/app/board/page/build-manifest.json +5 -4
  36. package/dist/standalone/.next/server/app/board/page/server-reference-manifest.json +6 -6
  37. package/dist/standalone/.next/server/app/board/page.js +3 -3
  38. package/dist/standalone/.next/server/app/board/page.js.nft.json +1 -1
  39. package/dist/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  40. package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  41. package/dist/standalone/.next/server/app/page/build-manifest.json +5 -4
  42. package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
  43. package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  44. package/dist/standalone/.next/server/app/setup/page/build-manifest.json +5 -4
  45. package/dist/standalone/.next/server/app/setup/page.js +1 -1
  46. package/dist/standalone/.next/server/app/setup/page.js.nft.json +1 -1
  47. package/dist/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  48. package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__056osos._.js +3 -0
  49. package/dist/standalone/.next/server/chunks/ssr/{[root-of-the-server]__03_ho7w._.js → [root-of-the-server]__09zm1qv._.js} +5 -5
  50. package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gn-ti0._.js +1 -1
  51. package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__0op8wkj._.js +1 -1
  52. package/dist/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ptadz9._.js → [root-of-the-server]__0srwu25._.js} +3 -3
  53. package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zq2v_u._.js +1 -1
  54. package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__12ufd6u._.js +6 -0
  55. package/dist/standalone/.next/server/chunks/ssr/{[root-of-the-server]__10pik1x._.js → [root-of-the-server]__18cyjiz._.js} +2 -2
  56. package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__1ig72i1._.js +2 -2
  57. package/dist/standalone/.next/server/chunks/ssr/_05k6qx-._.js +3 -0
  58. package/dist/standalone/.next/server/chunks/ssr/_0aho3h6._.js +1 -1
  59. package/dist/standalone/.next/server/chunks/ssr/_0xl0vrn._.js +3 -0
  60. package/dist/standalone/.next/server/chunks/ssr/_17p0g27._.js +3 -0
  61. package/dist/standalone/.next/server/chunks/ssr/_1ln4p7u._.js +1 -1
  62. package/dist/standalone/.next/server/chunks/ssr/_1nr_jtr._.js +3 -0
  63. package/dist/standalone/.next/server/chunks/ssr/_1qgmrdc._.js +3 -0
  64. package/dist/standalone/.next/server/chunks/ssr/{_1u3jg4m._.js → _1yb3kog._.js} +1 -1
  65. package/dist/standalone/.next/server/chunks/ssr/app_board_actions_ts_0f5ys15._.js +3 -0
  66. package/dist/standalone/.next/server/chunks/ssr/node_modules_0h91jdk._.js +1 -1
  67. package/dist/standalone/.next/server/middleware-build-manifest.js +8 -7
  68. package/dist/standalone/.next/server/pages/404.html +1 -1
  69. package/dist/standalone/.next/server/pages/500.html +1 -1
  70. package/dist/standalone/.next/server/server-reference-manifest.js +1 -1
  71. package/dist/standalone/.next/server/server-reference-manifest.json +6 -6
  72. package/dist/standalone/.next/static/chunks/018wh8zp6bjth.js +1 -0
  73. package/dist/standalone/.next/static/chunks/{3-2jy1bmsuo5l.js → 01fxdzfqp-khv.js} +1 -1
  74. package/dist/standalone/.next/static/chunks/06t7fr3j7axc1.js +1 -0
  75. package/dist/standalone/.next/static/chunks/0g8oss7mvdgy2.js +1 -0
  76. package/dist/standalone/.next/static/chunks/{42tcxcpa-z9hi.js → 0tckbkthn_lz5.js} +1 -1
  77. package/dist/standalone/.next/static/chunks/1b4b87nf50pwj.js +1 -0
  78. package/dist/standalone/.next/static/chunks/1etzx8zdgoji7.js +2 -0
  79. package/dist/standalone/.next/static/chunks/1ob9-gyputghy.js +1 -0
  80. package/dist/standalone/.next/static/chunks/{3w2ohvdljvkpj.js → 2r5ngr5zaimmw.js} +1 -1
  81. package/dist/standalone/.next/static/chunks/2z9l0n877if48.css +1 -0
  82. package/dist/standalone/.next/static/chunks/40bad20ki94w3.js +1 -0
  83. package/dist/standalone/.next/static/chunks/turbopack-3ekz2izuoc92r.js +1 -0
  84. package/dist/standalone/README.md +17 -5
  85. package/dist/standalone/app/board/actions.ts +24 -173
  86. package/dist/standalone/app/board/page.tsx +13 -0
  87. package/dist/standalone/app/layout.tsx +50 -5
  88. package/dist/standalone/app/page.tsx +4 -0
  89. package/dist/standalone/app/setup/page.tsx +5 -0
  90. package/dist/standalone/bin/taskmark.js +59 -13
  91. package/dist/standalone/components/board/project-status-metrics-strip.tsx +4 -2
  92. package/dist/standalone/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/board/page.tsx → components/board/static-board-app.tsx} +35 -104
  93. package/dist/standalone/components/board/work-item-sheet.tsx +37 -4
  94. package/dist/standalone/lib/site.ts +8 -0
  95. package/dist/standalone/lib/taskmark/build-snapshot.ts +198 -0
  96. package/dist/standalone/lib/taskmark/cookies.ts +16 -0
  97. package/dist/standalone/{dist/standalone/dist/standalone/dist/standalone/app/board/actions.ts → lib/taskmark/detail-load.ts} +59 -90
  98. package/dist/standalone/lib/taskmark/load-snapshot-server.ts +11 -0
  99. package/dist/standalone/lib/taskmark/project-metrics-shared.ts +21 -0
  100. package/dist/standalone/lib/taskmark/project-metrics.ts +6 -18
  101. package/dist/standalone/lib/taskmark/snapshot-client.ts +67 -0
  102. package/dist/standalone/lib/taskmark/snapshot-types.ts +37 -0
  103. package/dist/standalone/lib/taskmark/static-mode.ts +15 -0
  104. package/dist/standalone/next.config.ts +13 -2
  105. package/dist/standalone/package-lock.json +541 -232
  106. package/dist/standalone/package.json +25 -11
  107. package/dist/standalone/public/apple-touch-icon.png +0 -0
  108. package/dist/standalone/public/favicon-96x96.png +0 -0
  109. package/dist/standalone/public/favicon.ico +0 -0
  110. package/dist/standalone/public/favicon.svg +1 -0
  111. package/dist/standalone/public/og/og-default.png +0 -0
  112. package/dist/standalone/public/site.webmanifest +21 -0
  113. package/dist/standalone/public/taskmark-snapshot.json +1 -0
  114. package/dist/standalone/public/web-app-manifest-192x192.png +0 -0
  115. package/dist/standalone/public/web-app-manifest-512x512.png +0 -0
  116. package/dist/standalone/scripts/build-static.mjs +182 -0
  117. package/dist/standalone/scripts/write-board-snapshot.ts +20 -0
  118. package/dist/standalone/server.js +1 -1
  119. package/dist/standalone/tsconfig.json +1 -1
  120. package/dist/standalone/tsconfig.tsbuildinfo +1 -1
  121. package/dist/standalone/yarn.lock +56 -0
  122. package/lib/site.ts +8 -0
  123. package/lib/taskmark/build-snapshot.ts +198 -0
  124. package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/cookies.ts +16 -0
  125. package/{dist/standalone/dist/standalone/dist/standalone/app/board/actions.ts → lib/taskmark/detail-load.ts} +59 -90
  126. package/lib/taskmark/load-snapshot-server.ts +11 -0
  127. package/lib/taskmark/project-metrics-shared.ts +21 -0
  128. package/{dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/project-metrics.ts +6 -18
  129. package/lib/taskmark/snapshot-client.ts +67 -0
  130. package/lib/taskmark/snapshot-types.ts +37 -0
  131. package/lib/taskmark/static-mode.ts +15 -0
  132. package/next.config.ts +19 -0
  133. package/package.json +25 -11
  134. package/public/apple-touch-icon.png +0 -0
  135. package/public/favicon-96x96.png +0 -0
  136. package/public/favicon.ico +0 -0
  137. package/public/favicon.svg +1 -0
  138. package/public/og/og-default.png +0 -0
  139. package/public/site.webmanifest +21 -0
  140. package/public/taskmark-snapshot.json +1 -0
  141. package/public/web-app-manifest-192x192.png +0 -0
  142. package/public/web-app-manifest-512x512.png +0 -0
  143. package/scripts/build-static.mjs +182 -0
  144. package/scripts/write-board-snapshot.ts +20 -0
  145. package/{dist/standalone/dist/standalone/dist/standalone/tsconfig.json → tsconfig.json} +1 -1
  146. package/dist/standalone/.next/server/chunks/ssr/[externals]_node_path_1pmhwj3._.js +0 -3
  147. package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ahb350._.js +0 -6
  148. package/dist/standalone/.next/server/chunks/ssr/_0d5ymu2._.js +0 -3
  149. package/dist/standalone/.next/server/chunks/ssr/_0ltlf7m._.js +0 -3
  150. package/dist/standalone/.next/server/chunks/ssr/_1ewgzdg._.js +0 -3
  151. package/dist/standalone/.next/server/chunks/ssr/_1y1lrmo._.js +0 -3
  152. package/dist/standalone/.next/server/chunks/ssr/components_setup_setup-wizard_tsx_19mu5ru._.js +0 -3
  153. package/dist/standalone/.next/static/chunks/12kmjf-wk-m-0.js +0 -2
  154. package/dist/standalone/.next/static/chunks/15g-piqywkucg.css +0 -1
  155. package/dist/standalone/.next/static/chunks/2ao0tkrplrup7.js +0 -1
  156. package/dist/standalone/.next/static/chunks/3a8w_qvn2gpqt.js +0 -1
  157. package/dist/standalone/.next/static/chunks/3sz1w0ssobbwn.js +0 -1
  158. package/dist/standalone/.next/static/chunks/turbopack-0xo65f5j55qxe.js +0 -1
  159. package/dist/standalone/dist/standalone/AGENTS.md +0 -5
  160. package/dist/standalone/dist/standalone/CLAUDE.md +0 -1
  161. package/dist/standalone/dist/standalone/README.md +0 -74
  162. package/dist/standalone/dist/standalone/app/board/actions.ts +0 -211
  163. package/dist/standalone/dist/standalone/app/layout.tsx +0 -42
  164. package/dist/standalone/dist/standalone/app/page.tsx +0 -13
  165. package/dist/standalone/dist/standalone/app/setup/page.tsx +0 -62
  166. package/dist/standalone/dist/standalone/bin/lib/resolve-board.mjs +0 -108
  167. package/dist/standalone/dist/standalone/bin/taskmark.js +0 -232
  168. package/dist/standalone/dist/standalone/components/board/work-item-sheet.tsx +0 -604
  169. package/dist/standalone/dist/standalone/dist/standalone/AGENTS.md +0 -5
  170. package/dist/standalone/dist/standalone/dist/standalone/CLAUDE.md +0 -1
  171. package/dist/standalone/dist/standalone/dist/standalone/README.md +0 -74
  172. package/dist/standalone/dist/standalone/dist/standalone/app/board/page.tsx +0 -271
  173. package/dist/standalone/dist/standalone/dist/standalone/app/favicon.ico +0 -0
  174. package/dist/standalone/dist/standalone/dist/standalone/app/globals.css +0 -128
  175. package/dist/standalone/dist/standalone/dist/standalone/app/layout.tsx +0 -42
  176. package/dist/standalone/dist/standalone/dist/standalone/app/setup/actions.ts +0 -113
  177. package/dist/standalone/dist/standalone/dist/standalone/app/setup/page.tsx +0 -62
  178. package/dist/standalone/dist/standalone/dist/standalone/bin/lib/resolve-board.mjs +0 -108
  179. package/dist/standalone/dist/standalone/dist/standalone/bin/taskmark.js +0 -232
  180. package/dist/standalone/dist/standalone/dist/standalone/components/board/app-bar.tsx +0 -99
  181. package/dist/standalone/dist/standalone/dist/standalone/components/board/attribution-avatars.tsx +0 -176
  182. package/dist/standalone/dist/standalone/dist/standalone/components/board/child-progress-bar.tsx +0 -40
  183. package/dist/standalone/dist/standalone/dist/standalone/components/board/date-tooltip.tsx +0 -93
  184. package/dist/standalone/dist/standalone/dist/standalone/components/board/detail-children-list.tsx +0 -70
  185. package/dist/standalone/dist/standalone/dist/standalone/components/board/epic-list.tsx +0 -363
  186. package/dist/standalone/dist/standalone/dist/standalone/components/board/hide-completed-toggle.tsx +0 -39
  187. package/dist/standalone/dist/standalone/dist/standalone/components/board/list-filters-bar.tsx +0 -78
  188. package/dist/standalone/dist/standalone/dist/standalone/components/board/list-pagination.tsx +0 -124
  189. package/dist/standalone/dist/standalone/dist/standalone/components/board/list-search-box.tsx +0 -59
  190. package/dist/standalone/dist/standalone/dist/standalone/components/board/list-view-switcher.tsx +0 -74
  191. package/dist/standalone/dist/standalone/dist/standalone/components/board/markdown-content.tsx +0 -91
  192. package/dist/standalone/dist/standalone/dist/standalone/components/board/metric-stat-card.tsx +0 -55
  193. package/dist/standalone/dist/standalone/dist/standalone/components/board/overall-work-items-list.tsx +0 -356
  194. package/dist/standalone/dist/standalone/dist/standalone/components/board/parent-filter-combobox.tsx +0 -89
  195. package/dist/standalone/dist/standalone/dist/standalone/components/board/parent-tag-badge.tsx +0 -46
  196. package/dist/standalone/dist/standalone/dist/standalone/components/board/project-contributors-panel.tsx +0 -86
  197. package/dist/standalone/dist/standalone/dist/standalone/components/board/project-status-metrics-strip.tsx +0 -88
  198. package/dist/standalone/dist/standalone/dist/standalone/components/board/sortable-table-head.tsx +0 -69
  199. package/dist/standalone/dist/standalone/dist/standalone/components/board/status-badge.tsx +0 -82
  200. package/dist/standalone/dist/standalone/dist/standalone/components/board/story-list.tsx +0 -336
  201. package/dist/standalone/dist/standalone/dist/standalone/components/board/tags-multiselect-filter.tsx +0 -70
  202. package/dist/standalone/dist/standalone/dist/standalone/components/board/task-list.tsx +0 -307
  203. package/dist/standalone/dist/standalone/dist/standalone/components/board/timeframe-filter.tsx +0 -676
  204. package/dist/standalone/dist/standalone/dist/standalone/components/board/work-item-detail-body.tsx +0 -392
  205. package/dist/standalone/dist/standalone/dist/standalone/components/board/work-items-list.tsx +0 -372
  206. package/dist/standalone/dist/standalone/dist/standalone/components/brand-logo.tsx +0 -39
  207. package/dist/standalone/dist/standalone/dist/standalone/components/setup/setup-wizard.tsx +0 -180
  208. package/dist/standalone/dist/standalone/dist/standalone/components/ui/alert-dialog.tsx +0 -187
  209. package/dist/standalone/dist/standalone/dist/standalone/components/ui/alert.tsx +0 -101
  210. package/dist/standalone/dist/standalone/dist/standalone/components/ui/avatar.tsx +0 -109
  211. package/dist/standalone/dist/standalone/dist/standalone/components/ui/badge.tsx +0 -52
  212. package/dist/standalone/dist/standalone/dist/standalone/components/ui/breadcrumb.tsx +0 -122
  213. package/dist/standalone/dist/standalone/dist/standalone/components/ui/button.tsx +0 -64
  214. package/dist/standalone/dist/standalone/dist/standalone/components/ui/calendar.tsx +0 -237
  215. package/dist/standalone/dist/standalone/dist/standalone/components/ui/card.tsx +0 -103
  216. package/dist/standalone/dist/standalone/dist/standalone/components/ui/combobox.tsx +0 -297
  217. package/dist/standalone/dist/standalone/dist/standalone/components/ui/dialog.tsx +0 -159
  218. package/dist/standalone/dist/standalone/dist/standalone/components/ui/field.tsx +0 -238
  219. package/dist/standalone/dist/standalone/dist/standalone/components/ui/input-group.tsx +0 -158
  220. package/dist/standalone/dist/standalone/dist/standalone/components/ui/input.tsx +0 -20
  221. package/dist/standalone/dist/standalone/dist/standalone/components/ui/item.tsx +0 -201
  222. package/dist/standalone/dist/standalone/dist/standalone/components/ui/label.tsx +0 -20
  223. package/dist/standalone/dist/standalone/dist/standalone/components/ui/pagination.tsx +0 -133
  224. package/dist/standalone/dist/standalone/dist/standalone/components/ui/popover.tsx +0 -90
  225. package/dist/standalone/dist/standalone/dist/standalone/components/ui/progress.tsx +0 -83
  226. package/dist/standalone/dist/standalone/dist/standalone/components/ui/resizable.tsx +0 -55
  227. package/dist/standalone/dist/standalone/dist/standalone/components/ui/select.tsx +0 -199
  228. package/dist/standalone/dist/standalone/dist/standalone/components/ui/separator.tsx +0 -25
  229. package/dist/standalone/dist/standalone/dist/standalone/components/ui/sheet.tsx +0 -137
  230. package/dist/standalone/dist/standalone/dist/standalone/components/ui/sidebar.tsx +0 -723
  231. package/dist/standalone/dist/standalone/dist/standalone/components/ui/skeleton.tsx +0 -13
  232. package/dist/standalone/dist/standalone/dist/standalone/components/ui/slider.tsx +0 -56
  233. package/dist/standalone/dist/standalone/dist/standalone/components/ui/sonner.tsx +0 -54
  234. package/dist/standalone/dist/standalone/dist/standalone/components/ui/spinner.tsx +0 -17
  235. package/dist/standalone/dist/standalone/dist/standalone/components/ui/switch.tsx +0 -32
  236. package/dist/standalone/dist/standalone/dist/standalone/components/ui/table.tsx +0 -116
  237. package/dist/standalone/dist/standalone/dist/standalone/components/ui/tabs.tsx +0 -82
  238. package/dist/standalone/dist/standalone/dist/standalone/components/ui/textarea.tsx +0 -18
  239. package/dist/standalone/dist/standalone/dist/standalone/components/ui/tooltip.tsx +0 -66
  240. package/dist/standalone/dist/standalone/dist/standalone/components.json +0 -28
  241. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/AGENTS.md +0 -5
  242. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/CLAUDE.md +0 -1
  243. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/README.md +0 -74
  244. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/favicon.ico +0 -0
  245. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/globals.css +0 -128
  246. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/layout.tsx +0 -42
  247. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/page.tsx +0 -13
  248. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/setup/actions.ts +0 -113
  249. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/bin/lib/resolve-board.mjs +0 -108
  250. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/bin/taskmark.js +0 -232
  251. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/app-bar.tsx +0 -99
  252. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/attribution-avatars.tsx +0 -176
  253. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/child-progress-bar.tsx +0 -40
  254. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/date-tooltip.tsx +0 -93
  255. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/detail-children-list.tsx +0 -70
  256. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/epic-list.tsx +0 -363
  257. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/hide-completed-toggle.tsx +0 -39
  258. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/list-filters-bar.tsx +0 -78
  259. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/list-pagination.tsx +0 -124
  260. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/list-search-box.tsx +0 -59
  261. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/list-view-switcher.tsx +0 -74
  262. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/markdown-content.tsx +0 -91
  263. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/metric-stat-card.tsx +0 -55
  264. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/overall-work-items-list.tsx +0 -356
  265. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/parent-filter-combobox.tsx +0 -89
  266. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/parent-tag-badge.tsx +0 -46
  267. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/project-contributors-panel.tsx +0 -86
  268. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/project-status-metrics-strip.tsx +0 -88
  269. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/sortable-table-head.tsx +0 -69
  270. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/status-badge.tsx +0 -82
  271. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/story-list.tsx +0 -336
  272. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/tags-multiselect-filter.tsx +0 -70
  273. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/task-list.tsx +0 -307
  274. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/timeframe-filter.tsx +0 -676
  275. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/work-item-detail-body.tsx +0 -392
  276. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/work-item-sheet.tsx +0 -604
  277. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/work-items-list.tsx +0 -372
  278. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/brand-logo.tsx +0 -39
  279. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/setup/setup-wizard.tsx +0 -180
  280. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/alert-dialog.tsx +0 -187
  281. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/alert.tsx +0 -101
  282. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/avatar.tsx +0 -109
  283. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/badge.tsx +0 -52
  284. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/breadcrumb.tsx +0 -122
  285. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/button.tsx +0 -64
  286. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/calendar.tsx +0 -237
  287. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/card.tsx +0 -103
  288. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/combobox.tsx +0 -297
  289. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/dialog.tsx +0 -159
  290. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/field.tsx +0 -238
  291. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/input-group.tsx +0 -158
  292. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/input.tsx +0 -20
  293. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/item.tsx +0 -201
  294. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/label.tsx +0 -20
  295. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/pagination.tsx +0 -133
  296. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/popover.tsx +0 -90
  297. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/progress.tsx +0 -83
  298. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/resizable.tsx +0 -55
  299. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/select.tsx +0 -199
  300. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/separator.tsx +0 -25
  301. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/sheet.tsx +0 -137
  302. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/sidebar.tsx +0 -723
  303. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/skeleton.tsx +0 -13
  304. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/slider.tsx +0 -56
  305. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/sonner.tsx +0 -54
  306. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/spinner.tsx +0 -17
  307. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/switch.tsx +0 -32
  308. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/table.tsx +0 -116
  309. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/tabs.tsx +0 -82
  310. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/textarea.tsx +0 -18
  311. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/tooltip.tsx +0 -66
  312. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -28
  313. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/AGENTS.md +0 -5
  314. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/CLAUDE.md +0 -1
  315. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/README.md +0 -97
  316. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/board/actions.ts +0 -211
  317. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/favicon.ico +0 -0
  318. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/globals.css +0 -128
  319. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/layout.tsx +0 -42
  320. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/page.tsx +0 -13
  321. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/setup/actions.ts +0 -113
  322. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/setup/page.tsx +0 -62
  323. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/bin/lib/resolve-board.mjs +0 -108
  324. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/bin/taskmark.js +0 -230
  325. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/app-bar.tsx +0 -99
  326. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/attribution-avatars.tsx +0 -176
  327. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/child-progress-bar.tsx +0 -40
  328. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/date-tooltip.tsx +0 -93
  329. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/detail-children-list.tsx +0 -70
  330. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/epic-list.tsx +0 -363
  331. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/hide-completed-toggle.tsx +0 -39
  332. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/list-filters-bar.tsx +0 -78
  333. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/list-pagination.tsx +0 -124
  334. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/list-search-box.tsx +0 -59
  335. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/list-view-switcher.tsx +0 -74
  336. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/markdown-content.tsx +0 -91
  337. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/metric-stat-card.tsx +0 -55
  338. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/overall-work-items-list.tsx +0 -356
  339. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/parent-filter-combobox.tsx +0 -89
  340. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/parent-tag-badge.tsx +0 -46
  341. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/project-contributors-panel.tsx +0 -86
  342. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/project-status-metrics-strip.tsx +0 -88
  343. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/sortable-table-head.tsx +0 -69
  344. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/status-badge.tsx +0 -82
  345. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/story-list.tsx +0 -336
  346. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/tags-multiselect-filter.tsx +0 -70
  347. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/task-list.tsx +0 -307
  348. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/timeframe-filter.tsx +0 -676
  349. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/work-item-detail-body.tsx +0 -392
  350. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/work-item-sheet.tsx +0 -604
  351. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/board/work-items-list.tsx +0 -372
  352. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/brand-logo.tsx +0 -39
  353. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/setup/setup-wizard.tsx +0 -180
  354. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/alert-dialog.tsx +0 -187
  355. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/alert.tsx +0 -101
  356. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/avatar.tsx +0 -109
  357. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/badge.tsx +0 -52
  358. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/breadcrumb.tsx +0 -122
  359. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/button.tsx +0 -64
  360. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/calendar.tsx +0 -237
  361. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/card.tsx +0 -103
  362. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/combobox.tsx +0 -297
  363. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/dialog.tsx +0 -159
  364. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/field.tsx +0 -238
  365. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/input-group.tsx +0 -158
  366. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/input.tsx +0 -20
  367. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/item.tsx +0 -201
  368. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/label.tsx +0 -20
  369. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/pagination.tsx +0 -133
  370. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/popover.tsx +0 -90
  371. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/progress.tsx +0 -83
  372. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/resizable.tsx +0 -55
  373. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/select.tsx +0 -199
  374. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/separator.tsx +0 -25
  375. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/sheet.tsx +0 -137
  376. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/sidebar.tsx +0 -723
  377. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/skeleton.tsx +0 -13
  378. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/slider.tsx +0 -56
  379. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/sonner.tsx +0 -54
  380. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/spinner.tsx +0 -17
  381. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/switch.tsx +0 -32
  382. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/table.tsx +0 -116
  383. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/tabs.tsx +0 -82
  384. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/textarea.tsx +0 -18
  385. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/ui/tooltip.tsx +0 -66
  386. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -28
  387. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/eslint.config.mjs +0 -18
  388. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/project-metrics.ts +0 -296
  389. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/next.config.ts +0 -8
  390. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package-lock.json +0 -11201
  391. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -58
  392. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/server.js +0 -44
  393. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
  394. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.tsbuildinfo +0 -1
  395. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/yarn.lock +0 -5265
  396. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/eslint.config.mjs +0 -18
  397. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/hooks/use-mobile.ts +0 -19
  398. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/hooks/use-paginated-rows.ts +0 -54
  399. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/hooks/use-persisted-hide-completed.ts +0 -29
  400. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/hooks/use-table-sort.ts +0 -22
  401. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/format-date.ts +0 -75
  402. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/format-duration.ts +0 -72
  403. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/format-list-date.ts +0 -2
  404. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/active-project.ts +0 -16
  405. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/autoconfig.ts +0 -118
  406. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/constants.ts +0 -43
  407. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/cookies.ts +0 -153
  408. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/count-leaves.ts +0 -204
  409. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/detail-types.ts +0 -131
  410. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/discover.ts +0 -153
  411. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/epic-types.ts +0 -41
  412. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/flat-work-item-types.ts +0 -122
  413. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/frontmatter.ts +0 -45
  414. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/general-epic.ts +0 -25
  415. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/hide-completed-cookie.ts +0 -40
  416. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/identity.ts +0 -182
  417. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/item-types.ts +0 -46
  418. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/list-filters.ts +0 -327
  419. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/list-view-mode.ts +0 -137
  420. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/pagination.ts +0 -51
  421. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/parse-detail.ts +0 -227
  422. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/parse-epics.ts +0 -153
  423. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/parse-flat-lists.ts +0 -353
  424. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/parse-items.ts +0 -318
  425. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/parse-sections.ts +0 -135
  426. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/parse-stories.ts +0 -237
  427. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/pick-folder.ts +0 -141
  428. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/project-label.ts +0 -11
  429. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/project-metrics.ts +0 -296
  430. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/projects.ts +0 -55
  431. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/resolve-work-item.ts +0 -219
  432. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/story-types.ts +0 -46
  433. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/table-sort.ts +0 -344
  434. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/timeframe-filters.ts +0 -258
  435. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/timing.ts +0 -32
  436. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/types.ts +0 -28
  437. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/validate.ts +0 -72
  438. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/workspace.ts +0 -53
  439. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib/utils.ts +0 -6
  440. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/next.config.ts +0 -8
  441. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package-lock.json +0 -11682
  442. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -60
  443. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/postcss.config.mjs +0 -7
  444. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/public/file.svg +0 -1
  445. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/public/globe.svg +0 -1
  446. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/public/next.svg +0 -1
  447. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/public/tm_dark.png +0 -0
  448. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/public/tm_light.png +0 -0
  449. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/public/vercel.svg +0 -1
  450. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/public/window.svg +0 -1
  451. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/scripts/prepare-standalone.mjs +0 -50
  452. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/server.js +0 -44
  453. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
  454. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.tsbuildinfo +0 -1
  455. package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/yarn.lock +0 -5265
  456. package/dist/standalone/dist/standalone/dist/standalone/eslint.config.mjs +0 -18
  457. package/dist/standalone/dist/standalone/dist/standalone/hooks/use-mobile.ts +0 -19
  458. package/dist/standalone/dist/standalone/dist/standalone/hooks/use-paginated-rows.ts +0 -54
  459. package/dist/standalone/dist/standalone/dist/standalone/hooks/use-persisted-hide-completed.ts +0 -29
  460. package/dist/standalone/dist/standalone/dist/standalone/hooks/use-table-sort.ts +0 -22
  461. package/dist/standalone/dist/standalone/dist/standalone/lib/format-date.ts +0 -75
  462. package/dist/standalone/dist/standalone/dist/standalone/lib/format-duration.ts +0 -72
  463. package/dist/standalone/dist/standalone/dist/standalone/lib/format-list-date.ts +0 -2
  464. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/active-project.ts +0 -16
  465. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/autoconfig.ts +0 -118
  466. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/constants.ts +0 -43
  467. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/cookies.ts +0 -153
  468. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/count-leaves.ts +0 -204
  469. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/detail-types.ts +0 -131
  470. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/discover.ts +0 -153
  471. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/epic-types.ts +0 -41
  472. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/flat-work-item-types.ts +0 -122
  473. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/frontmatter.ts +0 -45
  474. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/general-epic.ts +0 -25
  475. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/hide-completed-cookie.ts +0 -40
  476. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/identity.ts +0 -182
  477. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/item-types.ts +0 -46
  478. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/list-filters.ts +0 -327
  479. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/list-view-mode.ts +0 -137
  480. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/pagination.ts +0 -51
  481. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/parse-detail.ts +0 -227
  482. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/parse-epics.ts +0 -153
  483. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/parse-flat-lists.ts +0 -353
  484. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/parse-items.ts +0 -318
  485. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/parse-sections.ts +0 -135
  486. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/parse-stories.ts +0 -237
  487. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/pick-folder.ts +0 -141
  488. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/project-label.ts +0 -11
  489. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/projects.ts +0 -55
  490. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/resolve-work-item.ts +0 -219
  491. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/story-types.ts +0 -46
  492. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/table-sort.ts +0 -344
  493. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/timeframe-filters.ts +0 -258
  494. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/timing.ts +0 -32
  495. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/types.ts +0 -28
  496. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/validate.ts +0 -72
  497. package/dist/standalone/dist/standalone/dist/standalone/lib/taskmark/workspace.ts +0 -53
  498. package/dist/standalone/dist/standalone/dist/standalone/lib/utils.ts +0 -6
  499. package/dist/standalone/dist/standalone/dist/standalone/next.config.ts +0 -8
  500. package/dist/standalone/dist/standalone/dist/standalone/package-lock.json +0 -11682
  501. package/dist/standalone/dist/standalone/dist/standalone/package.json +0 -60
  502. package/dist/standalone/dist/standalone/dist/standalone/postcss.config.mjs +0 -7
  503. package/dist/standalone/dist/standalone/dist/standalone/public/file.svg +0 -1
  504. package/dist/standalone/dist/standalone/dist/standalone/public/globe.svg +0 -1
  505. package/dist/standalone/dist/standalone/dist/standalone/public/next.svg +0 -1
  506. package/dist/standalone/dist/standalone/dist/standalone/public/tm_dark.png +0 -0
  507. package/dist/standalone/dist/standalone/dist/standalone/public/tm_light.png +0 -0
  508. package/dist/standalone/dist/standalone/dist/standalone/public/vercel.svg +0 -1
  509. package/dist/standalone/dist/standalone/dist/standalone/public/window.svg +0 -1
  510. package/dist/standalone/dist/standalone/dist/standalone/scripts/prepare-standalone.mjs +0 -50
  511. package/dist/standalone/dist/standalone/dist/standalone/server.js +0 -44
  512. package/dist/standalone/dist/standalone/dist/standalone/tsconfig.tsbuildinfo +0 -1
  513. package/dist/standalone/dist/standalone/dist/standalone/yarn.lock +0 -5265
  514. package/dist/standalone/dist/standalone/eslint.config.mjs +0 -18
  515. package/dist/standalone/dist/standalone/hooks/use-mobile.ts +0 -19
  516. package/dist/standalone/dist/standalone/hooks/use-paginated-rows.ts +0 -54
  517. package/dist/standalone/dist/standalone/hooks/use-persisted-hide-completed.ts +0 -29
  518. package/dist/standalone/dist/standalone/hooks/use-table-sort.ts +0 -22
  519. package/dist/standalone/dist/standalone/lib/format-date.ts +0 -75
  520. package/dist/standalone/dist/standalone/lib/format-duration.ts +0 -72
  521. package/dist/standalone/dist/standalone/lib/format-list-date.ts +0 -2
  522. package/dist/standalone/dist/standalone/lib/taskmark/active-project.ts +0 -16
  523. package/dist/standalone/dist/standalone/lib/taskmark/autoconfig.ts +0 -118
  524. package/dist/standalone/dist/standalone/lib/taskmark/constants.ts +0 -43
  525. package/dist/standalone/dist/standalone/lib/taskmark/cookies.ts +0 -153
  526. package/dist/standalone/dist/standalone/lib/taskmark/count-leaves.ts +0 -204
  527. package/dist/standalone/dist/standalone/lib/taskmark/detail-types.ts +0 -131
  528. package/dist/standalone/dist/standalone/lib/taskmark/discover.ts +0 -153
  529. package/dist/standalone/dist/standalone/lib/taskmark/epic-types.ts +0 -41
  530. package/dist/standalone/dist/standalone/lib/taskmark/flat-work-item-types.ts +0 -122
  531. package/dist/standalone/dist/standalone/lib/taskmark/frontmatter.ts +0 -45
  532. package/dist/standalone/dist/standalone/lib/taskmark/general-epic.ts +0 -25
  533. package/dist/standalone/dist/standalone/lib/taskmark/hide-completed-cookie.ts +0 -40
  534. package/dist/standalone/dist/standalone/lib/taskmark/identity.ts +0 -182
  535. package/dist/standalone/dist/standalone/lib/taskmark/item-types.ts +0 -46
  536. package/dist/standalone/dist/standalone/lib/taskmark/list-filters.ts +0 -327
  537. package/dist/standalone/dist/standalone/lib/taskmark/list-view-mode.ts +0 -137
  538. package/dist/standalone/dist/standalone/lib/taskmark/pagination.ts +0 -51
  539. package/dist/standalone/dist/standalone/lib/taskmark/parse-detail.ts +0 -227
  540. package/dist/standalone/dist/standalone/lib/taskmark/parse-epics.ts +0 -153
  541. package/dist/standalone/dist/standalone/lib/taskmark/parse-flat-lists.ts +0 -353
  542. package/dist/standalone/dist/standalone/lib/taskmark/parse-items.ts +0 -318
  543. package/dist/standalone/dist/standalone/lib/taskmark/parse-sections.ts +0 -135
  544. package/dist/standalone/dist/standalone/lib/taskmark/parse-stories.ts +0 -237
  545. package/dist/standalone/dist/standalone/lib/taskmark/pick-folder.ts +0 -141
  546. package/dist/standalone/dist/standalone/lib/taskmark/project-label.ts +0 -11
  547. package/dist/standalone/dist/standalone/lib/taskmark/project-metrics.ts +0 -296
  548. package/dist/standalone/dist/standalone/lib/taskmark/projects.ts +0 -55
  549. package/dist/standalone/dist/standalone/lib/taskmark/resolve-work-item.ts +0 -219
  550. package/dist/standalone/dist/standalone/lib/taskmark/story-types.ts +0 -46
  551. package/dist/standalone/dist/standalone/lib/taskmark/table-sort.ts +0 -344
  552. package/dist/standalone/dist/standalone/lib/taskmark/timeframe-filters.ts +0 -258
  553. package/dist/standalone/dist/standalone/lib/taskmark/timing.ts +0 -32
  554. package/dist/standalone/dist/standalone/lib/taskmark/types.ts +0 -28
  555. package/dist/standalone/dist/standalone/lib/taskmark/validate.ts +0 -72
  556. package/dist/standalone/dist/standalone/lib/taskmark/workspace.ts +0 -53
  557. package/dist/standalone/dist/standalone/lib/utils.ts +0 -6
  558. package/dist/standalone/dist/standalone/next.config.ts +0 -8
  559. package/dist/standalone/dist/standalone/package-lock.json +0 -11682
  560. package/dist/standalone/dist/standalone/package.json +0 -60
  561. package/dist/standalone/dist/standalone/postcss.config.mjs +0 -7
  562. package/dist/standalone/dist/standalone/public/file.svg +0 -1
  563. package/dist/standalone/dist/standalone/public/globe.svg +0 -1
  564. package/dist/standalone/dist/standalone/public/next.svg +0 -1
  565. package/dist/standalone/dist/standalone/public/tm_dark.png +0 -0
  566. package/dist/standalone/dist/standalone/public/tm_light.png +0 -0
  567. package/dist/standalone/dist/standalone/public/vercel.svg +0 -1
  568. package/dist/standalone/dist/standalone/public/window.svg +0 -1
  569. package/dist/standalone/dist/standalone/scripts/prepare-standalone.mjs +0 -50
  570. package/dist/standalone/dist/standalone/server.js +0 -44
  571. package/dist/standalone/dist/standalone/tsconfig.json +0 -34
  572. package/dist/standalone/dist/standalone/tsconfig.tsbuildinfo +0 -1
  573. package/dist/standalone/dist/standalone/yarn.lock +0 -5265
  574. package/dist/standalone/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +0 -6
  575. package/dist/standalone/node_modules/react/cjs/react.development.js +0 -1284
  576. /package/{dist/standalone/dist/standalone/app → app}/favicon.ico +0 -0
  577. /package/{dist/standalone/dist/standalone/app → app}/globals.css +0 -0
  578. /package/{dist/standalone/dist/standalone/app → app}/setup/actions.ts +0 -0
  579. /package/{dist/standalone/dist/standalone/components → components}/board/app-bar.tsx +0 -0
  580. /package/{dist/standalone/dist/standalone/components → components}/board/attribution-avatars.tsx +0 -0
  581. /package/{dist/standalone/dist/standalone/components → components}/board/child-progress-bar.tsx +0 -0
  582. /package/{dist/standalone/dist/standalone/components → components}/board/date-tooltip.tsx +0 -0
  583. /package/{dist/standalone/dist/standalone/components → components}/board/detail-children-list.tsx +0 -0
  584. /package/{dist/standalone/dist/standalone/components → components}/board/epic-list.tsx +0 -0
  585. /package/{dist/standalone/dist/standalone/components → components}/board/hide-completed-toggle.tsx +0 -0
  586. /package/{dist/standalone/dist/standalone/components → components}/board/list-filters-bar.tsx +0 -0
  587. /package/{dist/standalone/dist/standalone/components → components}/board/list-pagination.tsx +0 -0
  588. /package/{dist/standalone/dist/standalone/components → components}/board/list-search-box.tsx +0 -0
  589. /package/{dist/standalone/dist/standalone/components → components}/board/list-view-switcher.tsx +0 -0
  590. /package/{dist/standalone/dist/standalone/components → components}/board/markdown-content.tsx +0 -0
  591. /package/{dist/standalone/dist/standalone/components → components}/board/metric-stat-card.tsx +0 -0
  592. /package/{dist/standalone/dist/standalone/components → components}/board/overall-work-items-list.tsx +0 -0
  593. /package/{dist/standalone/dist/standalone/components → components}/board/parent-filter-combobox.tsx +0 -0
  594. /package/{dist/standalone/dist/standalone/components → components}/board/parent-tag-badge.tsx +0 -0
  595. /package/{dist/standalone/dist/standalone/components → components}/board/project-contributors-panel.tsx +0 -0
  596. /package/{dist/standalone/dist/standalone/components → components}/board/sortable-table-head.tsx +0 -0
  597. /package/{dist/standalone/dist/standalone/components → components}/board/status-badge.tsx +0 -0
  598. /package/{dist/standalone/dist/standalone/components → components}/board/story-list.tsx +0 -0
  599. /package/{dist/standalone/dist/standalone/components → components}/board/tags-multiselect-filter.tsx +0 -0
  600. /package/{dist/standalone/dist/standalone/components → components}/board/task-list.tsx +0 -0
  601. /package/{dist/standalone/dist/standalone/components → components}/board/timeframe-filter.tsx +0 -0
  602. /package/{dist/standalone/dist/standalone/components → components}/board/work-item-detail-body.tsx +0 -0
  603. /package/{dist/standalone/dist/standalone/components → components}/board/work-items-list.tsx +0 -0
  604. /package/{dist/standalone/dist/standalone/components → components}/brand-logo.tsx +0 -0
  605. /package/{dist/standalone/dist/standalone/components → components}/setup/setup-wizard.tsx +0 -0
  606. /package/{dist/standalone/dist/standalone/components → components}/ui/alert-dialog.tsx +0 -0
  607. /package/{dist/standalone/dist/standalone/components → components}/ui/alert.tsx +0 -0
  608. /package/{dist/standalone/dist/standalone/components → components}/ui/avatar.tsx +0 -0
  609. /package/{dist/standalone/dist/standalone/components → components}/ui/badge.tsx +0 -0
  610. /package/{dist/standalone/dist/standalone/components → components}/ui/breadcrumb.tsx +0 -0
  611. /package/{dist/standalone/dist/standalone/components → components}/ui/button.tsx +0 -0
  612. /package/{dist/standalone/dist/standalone/components → components}/ui/calendar.tsx +0 -0
  613. /package/{dist/standalone/dist/standalone/components → components}/ui/card.tsx +0 -0
  614. /package/{dist/standalone/dist/standalone/components → components}/ui/combobox.tsx +0 -0
  615. /package/{dist/standalone/dist/standalone/components → components}/ui/dialog.tsx +0 -0
  616. /package/{dist/standalone/dist/standalone/components → components}/ui/field.tsx +0 -0
  617. /package/{dist/standalone/dist/standalone/components → components}/ui/input-group.tsx +0 -0
  618. /package/{dist/standalone/dist/standalone/components → components}/ui/input.tsx +0 -0
  619. /package/{dist/standalone/dist/standalone/components → components}/ui/item.tsx +0 -0
  620. /package/{dist/standalone/dist/standalone/components → components}/ui/label.tsx +0 -0
  621. /package/{dist/standalone/dist/standalone/components → components}/ui/pagination.tsx +0 -0
  622. /package/{dist/standalone/dist/standalone/components → components}/ui/popover.tsx +0 -0
  623. /package/{dist/standalone/dist/standalone/components → components}/ui/progress.tsx +0 -0
  624. /package/{dist/standalone/dist/standalone/components → components}/ui/resizable.tsx +0 -0
  625. /package/{dist/standalone/dist/standalone/components → components}/ui/select.tsx +0 -0
  626. /package/{dist/standalone/dist/standalone/components → components}/ui/separator.tsx +0 -0
  627. /package/{dist/standalone/dist/standalone/components → components}/ui/sheet.tsx +0 -0
  628. /package/{dist/standalone/dist/standalone/components → components}/ui/sidebar.tsx +0 -0
  629. /package/{dist/standalone/dist/standalone/components → components}/ui/skeleton.tsx +0 -0
  630. /package/{dist/standalone/dist/standalone/components → components}/ui/slider.tsx +0 -0
  631. /package/{dist/standalone/dist/standalone/components → components}/ui/sonner.tsx +0 -0
  632. /package/{dist/standalone/dist/standalone/components → components}/ui/spinner.tsx +0 -0
  633. /package/{dist/standalone/dist/standalone/components → components}/ui/switch.tsx +0 -0
  634. /package/{dist/standalone/dist/standalone/components → components}/ui/table.tsx +0 -0
  635. /package/{dist/standalone/dist/standalone/components → components}/ui/tabs.tsx +0 -0
  636. /package/{dist/standalone/dist/standalone/components → components}/ui/textarea.tsx +0 -0
  637. /package/{dist/standalone/dist/standalone/components → components}/ui/tooltip.tsx +0 -0
  638. /package/{dist/standalone/dist/standalone/components.json → components.json} +0 -0
  639. /package/dist/standalone/.next/static/{yYMAgTQ-mApv2yRSEYmVO → Z9wFjRvfV46l9lmHXB7G1}/_buildManifest.js +0 -0
  640. /package/dist/standalone/.next/static/{yYMAgTQ-mApv2yRSEYmVO → Z9wFjRvfV46l9lmHXB7G1}/_clientMiddlewareManifest.js +0 -0
  641. /package/dist/standalone/.next/static/{yYMAgTQ-mApv2yRSEYmVO → Z9wFjRvfV46l9lmHXB7G1}/_ssgManifest.js +0 -0
  642. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/hooks → hooks}/use-mobile.ts +0 -0
  643. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/hooks → hooks}/use-paginated-rows.ts +0 -0
  644. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/hooks → hooks}/use-persisted-hide-completed.ts +0 -0
  645. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/hooks → hooks}/use-table-sort.ts +0 -0
  646. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/format-date.ts +0 -0
  647. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/format-duration.ts +0 -0
  648. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/format-list-date.ts +0 -0
  649. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/active-project.ts +0 -0
  650. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/autoconfig.ts +0 -0
  651. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/constants.ts +0 -0
  652. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/count-leaves.ts +0 -0
  653. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/detail-types.ts +0 -0
  654. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/discover.ts +0 -0
  655. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/epic-types.ts +0 -0
  656. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/flat-work-item-types.ts +0 -0
  657. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/frontmatter.ts +0 -0
  658. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/general-epic.ts +0 -0
  659. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/hide-completed-cookie.ts +0 -0
  660. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/identity.ts +0 -0
  661. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/item-types.ts +0 -0
  662. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/list-filters.ts +0 -0
  663. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/list-view-mode.ts +0 -0
  664. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/pagination.ts +0 -0
  665. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/parse-detail.ts +0 -0
  666. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/parse-epics.ts +0 -0
  667. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/parse-flat-lists.ts +0 -0
  668. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/parse-items.ts +0 -0
  669. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/parse-sections.ts +0 -0
  670. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/parse-stories.ts +0 -0
  671. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/pick-folder.ts +0 -0
  672. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/project-label.ts +0 -0
  673. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/projects.ts +0 -0
  674. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/resolve-work-item.ts +0 -0
  675. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/story-types.ts +0 -0
  676. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/table-sort.ts +0 -0
  677. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/timeframe-filters.ts +0 -0
  678. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/timing.ts +0 -0
  679. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/types.ts +0 -0
  680. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/validate.ts +0 -0
  681. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/taskmark/workspace.ts +0 -0
  682. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/lib → lib}/utils.ts +0 -0
  683. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/postcss.config.mjs → postcss.config.mjs} +0 -0
  684. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/public → public}/file.svg +0 -0
  685. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/public → public}/globe.svg +0 -0
  686. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/public → public}/next.svg +0 -0
  687. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/public → public}/tm_dark.png +0 -0
  688. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/public → public}/tm_light.png +0 -0
  689. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/public → public}/vercel.svg +0 -0
  690. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/public → public}/window.svg +0 -0
  691. /package/{dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/scripts → scripts}/prepare-standalone.mjs +0 -0
package/README.md CHANGED
@@ -6,7 +6,7 @@ Install in a Taskmark board folder (or product root with `./taskmark/`) and open
6
6
 
7
7
  ```bash
8
8
  # from nested ./taskmark/ or a dedicated *-taskmark board root
9
- npm install @taskmark/ui --save-dev
9
+ npm install @taskmark/ui --save
10
10
  npx taskmark serve
11
11
  ```
12
12
 
@@ -45,16 +45,28 @@ You do **not** need to clone `taskmark-frontend`.
45
45
  {
46
46
  "name": "my-project-taskmark",
47
47
  "private": true,
48
+ "type": "module",
48
49
  "scripts": {
49
- "start": "taskmark serve"
50
+ "start": "taskmark serve --no-open",
51
+ "serve": "taskmark serve",
52
+ "build": "taskmark build --board . --out out"
50
53
  },
51
- "devDependencies": {
52
- "@taskmark/ui": "^0.1.0"
54
+ "dependencies": {
55
+ "@taskmark/ui": "^0.2.0"
53
56
  }
54
57
  }
55
58
  ```
56
59
 
57
- Then `npm install && npm start`.
60
+ Then `npm install && npm run serve` (or `npm start`). For **Vercel**, use `npm run build` (static HTML in `out/`) — see the board-ui-stub `vercel.json`.
61
+
62
+ ### Static production build
63
+
64
+ ```bash
65
+ npx taskmark build --board .
66
+ # → <board>/out (HTML + assets + taskmark-snapshot.json)
67
+ ```
68
+
69
+ Favicon, webmanifest, and Open Graph assets ship in `public/` and are included in both standalone (`taskmark serve`) and static (`taskmark build`) outputs.
58
70
 
59
71
  ## Develop this package
60
72
 
@@ -0,0 +1,62 @@
1
+ "use server"
2
+
3
+ import { getActiveProjectCookie, getMasterFoldersCookie } from "@/lib/taskmark/cookies"
4
+ import { resolveActiveProject } from "@/lib/taskmark/active-project"
5
+ import type { WorkItemDetailResult } from "@/lib/taskmark/detail-types"
6
+ import {
7
+ loadWorkItemDetailSync,
8
+ resolveWorkItemByIdSync,
9
+ } from "@/lib/taskmark/detail-load"
10
+ import { loadConfiguredWorkspace, loadWorkspace } from "@/lib/taskmark/workspace"
11
+
12
+ export type ResolveWorkItemResult =
13
+ | { ok: true; ref: import("@/lib/taskmark/detail-types").WorkItemRef }
14
+ | { ok: false; itemId: string; message: string }
15
+
16
+ /**
17
+ * Resolve a shareable work item id (E-/S-/T-/B-) to a WorkItemRef.
18
+ */
19
+ export async function resolveWorkItemById(
20
+ itemId: string,
21
+ options?: { withinFilePath?: string | null }
22
+ ): Promise<ResolveWorkItemResult> {
23
+ const masters = await getMasterFoldersCookie()
24
+ const workspace = loadWorkspace(masters)
25
+ if (workspace.projects.length === 0) {
26
+ return {
27
+ ok: false,
28
+ itemId: typeof itemId === "string" ? itemId.trim() : "",
29
+ message: "No workspace configured",
30
+ }
31
+ }
32
+
33
+ const savedActiveId = await getActiveProjectCookie()
34
+ const active = resolveActiveProject(
35
+ workspace.projects,
36
+ workspace.autoconfig ? null : savedActiveId
37
+ )
38
+
39
+ return resolveWorkItemByIdSync(workspace.projects, itemId, {
40
+ withinFilePath: options?.withinFilePath,
41
+ activeBoardPath: active?.boardPath ?? null,
42
+ })
43
+ }
44
+
45
+ /**
46
+ * Load and parse a full work item detail from an absolute markdown path.
47
+ */
48
+ export async function loadWorkItemDetail(
49
+ filePath: string,
50
+ hint?: "epic" | "story" | "item"
51
+ ): Promise<WorkItemDetailResult> {
52
+ const masters = await getMasterFoldersCookie()
53
+ const workspace = loadWorkspace(masters)
54
+ if (workspace.projects.length === 0) {
55
+ return {
56
+ ok: false,
57
+ filePath: filePath ?? "",
58
+ message: "No workspace configured",
59
+ }
60
+ }
61
+ return loadWorkItemDetailSync(workspace.projects, filePath, hint)
62
+ }
@@ -1,3 +1,4 @@
1
+ import { Suspense } from "react"
1
2
  import Link from "next/link"
2
3
  import { redirect } from "next/navigation"
3
4
 
@@ -6,6 +7,7 @@ import { EpicList } from "@/components/board/epic-list"
6
7
  import { ListViewSwitcher } from "@/components/board/list-view-switcher"
7
8
  import { OverallWorkItemsList } from "@/components/board/overall-work-items-list"
8
9
  import { ProjectStatusMetricsStrip } from "@/components/board/project-status-metrics-strip"
10
+ import { StaticBoardApp } from "@/components/board/static-board-app"
9
11
  import { TaskList } from "@/components/board/task-list"
10
12
  import { WorkItemsList } from "@/components/board/work-items-list"
11
13
  import { WorkItemSheetProvider } from "@/components/board/work-item-sheet"
@@ -21,6 +23,7 @@ import {
21
23
  parseListViewMode,
22
24
  type ListViewMode,
23
25
  } from "@/lib/taskmark/list-view-mode"
26
+ import { loadSnapshotFromPublic } from "@/lib/taskmark/load-snapshot-server"
24
27
  import { parseEpicsForProject } from "@/lib/taskmark/parse-epics"
25
28
  import {
26
29
  parseWorkItemsForEpic,
@@ -32,6 +35,7 @@ import {
32
35
  collectMetricLeaves,
33
36
  computeProjectStatusMetrics,
34
37
  } from "@/lib/taskmark/project-metrics"
38
+ import { isStaticRuntime } from "@/lib/taskmark/static-mode"
35
39
  import { loadWorkspace } from "@/lib/taskmark/workspace"
36
40
 
37
41
  type BoardPageProps = {
@@ -54,6 +58,15 @@ function headingForView(view: ListViewMode): string {
54
58
  }
55
59
 
56
60
  export default async function BoardPage({ searchParams }: BoardPageProps) {
61
+ if (isStaticRuntime()) {
62
+ const snapshot = loadSnapshotFromPublic()
63
+ return (
64
+ <Suspense fallback={<div className="p-8 text-sm text-muted-foreground">Loading board…</div>}>
65
+ <StaticBoardApp snapshot={snapshot} />
66
+ </Suspense>
67
+ )
68
+ }
69
+
57
70
  const masters = await getMasterFoldersCookie()
58
71
  const workspace = loadWorkspace(masters)
59
72
  if (workspace.projects.length === 0) {
package/app/layout.tsx ADDED
@@ -0,0 +1,87 @@
1
+ import type { Metadata, Viewport } from "next"
2
+ import { Archivo_Black, Space_Grotesk } from "next/font/google"
3
+ import { Toaster } from "@/components/ui/sonner"
4
+ import { SITE } from "@/lib/site"
5
+ import "./globals.css"
6
+
7
+ const archivoBlack = Archivo_Black({
8
+ subsets: ["latin"],
9
+ weight: "400",
10
+ variable: "--font-head",
11
+ display: "swap",
12
+ })
13
+
14
+ const spaceGrotesk = Space_Grotesk({
15
+ subsets: ["latin"],
16
+ variable: "--font-sans",
17
+ display: "swap",
18
+ })
19
+
20
+ const siteDescription =
21
+ "Taskmark — product memory for agent work. Local markdown boards for Cursor with sizing, work logs, and velocity."
22
+
23
+ export const viewport: Viewport = {
24
+ themeColor: "#111111",
25
+ }
26
+
27
+ export const metadata: Metadata = {
28
+ metadataBase: new URL(SITE.url),
29
+ applicationName: "Taskmark",
30
+ title: {
31
+ default: "Taskmark",
32
+ template: "%s · Taskmark",
33
+ },
34
+ description: siteDescription,
35
+ icons: {
36
+ icon: [
37
+ { url: "/favicon.ico", sizes: "any" },
38
+ { url: "/favicon.svg", type: "image/svg+xml" },
39
+ { url: "/favicon-96x96.png", sizes: "96x96", type: "image/png" },
40
+ ],
41
+ apple: [{ url: "/apple-touch-icon.png", sizes: "180x180" }],
42
+ },
43
+ manifest: "/site.webmanifest",
44
+ openGraph: {
45
+ type: "website",
46
+ locale: "en_US",
47
+ url: SITE.url,
48
+ siteName: "Taskmark",
49
+ title: "Taskmark",
50
+ description: siteDescription,
51
+ images: [
52
+ {
53
+ url: "/og/og-default.png",
54
+ width: 1200,
55
+ height: 630,
56
+ alt: "Taskmark — product memory for agent work",
57
+ },
58
+ ],
59
+ },
60
+ twitter: {
61
+ card: "summary_large_image",
62
+ title: "Taskmark",
63
+ description: siteDescription,
64
+ images: ["/og/og-default.png"],
65
+ },
66
+ robots: {
67
+ index: true,
68
+ follow: true,
69
+ },
70
+ }
71
+
72
+ export default function RootLayout({
73
+ children,
74
+ }: {
75
+ children: React.ReactNode
76
+ }) {
77
+ return (
78
+ <html lang="en">
79
+ <body
80
+ className={`${archivoBlack.variable} ${spaceGrotesk.variable} font-sans antialiased`}
81
+ >
82
+ <Toaster />
83
+ {children}
84
+ </body>
85
+ </html>
86
+ )
87
+ }
@@ -1,9 +1,13 @@
1
1
  import { redirect } from "next/navigation"
2
2
 
3
3
  import { getMasterFoldersCookie } from "@/lib/taskmark/cookies"
4
+ import { isStaticRuntime } from "@/lib/taskmark/static-mode"
4
5
  import { loadWorkspace } from "@/lib/taskmark/workspace"
5
6
 
6
7
  export default async function HomePage() {
8
+ if (isStaticRuntime()) {
9
+ redirect("/board")
10
+ }
7
11
  const masters = await getMasterFoldersCookie()
8
12
  const workspace = loadWorkspace(masters)
9
13
  if (workspace.projects.length > 0) {
@@ -5,12 +5,17 @@ import { BrandLogo } from "@/components/brand-logo"
5
5
  import { SetupWizard } from "@/components/setup/setup-wizard"
6
6
  import { resolveAutoconfigWorkspace } from "@/lib/taskmark/autoconfig"
7
7
  import { getMasterFoldersCookie } from "@/lib/taskmark/cookies"
8
+ import { isStaticRuntime } from "@/lib/taskmark/static-mode"
8
9
 
9
10
  type SetupPageProps = {
10
11
  searchParams?: Promise<{ mode?: string }>
11
12
  }
12
13
 
13
14
  export default async function SetupPage({ searchParams }: SetupPageProps) {
15
+ if (isStaticRuntime()) {
16
+ redirect("/board")
17
+ }
18
+
14
19
  const auto = resolveAutoconfigWorkspace()
15
20
  if (auto && auto.projects.length > 0) {
16
21
  // Zero-config bind — setup wizard is not needed.
package/bin/taskmark.js CHANGED
@@ -14,11 +14,17 @@ const packageRoot = path.resolve(__dirname, "..")
14
14
  function printHelp() {
15
15
  console.log(`Usage:
16
16
  taskmark serve [options]
17
+ taskmark build [options]
18
+
19
+ Commands:
20
+ serve Start the prebuilt local UI server (default port ${DEFAULT_PORT})
21
+ build Production static HTML export for Vercel / static hosting
17
22
 
18
23
  Options:
19
- --port, -p <n> Listen port (default ${DEFAULT_PORT}; env PORT / TASKMARK_PORT)
24
+ --port, -p <n> Listen port for serve (default ${DEFAULT_PORT}; env PORT / TASKMARK_PORT)
20
25
  --board <path> Board or product root (sets TASKMARK_BOARD)
21
- --no-open Do not open a browser
26
+ --out <dir> Static output directory for build (default: <board>/out)
27
+ --no-open Do not open a browser (serve)
22
28
  --help, -h Show help
23
29
 
24
30
  Board resolution (same as the UI):
@@ -28,7 +34,8 @@ Board resolution (same as the UI):
28
34
  (product root with ./taskmark/, or dedicated *-taskmark root)
29
35
 
30
36
  Examples:
31
- npm i -D @taskmark/ui && npx taskmark serve
37
+ npm i @taskmark/ui --save && npx taskmark serve
38
+ npx taskmark build --board .
32
39
  npx -p @taskmark/ui taskmark serve
33
40
  npx taskmark serve --port 9000
34
41
  TASKMARK_BOARD=/path/to/my-app/taskmark npx taskmark serve
@@ -40,6 +47,7 @@ function parseArgs(argv) {
40
47
  command: null,
41
48
  port: null,
42
49
  board: null,
50
+ out: null,
43
51
  open: true,
44
52
  help: false,
45
53
  }
@@ -59,10 +67,14 @@ function parseArgs(argv) {
59
67
  args.port = rest.shift()
60
68
  } else if (token === "--board") {
61
69
  args.board = rest.shift()
70
+ } else if (token === "--out") {
71
+ args.out = rest.shift()
62
72
  } else if (token.startsWith("--port=")) {
63
73
  args.port = token.slice("--port=".length)
64
74
  } else if (token.startsWith("--board=")) {
65
75
  args.board = token.slice("--board=".length)
76
+ } else if (token.startsWith("--out=")) {
77
+ args.out = token.slice("--out=".length)
66
78
  } else {
67
79
  console.error(`Unknown argument: ${token}`)
68
80
  args.help = true
@@ -196,9 +208,15 @@ Or install a published build that includes dist/standalone.`)
196
208
  process.exit(code ?? 0)
197
209
  })
198
210
 
211
+ const hosted =
212
+ Boolean(process.env.VERCEL) ||
213
+ Boolean(process.env.NOW_REGION) ||
214
+ process.env.CI === "true"
215
+ const shouldOpen = args.open && !hosted
216
+
199
217
  try {
200
218
  await waitForServer(port)
201
- if (args.open) {
219
+ if (shouldOpen) {
202
220
  openBrowser(url)
203
221
  } else {
204
222
  console.log(`Ready: ${url}`)
@@ -216,17 +234,45 @@ async function main() {
216
234
  printHelp()
217
235
  process.exit(args.help || !args.command ? 0 : 1)
218
236
  }
219
- if (args.command !== "serve") {
220
- console.error(`Unknown command: ${args.command}`)
221
- printHelp()
222
- process.exit(1)
237
+ if (args.command === "serve") {
238
+ try {
239
+ await serve(args)
240
+ } catch (err) {
241
+ console.error(String(err?.message || err))
242
+ process.exit(1)
243
+ }
244
+ return
223
245
  }
224
- try {
225
- await serve(args)
226
- } catch (err) {
227
- console.error(String(err?.message || err))
228
- process.exit(1)
246
+ if (args.command === "build") {
247
+ const buildScript = path.join(packageRoot, "scripts", "build-static.mjs")
248
+ // Resolve relative paths against the caller's cwd (npm/yarn script dir),
249
+ // not packageRoot — the child runs with cwd = @taskmark/ui.
250
+ const callerCwd = process.env.INIT_CWD || process.cwd()
251
+ const childArgs = [buildScript]
252
+ if (args.board) {
253
+ childArgs.push("--board", path.resolve(callerCwd, args.board))
254
+ } else {
255
+ // Prefer the invoke directory as the board when no --board flag.
256
+ childArgs.push("--board", callerCwd)
257
+ }
258
+ if (args.out) {
259
+ childArgs.push("--out", path.resolve(callerCwd, args.out))
260
+ }
261
+ const child = spawn(process.execPath, childArgs, {
262
+ cwd: packageRoot,
263
+ env: {
264
+ ...process.env,
265
+ INIT_CWD: callerCwd,
266
+ TASKMARK_CWD: process.env.TASKMARK_CWD || callerCwd,
267
+ },
268
+ stdio: "inherit",
269
+ })
270
+ child.on("exit", (code) => process.exit(code ?? 1))
271
+ return
229
272
  }
273
+ console.error(`Unknown command: ${args.command}`)
274
+ printHelp()
275
+ process.exit(1)
230
276
  }
231
277
 
232
278
  main()
@@ -8,8 +8,10 @@ import {
8
8
 
9
9
  import { MetricStatCard } from "@/components/board/metric-stat-card"
10
10
  import { ProjectContributorsPanel } from "@/components/board/project-contributors-panel"
11
- import type { ProjectStatusMetrics } from "@/lib/taskmark/project-metrics"
12
- import { formatSpeedPtsPerWeek } from "@/lib/taskmark/project-metrics"
11
+ import {
12
+ formatSpeedPtsPerWeek,
13
+ type ProjectStatusMetrics,
14
+ } from "@/lib/taskmark/project-metrics-shared"
13
15
 
14
16
  type ProjectStatusMetricsStripProps = {
15
17
  metrics: ProjectStatusMetrics
@@ -1,5 +1,8 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
1
4
  import Link from "next/link"
2
- import { redirect } from "next/navigation"
5
+ import { useSearchParams } from "next/navigation"
3
6
 
4
7
  import { AppBar } from "@/components/board/app-bar"
5
8
  import { EpicList } from "@/components/board/epic-list"
@@ -9,93 +12,55 @@ import { ProjectStatusMetricsStrip } from "@/components/board/project-status-met
9
12
  import { TaskList } from "@/components/board/task-list"
10
13
  import { WorkItemsList } from "@/components/board/work-items-list"
11
14
  import { WorkItemSheetProvider } from "@/components/board/work-item-sheet"
12
- import { resolveActiveProject } from "@/lib/taskmark/active-project"
13
- import {
14
- getActiveProjectCookie,
15
- getHideCompletedCookies,
16
- getMasterFoldersCookie,
17
- } from "@/lib/taskmark/cookies"
18
15
  import {
19
16
  LIST_VIEW_LABELS,
20
17
  boardHref,
21
18
  parseListViewMode,
22
19
  type ListViewMode,
23
20
  } from "@/lib/taskmark/list-view-mode"
24
- import { parseEpicsForProject } from "@/lib/taskmark/parse-epics"
25
- import {
26
- parseWorkItemsForEpic,
27
- parseWorkItemsViewForProject,
28
- } from "@/lib/taskmark/parse-flat-lists"
29
- import { parseItemsForStory } from "@/lib/taskmark/parse-items"
21
+ import { seedBoardSnapshot } from "@/lib/taskmark/snapshot-client"
30
22
  import {
31
- collectCompletedLeafPointSamples,
32
- collectMetricLeaves,
33
- computeProjectStatusMetrics,
34
- } from "@/lib/taskmark/project-metrics"
35
- import { loadWorkspace } from "@/lib/taskmark/workspace"
36
-
37
- type BoardPageProps = {
38
- searchParams: Promise<{
39
- view?: string | string[]
40
- epic?: string | string[]
41
- story?: string | string[]
42
- item?: string | string[]
43
- }>
44
- }
45
-
46
- function paramValue(value: string | string[] | undefined): string | null {
47
- if (typeof value === "string" && value.trim()) return value.trim()
48
- return null
49
- }
23
+ storyKey,
24
+ type BoardSnapshot,
25
+ } from "@/lib/taskmark/snapshot-types"
50
26
 
51
27
  function headingForView(view: ListViewMode): string {
52
28
  if (view === "overall") return "Epics"
53
29
  return LIST_VIEW_LABELS[view]
54
30
  }
55
31
 
56
- export default async function BoardPage({ searchParams }: BoardPageProps) {
57
- const masters = await getMasterFoldersCookie()
58
- const workspace = loadWorkspace(masters)
59
- if (workspace.projects.length === 0) {
60
- redirect("/setup")
61
- }
62
-
63
- const savedActiveId = await getActiveProjectCookie()
64
- const hideCompletedPrefs = await getHideCompletedCookies()
65
- const activeProject = resolveActiveProject(
66
- workspace.projects,
67
- // Autoconfig: prefer the bound board; ignore stale active-project cookies.
68
- workspace.autoconfig ? null : savedActiveId
69
- )
70
- if (!activeProject) {
71
- redirect("/setup")
72
- }
32
+ export function StaticBoardApp({ snapshot }: { snapshot: BoardSnapshot }) {
33
+ React.useMemo(() => {
34
+ seedBoardSnapshot(snapshot)
35
+ return null
36
+ }, [snapshot])
73
37
 
74
- const params = await searchParams
75
- const activeView = parseListViewMode(params.view)
38
+ const searchParams = useSearchParams()
39
+ const activeView = parseListViewMode(searchParams.get("view") ?? undefined)
76
40
  const selectedEpicId =
77
- activeView === "overall" ? paramValue(params.epic) : null
41
+ activeView === "overall" ? searchParams.get("epic")?.trim() || null : null
78
42
  const selectedStoryId =
79
43
  activeView === "overall" && selectedEpicId
80
- ? paramValue(params.story)
44
+ ? searchParams.get("story")?.trim() || null
81
45
  : null
82
- const selectedItemId = paramValue(params.item)
46
+ const selectedItemId = searchParams.get("item")?.trim() || null
83
47
 
84
- const list = parseEpicsForProject(activeProject)
48
+ const activeProject = snapshot.project
49
+ const list = snapshot.epics
85
50
  const epicCount = list.epics.length
86
51
  const errorCount = list.errors.length
52
+ const hideCompletedPrefs = snapshot.hideCompletedDefaults
53
+ const countableCompletions = snapshot.countableCompletions
54
+ const statusMetrics = snapshot.statusMetrics
55
+ const workItemsList = snapshot.workItemsView
87
56
 
88
57
  const selectedEpic = selectedEpicId
89
58
  ? list.epics.find((e) => e.id === selectedEpicId) ?? null
90
59
  : null
91
60
 
92
61
  const epicWorkItems =
93
- activeView === "overall" && selectedEpicId != null
94
- ? parseWorkItemsForEpic(
95
- activeProject,
96
- selectedEpicId,
97
- selectedEpic?.title ?? null
98
- )
62
+ selectedEpicId != null
63
+ ? snapshot.workItemsByEpic[selectedEpicId] ?? null
99
64
  : null
100
65
 
101
66
  const selectedStory =
@@ -106,32 +71,19 @@ export default async function BoardPage({ searchParams }: BoardPageProps) {
106
71
  : null
107
72
 
108
73
  const itemList =
109
- activeView === "overall" &&
110
- selectedEpicId != null &&
111
- selectedStory != null
112
- ? parseItemsForStory(activeProject, selectedEpicId, selectedStory.id)
74
+ selectedEpicId && selectedStory
75
+ ? snapshot.itemsByStory[storyKey(selectedEpicId, selectedStory.id)] ??
76
+ null
113
77
  : null
114
78
 
115
- const workItemsList =
116
- activeView === "overall" || activeView === "workitems"
117
- ? parseWorkItemsViewForProject(activeProject)
118
- : null
119
-
120
- /** Match Current Speed exactly: completed task/bug leaf points only. */
121
- const countableCompletions = collectCompletedLeafPointSamples(
122
- collectMetricLeaves(activeProject)
123
- )
124
-
125
- const statusMetrics = computeProjectStatusMetrics(activeProject)
126
-
127
79
  return (
128
80
  <WorkItemSheetProvider>
129
81
  <div className="min-h-svh bg-[linear-gradient(180deg,_#fff_0%,_#f7f4ff_100%)]">
130
82
  <AppBar
131
- projects={workspace.projects}
83
+ projects={snapshot.projects}
132
84
  activeProjectId={activeProject.id}
133
- masterCount={workspace.masters.length}
134
- autoconfig={workspace.autoconfig}
85
+ masterCount={1}
86
+ autoconfig={true}
135
87
  />
136
88
 
137
89
  <div className="mx-auto flex w-full max-w-5xl flex-col gap-6 px-4 py-8">
@@ -148,7 +100,7 @@ export default async function BoardPage({ searchParams }: BoardPageProps) {
148
100
  {activeView === "overall" && errorCount > 0
149
101
  ? ` · ${errorCount} parse issue${errorCount === 1 ? "" : "s"}`
150
102
  : ""}
151
- {activeView === "workitems" && workItemsList
103
+ {activeView === "workitems"
152
104
  ? ` · ${workItemsList.rows.length} item${workItemsList.rows.length === 1 ? "" : "s"}`
153
105
  : ""}
154
106
  {activeView === "overall" && selectedEpic
@@ -164,9 +116,6 @@ export default async function BoardPage({ searchParams }: BoardPageProps) {
164
116
  ? ` · story ${selectedStoryId} not in list`
165
117
  : ""}
166
118
  </p>
167
- <p className="mt-1 font-mono text-xs text-muted-foreground">
168
- {activeProject.boardPath}
169
- </p>
170
119
  </div>
171
120
  <ListViewSwitcher
172
121
  activeView={activeView}
@@ -203,16 +152,6 @@ export default async function BoardPage({ searchParams }: BoardPageProps) {
203
152
  Clear selection
204
153
  </Link>
205
154
  </div>
206
- <p className="text-sm text-muted-foreground">
207
- {epicWorkItems.rows.length} work item
208
- {epicWorkItems.rows.length === 1 ? "" : "s"}
209
- {epicWorkItems.errors.length > 0
210
- ? ` · ${epicWorkItems.errors.length} issue${epicWorkItems.errors.length === 1 ? "" : "s"}`
211
- : ""}
212
- {!selectedStory
213
- ? " · select a story to view its sub tasks"
214
- : ""}
215
- </p>
216
155
  <OverallWorkItemsList
217
156
  list={epicWorkItems}
218
157
  selectedStoryId={selectedStory?.id ?? null}
@@ -226,8 +165,7 @@ export default async function BoardPage({ searchParams }: BoardPageProps) {
226
165
  <div className="flex flex-col gap-3">
227
166
  <div className="flex items-baseline justify-between gap-3">
228
167
  <h2 className="font-head text-2xl tracking-tight">
229
- Sub Tasks for{" "}
230
- {itemList.storyTitle ?? itemList.storyId}
168
+ Sub Tasks for {itemList.storyTitle ?? itemList.storyId}
231
169
  </h2>
232
170
  <Link
233
171
  href={boardHref({
@@ -240,13 +178,6 @@ export default async function BoardPage({ searchParams }: BoardPageProps) {
240
178
  Clear story
241
179
  </Link>
242
180
  </div>
243
- <p className="text-sm text-muted-foreground">
244
- {itemList.items.length} sub task
245
- {itemList.items.length === 1 ? "" : "s"}
246
- {itemList.errors.length > 0
247
- ? ` · ${itemList.errors.length} issue${itemList.errors.length === 1 ? "" : "s"}`
248
- : ""}
249
- </p>
250
181
  <TaskList
251
182
  list={itemList}
252
183
  countableCompletions={countableCompletions}
@@ -257,7 +188,7 @@ export default async function BoardPage({ searchParams }: BoardPageProps) {
257
188
  </>
258
189
  ) : null}
259
190
 
260
- {activeView === "workitems" && workItemsList ? (
191
+ {activeView === "workitems" ? (
261
192
  <WorkItemsList
262
193
  list={workItemsList}
263
194
  countableCompletions={countableCompletions}