@taskmark/ui 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +52 -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 +52 -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 +169 -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 +169 -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 → w9yZK-dY-FmU0xmh175u4}/_buildManifest.js +0 -0
  640. /package/dist/standalone/.next/static/{yYMAgTQ-mApv2yRSEYmVO → w9yZK-dY-FmU0xmh175u4}/_clientMiddlewareManifest.js +0 -0
  641. /package/dist/standalone/.next/static/{yYMAgTQ-mApv2yRSEYmVO → w9yZK-dY-FmU0xmh175u4}/_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
@@ -1,344 +0,0 @@
1
- /** Pure table-sort types and comparators for board lists. */
2
-
3
- import {
4
- prioritySortRank,
5
- statusSortRank,
6
- } from "@/lib/taskmark/list-view-mode"
7
- import type { ContributorIdentity } from "@/lib/taskmark/identity"
8
-
9
- export const TABLE_SORT_KEYS = [
10
- "id",
11
- "title",
12
- "size",
13
- "epic",
14
- "points",
15
- "status",
16
- "priority",
17
- "type",
18
- "people",
19
- ] as const
20
-
21
- export type TableSortKey = (typeof TABLE_SORT_KEYS)[number]
22
-
23
- export type TableSortDirection = "asc" | "desc"
24
-
25
- export type TableSortState = {
26
- key: TableSortKey
27
- direction: TableSortDirection
28
- }
29
-
30
- /** T-shirt rank: XS < S < M < L < XL. Unknown / empty sorts last. */
31
- const SIZE_RANK: Record<string, number> = {
32
- XS: 1,
33
- S: 2,
34
- M: 3,
35
- L: 4,
36
- XL: 5,
37
- }
38
-
39
- const ID_PREFIX_RANK: Record<string, number> = {
40
- E: 1,
41
- S: 2,
42
- T: 3,
43
- B: 4,
44
- }
45
-
46
- export function isTableSortKey(value: string): value is TableSortKey {
47
- return (TABLE_SORT_KEYS as readonly string[]).includes(value)
48
- }
49
-
50
- export function sizeSortRank(size: string | null | undefined): number | null {
51
- if (!size?.trim()) return null
52
- const rank = SIZE_RANK[size.trim().toUpperCase()]
53
- return rank ?? null
54
- }
55
-
56
- /**
57
- * Natural Taskmark id compare: prefix (E/S/T/B) then numeric suffix.
58
- * Falls back to case-insensitive string compare.
59
- */
60
- export function compareTaskmarkIds(a: string, b: string): number {
61
- const pa = parseTaskmarkId(a)
62
- const pb = parseTaskmarkId(b)
63
- if (pa && pb) {
64
- if (pa.prefixRank !== pb.prefixRank) return pa.prefixRank - pb.prefixRank
65
- if (pa.num !== pb.num) return pa.num - pb.num
66
- return pa.raw.localeCompare(pb.raw)
67
- }
68
- return a.localeCompare(b, undefined, { sensitivity: "base", numeric: true })
69
- }
70
-
71
- function parseTaskmarkId(id: string): {
72
- prefixRank: number
73
- num: number
74
- raw: string
75
- } | null {
76
- const m = id.trim().match(/^([A-Za-z]+)-(\d+)$/)
77
- if (!m) return null
78
- const prefix = m[1]!.toUpperCase()
79
- const prefixRank = ID_PREFIX_RANK[prefix] ?? 100 + prefix.charCodeAt(0)
80
- return { prefixRank, num: Number(m[2]), raw: id.trim() }
81
- }
82
-
83
- /** Null/empty values always sort after defined values (both directions). */
84
- export function compareNullable(
85
- a: number | null,
86
- b: number | null,
87
- direction: TableSortDirection
88
- ): number | null {
89
- if (a === null && b === null) return 0
90
- if (a === null) return 1
91
- if (b === null) return -1
92
- const cmp = a - b
93
- return direction === "asc" ? cmp : -cmp
94
- }
95
-
96
- export function compareStrings(
97
- a: string | null | undefined,
98
- b: string | null | undefined,
99
- direction: TableSortDirection
100
- ): number {
101
- const left = a?.trim() ?? ""
102
- const right = b?.trim() ?? ""
103
- if (!left && !right) return 0
104
- if (!left) return 1
105
- if (!right) return -1
106
- const cmp = left.localeCompare(right, undefined, {
107
- sensitivity: "base",
108
- numeric: true,
109
- })
110
- return direction === "asc" ? cmp : -cmp
111
- }
112
-
113
- export function compareSizes(
114
- a: string | null | undefined,
115
- b: string | null | undefined,
116
- direction: TableSortDirection
117
- ): number {
118
- const ra = sizeSortRank(a)
119
- const rb = sizeSortRank(b)
120
- const ranked = compareNullable(ra, rb, direction)
121
- if (ranked !== null && ranked !== 0) return ranked
122
- if (ranked === 0 && ra !== null) return 0
123
- // Both unknown: fall back to string
124
- return compareStrings(a, b, direction)
125
- }
126
-
127
- export function compareIds(
128
- a: string | null | undefined,
129
- b: string | null | undefined,
130
- direction: TableSortDirection
131
- ): number {
132
- const left = a?.trim() ?? ""
133
- const right = b?.trim() ?? ""
134
- if (!left && !right) return 0
135
- if (!left) return 1
136
- if (!right) return -1
137
- const cmp = compareTaskmarkIds(left, right)
138
- return direction === "asc" ? cmp : -cmp
139
- }
140
-
141
- /** Epic: title primary, id tie-break; missing epic last. */
142
- export function compareEpics(
143
- a: { epicId?: string | null; epicTitle?: string | null },
144
- b: { epicId?: string | null; epicTitle?: string | null },
145
- direction: TableSortDirection
146
- ): number {
147
- const aKey = (a.epicTitle?.trim() || a.epicId?.trim() || "").toLowerCase()
148
- const bKey = (b.epicTitle?.trim() || b.epicId?.trim() || "").toLowerCase()
149
- if (!aKey && !bKey) {
150
- return compareIds(a.epicId, b.epicId, direction)
151
- }
152
- if (!aKey) return 1
153
- if (!bKey) return -1
154
- const titleCmp = aKey.localeCompare(bKey, undefined, { sensitivity: "base" })
155
- if (titleCmp !== 0) {
156
- return direction === "asc" ? titleCmp : -titleCmp
157
- }
158
- return compareIds(a.epicId, b.epicId, direction)
159
- }
160
-
161
- export function comparePoints(
162
- a: number | null | undefined,
163
- b: number | null | undefined,
164
- direction: TableSortDirection
165
- ): number {
166
- const left = a == null || Number.isNaN(a) ? null : a
167
- const right = b == null || Number.isNaN(b) ? null : b
168
- const ranked = compareNullable(left, right, direction)
169
- return ranked ?? 0
170
- }
171
-
172
- /** Workflow order: backlog < in_progress < done < blocked < cancelled. */
173
- export function compareStatuses(
174
- a: string | null | undefined,
175
- b: string | null | undefined,
176
- direction: TableSortDirection
177
- ): number {
178
- const left = a?.trim() ?? ""
179
- const right = b?.trim() ?? ""
180
- if (!left && !right) return 0
181
- if (!left) return 1
182
- if (!right) return -1
183
- const cmp = statusSortRank(left) - statusSortRank(right)
184
- return direction === "asc" ? cmp : -cmp
185
- }
186
-
187
- /** Priority order: critical < high < medium < low (asc = most urgent first). */
188
- export function comparePriorities(
189
- a: string | null | undefined,
190
- b: string | null | undefined,
191
- direction: TableSortDirection
192
- ): number {
193
- const left = a?.trim() ?? ""
194
- const right = b?.trim() ?? ""
195
- if (!left && !right) return 0
196
- if (!left) return 1
197
- if (!right) return -1
198
- const cmp = prioritySortRank(left) - prioritySortRank(right)
199
- return direction === "asc" ? cmp : -cmp
200
- }
201
-
202
- const TYPE_RANK: Record<string, number> = {
203
- epic: 0,
204
- story: 1,
205
- task: 2,
206
- bug: 3,
207
- }
208
-
209
- export function typeSortRank(type: string | null | undefined): number | null {
210
- if (!type?.trim()) return null
211
- const rank = TYPE_RANK[type.trim().toLowerCase()]
212
- return rank ?? null
213
- }
214
-
215
- /** epic < story < task < bug; unknown last. */
216
- export function compareTypes(
217
- a: string | null | undefined,
218
- b: string | null | undefined,
219
- direction: TableSortDirection
220
- ): number {
221
- const ra = typeSortRank(a)
222
- const rb = typeSortRank(b)
223
- const ranked = compareNullable(ra, rb, direction)
224
- if (ranked !== null && ranked !== 0) return ranked
225
- if (ranked === 0 && ra !== null) return 0
226
- return compareStrings(a, b, direction)
227
- }
228
-
229
- /** Stable label from unique contributors (name, else email), sorted. */
230
- export function peopleSortLabel(
231
- reporters?: readonly ContributorIdentity[] | null,
232
- resolvers?: readonly ContributorIdentity[] | null
233
- ): string {
234
- const seen = new Set<string>()
235
- const labels: string[] = []
236
- for (const person of [...(reporters ?? []), ...(resolvers ?? [])]) {
237
- const id = (person.email || person.name || "").trim().toLowerCase()
238
- if (!id || seen.has(id)) continue
239
- seen.add(id)
240
- labels.push((person.name || person.email || "").trim().toLowerCase())
241
- }
242
- labels.sort((a, b) => a.localeCompare(b, undefined, { sensitivity: "base" }))
243
- return labels.join(", ")
244
- }
245
-
246
- export function comparePeople(
247
- a: {
248
- reporters?: readonly ContributorIdentity[] | null
249
- resolvers?: readonly ContributorIdentity[] | null
250
- },
251
- b: {
252
- reporters?: readonly ContributorIdentity[] | null
253
- resolvers?: readonly ContributorIdentity[] | null
254
- },
255
- direction: TableSortDirection
256
- ): number {
257
- return compareStrings(
258
- peopleSortLabel(a.reporters, a.resolvers),
259
- peopleSortLabel(b.reporters, b.resolvers),
260
- direction
261
- )
262
- }
263
-
264
- export type SortableRowFields = {
265
- id?: string | null
266
- title?: string | null
267
- size?: string | null
268
- epicId?: string | null
269
- epicTitle?: string | null
270
- points?: number | null
271
- status?: string | null
272
- priority?: string | null
273
- /** Work-item kind or item type (`story` / `task` / `bug` / `epic`). */
274
- kind?: string | null
275
- type?: string | null
276
- reporters?: readonly ContributorIdentity[] | null
277
- resolvers?: readonly ContributorIdentity[] | null
278
- }
279
-
280
- export function compareSortableRows(
281
- a: SortableRowFields,
282
- b: SortableRowFields,
283
- state: TableSortState
284
- ): number {
285
- switch (state.key) {
286
- case "id":
287
- return compareIds(a.id, b.id, state.direction)
288
- case "title":
289
- return compareStrings(a.title, b.title, state.direction)
290
- case "size":
291
- return compareSizes(a.size, b.size, state.direction)
292
- case "epic":
293
- return compareEpics(a, b, state.direction)
294
- case "points":
295
- return comparePoints(a.points, b.points, state.direction)
296
- case "status":
297
- return compareStatuses(a.status, b.status, state.direction)
298
- case "priority":
299
- return comparePriorities(a.priority, b.priority, state.direction)
300
- case "type":
301
- return compareTypes(a.kind ?? a.type, b.kind ?? b.type, state.direction)
302
- case "people":
303
- return comparePeople(a, b, state.direction)
304
- default:
305
- return 0
306
- }
307
- }
308
-
309
- /** Stable sort: tie-break by original index. */
310
- export function sortRowsByTableSort<T extends SortableRowFields>(
311
- rows: readonly T[],
312
- state: TableSortState | null
313
- ): T[] {
314
- if (!state) return [...rows]
315
- return rows
316
- .map((row, index) => ({ row, index }))
317
- .sort((a, b) => {
318
- const cmp = compareSortableRows(a.row, b.row, state)
319
- return cmp !== 0 ? cmp : a.index - b.index
320
- })
321
- .map(({ row }) => row)
322
- }
323
-
324
- /**
325
- * Cycle sort for a column: none → asc → desc → none (default order).
326
- * Switching to a different column always starts at asc.
327
- */
328
- export function toggleTableSort(
329
- current: TableSortState | null,
330
- key: TableSortKey
331
- ): TableSortState | null {
332
- if (current?.key !== key) {
333
- return { key, direction: "asc" }
334
- }
335
- if (current.direction === "asc") {
336
- return { key, direction: "desc" }
337
- }
338
- return null
339
- }
340
-
341
- export function tableSortResetKey(state: TableSortState | null): string {
342
- if (!state) return ""
343
- return `${state.key}:${state.direction}`
344
- }
@@ -1,258 +0,0 @@
1
- /** Timeframe filters for solved work items (`completed_at`). */
2
-
3
- import {
4
- getISOWeek,
5
- getISOWeekYear,
6
- getISOWeeksInYear,
7
- startOfDay,
8
- endOfDay,
9
- isWithinInterval,
10
- } from "date-fns"
11
-
12
- import { parseTaskmarkDate } from "@/lib/format-date"
13
-
14
- export type TimeframeFilterMode = "none" | "weeks" | "range"
15
-
16
- export type TimeframeFilterState =
17
- | { mode: "none" }
18
- | {
19
- mode: "weeks"
20
- year: number
21
- weekFrom: number
22
- weekTo: number
23
- }
24
- | {
25
- mode: "range"
26
- /** YYYY-MM-DD */
27
- from: string
28
- /** YYYY-MM-DD */
29
- to: string
30
- }
31
-
32
- export const DEFAULT_TIMEFRAME_FILTER: TimeframeFilterState = { mode: "none" }
33
-
34
- export function isTimeframeActive(tf: TimeframeFilterState): boolean {
35
- return tf.mode !== "none"
36
- }
37
-
38
- export function timeframeResetKey(tf: TimeframeFilterState): string {
39
- if (tf.mode === "none") return "none"
40
- if (tf.mode === "weeks") {
41
- return `w:${tf.year}:${tf.weekFrom}-${tf.weekTo}`
42
- }
43
- return `r:${tf.from}:${tf.to}`
44
- }
45
-
46
- /** Calendar date as YYYY-MM-DD (local). */
47
- export function toDateOnlyString(date: Date): string {
48
- const y = date.getFullYear()
49
- const m = String(date.getMonth() + 1).padStart(2, "0")
50
- const d = String(date.getDate()).padStart(2, "0")
51
- return `${y}-${m}-${d}`
52
- }
53
-
54
- export function isoWeekParts(date: Date): { year: number; week: number } {
55
- return { year: getISOWeekYear(date), week: getISOWeek(date) }
56
- }
57
-
58
- /** Shift an ISO week by `delta` weeks (negative = earlier). Handles year bounds. */
59
- export function shiftIsoWeek(
60
- year: number,
61
- week: number,
62
- delta: number
63
- ): { year: number; week: number } {
64
- let y = year
65
- let w = week + delta
66
- while (w < 1) {
67
- y -= 1
68
- w += weeksInIsoYear(y)
69
- }
70
- while (w > weeksInIsoYear(y)) {
71
- w -= weeksInIsoYear(y)
72
- y += 1
73
- }
74
- return { year: y, week: w }
75
- }
76
-
77
- export function weeksInIsoYear(year: number): number {
78
- // 28 Dec is always in the last ISO week of that ISO year
79
- return getISOWeeksInYear(new Date(year, 11, 28))
80
- }
81
-
82
- export type YearWeekBounds = {
83
- years: number[]
84
- /** min/max ISO week observed per ISO week-year (from data). */
85
- weeksByYear: Record<number, { min: number; max: number }>
86
- }
87
-
88
- /** Collect ISO years and week bounds from completed_at values. */
89
- export function deriveYearWeekBounds(
90
- completedAts: readonly (string | null | undefined)[]
91
- ): YearWeekBounds {
92
- const weeksByYear: Record<number, { min: number; max: number }> = {}
93
- for (const raw of completedAts) {
94
- const date = parseTaskmarkDate(raw)
95
- if (!date) continue
96
- const { year, week } = isoWeekParts(date)
97
- const cur = weeksByYear[year]
98
- if (!cur) {
99
- weeksByYear[year] = { min: week, max: week }
100
- } else {
101
- cur.min = Math.min(cur.min, week)
102
- cur.max = Math.max(cur.max, week)
103
- }
104
- }
105
- const years = Object.keys(weeksByYear)
106
- .map(Number)
107
- .sort((a, b) => a - b)
108
- return { years, weeksByYear }
109
- }
110
-
111
- export function defaultWeekRangeForYear(
112
- year: number,
113
- bounds: YearWeekBounds
114
- ): { weekFrom: number; weekTo: number } {
115
- const observed = bounds.weeksByYear[year]
116
- if (observed) return { weekFrom: observed.min, weekTo: observed.max }
117
- return { weekFrom: 1, weekTo: weeksInIsoYear(year) }
118
- }
119
-
120
- /**
121
- * Default slider range: current ISO week and the two weeks before it
122
- * (three weeks total), clamped within the current ISO week-year.
123
- */
124
- export function recentWeekRange(
125
- now: Date = new Date()
126
- ): { year: number; weekFrom: number; weekTo: number } {
127
- const { year, week } = isoWeekParts(now)
128
- return {
129
- year,
130
- weekFrom: Math.max(1, week - 2),
131
- weekTo: week,
132
- }
133
- }
134
-
135
- /** True when weeks filter spans more than one week (slider UI). */
136
- export function isWeekRangeSelection(
137
- timeframe: TimeframeFilterState
138
- ): boolean {
139
- if (timeframe.mode !== "weeks") return false
140
- return timeframe.weekFrom !== timeframe.weekTo
141
- }
142
-
143
- /** Map key for ISO week counts: `2026-W30`. */
144
- export function isoWeekCountKey(year: number, week: number): string {
145
- return `${year}-W${week}`
146
- }
147
-
148
- /** Solved item with optional story points (stories + epic-direct leaves). */
149
- export type SolvedCompletionSample = {
150
- completedAt: string | null | undefined
151
- points?: number | null
152
- }
153
-
154
- /**
155
- * Count solved items per ISO week (stories + epic-direct tasks/bugs).
156
- * Items without a parseable completed_at are skipped.
157
- */
158
- export function countCompletionsByIsoWeek(
159
- completedAts: readonly (string | null | undefined)[]
160
- ): Map<string, number> {
161
- const counts = new Map<string, number>()
162
- for (const raw of completedAts) {
163
- const date = parseTaskmarkDate(raw)
164
- if (!date) continue
165
- const { year, week } = isoWeekParts(date)
166
- const key = isoWeekCountKey(year, week)
167
- counts.set(key, (counts.get(key) ?? 0) + 1)
168
- }
169
- return counts
170
- }
171
-
172
- /**
173
- * Count solved items per local calendar day (`YYYY-MM-DD`).
174
- */
175
- export function countCompletionsByDate(
176
- completedAts: readonly (string | null | undefined)[]
177
- ): Map<string, number> {
178
- const counts = new Map<string, number>()
179
- for (const raw of completedAts) {
180
- const date = parseTaskmarkDate(raw)
181
- if (!date) continue
182
- const key = toDateOnlyString(date)
183
- counts.set(key, (counts.get(key) ?? 0) + 1)
184
- }
185
- return counts
186
- }
187
-
188
- function samplePoints(points: number | null | undefined): number {
189
- return typeof points === "number" && Number.isFinite(points) && points > 0
190
- ? points
191
- : 0
192
- }
193
-
194
- /**
195
- * Sum story points of solved items per ISO week.
196
- */
197
- export function sumPointsByIsoWeek(
198
- samples: readonly SolvedCompletionSample[]
199
- ): Map<string, number> {
200
- const totals = new Map<string, number>()
201
- for (const sample of samples) {
202
- const date = parseTaskmarkDate(sample.completedAt)
203
- if (!date) continue
204
- const pts = samplePoints(sample.points)
205
- if (pts <= 0) continue
206
- const { year, week } = isoWeekParts(date)
207
- const key = isoWeekCountKey(year, week)
208
- totals.set(key, (totals.get(key) ?? 0) + pts)
209
- }
210
- return totals
211
- }
212
-
213
- /**
214
- * Sum story points of solved items per local calendar day (`YYYY-MM-DD`).
215
- */
216
- export function sumPointsByDate(
217
- samples: readonly SolvedCompletionSample[]
218
- ): Map<string, number> {
219
- const totals = new Map<string, number>()
220
- for (const sample of samples) {
221
- const date = parseTaskmarkDate(sample.completedAt)
222
- if (!date) continue
223
- const pts = samplePoints(sample.points)
224
- if (pts <= 0) continue
225
- const key = toDateOnlyString(date)
226
- totals.set(key, (totals.get(key) ?? 0) + pts)
227
- }
228
- return totals
229
- }
230
-
231
- /**
232
- * When a timeframe is active, rows without completed_at never match.
233
- * Weeks: ISO-8601 week-year + week in [weekFrom, weekTo].
234
- * Range: calendar day of completed_at within inclusive [from, to].
235
- */
236
- export function passesTimeframeFilter(
237
- timeframe: TimeframeFilterState,
238
- completedAt: string | null | undefined
239
- ): boolean {
240
- if (timeframe.mode === "none") return true
241
- const date = parseTaskmarkDate(completedAt)
242
- if (!date) return false
243
-
244
- if (timeframe.mode === "weeks") {
245
- const { year, week } = isoWeekParts(date)
246
- if (year !== timeframe.year) return false
247
- const from = Math.min(timeframe.weekFrom, timeframe.weekTo)
248
- const to = Math.max(timeframe.weekFrom, timeframe.weekTo)
249
- return week >= from && week <= to
250
- }
251
-
252
- const fromDate = parseTaskmarkDate(timeframe.from)
253
- const toDate = parseTaskmarkDate(timeframe.to)
254
- if (!fromDate || !toDate) return false
255
- const start = startOfDay(fromDate <= toDate ? fromDate : toDate)
256
- const end = endOfDay(fromDate <= toDate ? toDate : fromDate)
257
- return isWithinInterval(date, { start, end })
258
- }
@@ -1,32 +0,0 @@
1
- import {
2
- asNumberOrNull,
3
- } from "@/lib/taskmark/frontmatter"
4
-
5
- export type TimingFields = {
6
- estimateMinutes: number | null
7
- /** Billable work-log minutes (floor of actual_ms / 60000). */
8
- actualMinutes: number | null
9
- /** Precise billable work-log duration in milliseconds. */
10
- actualMs: number | null
11
- }
12
-
13
- /**
14
- * Read estimate and actual from board frontmatter.
15
- * Est = optional/historical planned minutes (sizing no longer suggests time).
16
- * Actual = session time spent (prefers actual_ms; falls back to minutes / effort).
17
- */
18
- export function readTimingFields(
19
- frontmatter: Record<string, unknown>
20
- ): TimingFields {
21
- const actualMinutes =
22
- asNumberOrNull(frontmatter.actual_minutes) ??
23
- asNumberOrNull(frontmatter.effort_minutes)
24
- const actualMs =
25
- asNumberOrNull(frontmatter.actual_ms) ??
26
- (actualMinutes != null ? actualMinutes * 60_000 : null)
27
- return {
28
- estimateMinutes: asNumberOrNull(frontmatter.estimate_minutes),
29
- actualMinutes,
30
- actualMs,
31
- }
32
- }
@@ -1,28 +0,0 @@
1
- export type DiscoveredProject = {
2
- /** Stable id — realpath of boardPath */
3
- id: string
4
- /** Display name */
5
- name: string
6
- /**
7
- * Absolute path to the project root:
8
- * parent of nested `taskmark/`, or the dedicated `*-taskmark` folder itself.
9
- */
10
- projectPath: string
11
- /**
12
- * Absolute path to the board directory:
13
- * `<project>/taskmark` (single) or `<name>-taskmark` root (multi).
14
- */
15
- boardPath: string
16
- }
17
-
18
- export type ValidateMasterFolderResult =
19
- | {
20
- ok: true
21
- masterPath: string
22
- projects: DiscoveredProject[]
23
- }
24
- | {
25
- ok: false
26
- error: string
27
- code: "empty" | "not_found" | "not_directory" | "unreadable" | "no_projects"
28
- }