@taskmark/ui 0.2.6 → 0.3.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 (320) hide show
  1. package/README.md +16 -1
  2. package/app/board/page.tsx +3 -272
  3. package/app/globals.css +25 -0
  4. package/app/layout.tsx +15 -5
  5. package/app/page.tsx +14 -14
  6. package/app/setup/actions.ts +4 -4
  7. package/app/setup/page.tsx +9 -4
  8. package/bin/lib/resolve-board.mjs +1 -4
  9. package/bin/taskmark.js +15 -2
  10. package/components/board/app-bar.tsx +3 -0
  11. package/components/board/board-screen.tsx +229 -0
  12. package/components/board/changelog-panel.tsx +26 -0
  13. package/components/board/epic-list.tsx +4 -2
  14. package/components/board/list-view-switcher.tsx +7 -3
  15. package/components/board/markdown-content.tsx +21 -1
  16. package/components/board/mermaid-diagram.tsx +88 -0
  17. package/components/board/metric-stat-card.tsx +4 -4
  18. package/components/board/overall-tree-list.tsx +467 -0
  19. package/components/board/overall-work-items-list.tsx +6 -2
  20. package/components/board/points-heatmap.tsx +183 -0
  21. package/components/board/project-status-metrics-strip.tsx +5 -22
  22. package/components/board/static-board-app.tsx +29 -94
  23. package/components/board/status-badge.tsx +8 -0
  24. package/components/board/story-list.tsx +3 -1
  25. package/components/board/task-list.tsx +5 -1
  26. package/components/board/work-item-detail-body.tsx +123 -8
  27. package/components/board/work-items-list.tsx +2 -0
  28. package/components/theme-provider.tsx +39 -0
  29. package/components/theme-toggle.tsx +27 -0
  30. package/components/ui/sonner.tsx +2 -2
  31. package/dist/prod-next/BUILD_ID +1 -1
  32. package/dist/prod-next/app-path-routes-manifest.json +2 -2
  33. package/dist/prod-next/build-manifest.json +6 -6
  34. package/dist/prod-next/prerender-manifest.json +3 -27
  35. package/dist/prod-next/react-loadable-manifest.json +392 -2
  36. package/dist/prod-next/server/app/_global-error/page.js +2 -2
  37. package/dist/prod-next/server/app/_global-error/page.js.nft.json +1 -1
  38. package/dist/prod-next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  39. package/dist/prod-next/server/app/_global-error.html +1 -1
  40. package/dist/prod-next/server/app/_global-error.rsc +1 -1
  41. package/dist/prod-next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  42. package/dist/prod-next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  43. package/dist/prod-next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  44. package/dist/prod-next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  45. package/dist/prod-next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  46. package/dist/prod-next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  47. package/dist/prod-next/server/app/_not-found/page.js +2 -2
  48. package/dist/prod-next/server/app/_not-found/page.js.nft.json +1 -1
  49. package/dist/prod-next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  50. package/dist/prod-next/server/app/_not-found.html +1 -1
  51. package/dist/prod-next/server/app/_not-found.rsc +19 -17
  52. package/dist/prod-next/server/app/_not-found.segments/_full.segment.rsc +19 -17
  53. package/dist/prod-next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  54. package/dist/prod-next/server/app/_not-found.segments/_index.segment.rsc +8 -6
  55. package/dist/prod-next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  56. package/dist/prod-next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  57. package/dist/prod-next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  58. package/dist/prod-next/server/app/api/taskmark-reload/route.js +1 -1
  59. package/dist/prod-next/server/app/api/taskmark-reload/route.js.nft.json +1 -1
  60. package/dist/prod-next/server/app/board/page.js +2 -50
  61. package/dist/prod-next/server/app/board/page.js.nft.json +1 -1
  62. package/dist/prod-next/server/app/board/page_client-reference-manifest.js +1 -1
  63. package/dist/prod-next/server/app/favicon.ico/route.js +1 -1
  64. package/dist/prod-next/server/app/favicon.ico/route.js.nft.json +1 -1
  65. package/dist/prod-next/server/app/page.js +2 -2
  66. package/dist/prod-next/server/app/page.js.nft.json +1 -1
  67. package/dist/prod-next/server/app/page_client-reference-manifest.js +1 -1
  68. package/dist/prod-next/server/app/setup/page.js +2 -2
  69. package/dist/prod-next/server/app/setup/page.js.nft.json +1 -1
  70. package/dist/prod-next/server/app/setup/page_client-reference-manifest.js +1 -1
  71. package/dist/prod-next/server/app-paths-manifest.json +2 -2
  72. package/dist/prod-next/server/chunks/102.js +90 -0
  73. package/dist/prod-next/server/chunks/11.js +1 -0
  74. package/dist/prod-next/server/chunks/1286.js +1 -0
  75. package/dist/prod-next/server/chunks/1412.js +38 -0
  76. package/dist/prod-next/server/chunks/1605.js +1 -0
  77. package/dist/prod-next/server/chunks/169.js +1 -0
  78. package/dist/prod-next/server/chunks/18.js +86 -0
  79. package/dist/prod-next/server/chunks/2.js +1 -0
  80. package/dist/prod-next/server/chunks/2022.js +1 -0
  81. package/dist/prod-next/server/chunks/2156.js +1 -0
  82. package/dist/prod-next/server/chunks/2157.js +1 -0
  83. package/dist/prod-next/server/chunks/2325.js +82 -0
  84. package/dist/prod-next/server/chunks/2838.js +1 -0
  85. package/dist/prod-next/server/chunks/2897.js +79 -0
  86. package/dist/prod-next/server/chunks/3227.js +1 -0
  87. package/dist/prod-next/server/chunks/3266.js +1 -0
  88. package/dist/prod-next/server/chunks/3307.js +49 -0
  89. package/dist/prod-next/server/chunks/3387.js +19 -0
  90. package/dist/prod-next/server/chunks/3428.js +32 -0
  91. package/dist/prod-next/server/chunks/3479.js +1 -0
  92. package/dist/prod-next/server/chunks/367.js +115 -0
  93. package/dist/prod-next/server/chunks/3698.js +93 -0
  94. package/dist/prod-next/server/chunks/3709.js +148 -0
  95. package/dist/prod-next/server/chunks/41.js +1 -0
  96. package/dist/prod-next/server/chunks/4107.js +62 -0
  97. package/dist/prod-next/server/chunks/4569.js +34 -0
  98. package/dist/prod-next/server/chunks/{741.js → 4741.js} +1 -1
  99. package/dist/prod-next/server/chunks/4755.js +153 -0
  100. package/dist/prod-next/server/chunks/487.js +1 -0
  101. package/dist/prod-next/server/chunks/5002.js +1 -0
  102. package/dist/prod-next/server/chunks/5112.js +1 -0
  103. package/dist/prod-next/server/chunks/5289.js +8 -0
  104. package/dist/prod-next/server/chunks/5318.js +1 -0
  105. package/dist/prod-next/server/chunks/5452.js +23 -0
  106. package/dist/prod-next/server/chunks/5453.js +1 -0
  107. package/dist/prod-next/server/chunks/5749.js +27 -0
  108. package/dist/prod-next/server/chunks/5782.js +36 -0
  109. package/dist/prod-next/server/chunks/6163.js +104 -0
  110. package/dist/prod-next/server/chunks/6169.js +64 -0
  111. package/dist/prod-next/server/chunks/6208.js +172 -0
  112. package/dist/prod-next/server/chunks/6399.js +24 -0
  113. package/dist/prod-next/server/chunks/6496.js +1 -0
  114. package/dist/prod-next/server/chunks/6823.js +215 -0
  115. package/dist/prod-next/server/chunks/6888.js +1 -0
  116. package/dist/prod-next/server/chunks/6980.js +1 -0
  117. package/dist/prod-next/server/chunks/7245.js +77 -0
  118. package/dist/prod-next/server/chunks/7307.js +1 -0
  119. package/dist/prod-next/server/chunks/7372.js +287 -0
  120. package/dist/prod-next/server/chunks/7384.js +226 -0
  121. package/dist/prod-next/server/chunks/7516.js +1 -0
  122. package/dist/prod-next/server/chunks/7531.js +24 -0
  123. package/dist/prod-next/server/chunks/7591.js +1 -0
  124. package/dist/prod-next/server/chunks/7755.js +138 -0
  125. package/dist/prod-next/server/chunks/7916.js +1 -0
  126. package/dist/prod-next/server/chunks/8078.js +94 -0
  127. package/dist/prod-next/server/chunks/8253.js +41 -0
  128. package/dist/prod-next/server/chunks/8635.js +1 -0
  129. package/dist/prod-next/server/chunks/8688.js +1 -0
  130. package/dist/prod-next/server/chunks/8872.js +1 -0
  131. package/dist/prod-next/server/chunks/9006.js +1 -0
  132. package/dist/prod-next/server/chunks/9018.js +1 -0
  133. package/dist/prod-next/server/chunks/9047.js +1 -0
  134. package/dist/prod-next/server/chunks/9108.js +1 -0
  135. package/dist/prod-next/server/chunks/9280.js +256 -0
  136. package/dist/prod-next/server/chunks/9419.js +1 -0
  137. package/dist/prod-next/server/chunks/9430.js +1 -0
  138. package/dist/prod-next/server/chunks/9586.js +1 -0
  139. package/dist/prod-next/server/chunks/9775.js +1 -0
  140. package/dist/prod-next/server/chunks/992.js +1 -0
  141. package/dist/prod-next/server/chunks/9926.js +1 -0
  142. package/dist/prod-next/server/chunks/9984.js +8 -0
  143. package/dist/prod-next/server/middleware-build-manifest.js +1 -1
  144. package/dist/prod-next/server/middleware-react-loadable-manifest.js +1 -1
  145. package/dist/prod-next/server/pages/404.html +1 -1
  146. package/dist/prod-next/server/pages/500.html +1 -1
  147. package/dist/prod-next/server/server-reference-manifest.js +1 -1
  148. package/dist/prod-next/server/server-reference-manifest.json +1 -1
  149. package/dist/prod-next/server/webpack-runtime.js +1 -1
  150. package/dist/prod-next/static/chunks/1213.e5c6e70a79b5f7e6.js +24 -0
  151. package/dist/prod-next/static/chunks/1519.2f596e5f5af9ef57.js +62 -0
  152. package/dist/prod-next/static/chunks/1759-f5b8fb456f8fb420.js +1 -0
  153. package/dist/prod-next/static/chunks/1974.885c9a133b86d8a4.js +32 -0
  154. package/dist/prod-next/static/chunks/2280.6a7f540787704698.js +1 -0
  155. package/dist/prod-next/static/chunks/2521.7f745f50d30076e7.js +77 -0
  156. package/dist/prod-next/static/chunks/2585.4d6aa847c780c666.js +1 -0
  157. package/dist/prod-next/static/chunks/2589.1aad68c09021b1ac.js +1 -0
  158. package/dist/prod-next/static/chunks/2600.45ba17a0f756fc31.js +1 -0
  159. package/dist/prod-next/static/chunks/2619.9aac8983f30c7c8a.js +1 -0
  160. package/dist/prod-next/static/chunks/26d302b2.9f6383e42abdfe16.js +122 -0
  161. package/dist/prod-next/static/chunks/2768.305914f7900745b6.js +1 -0
  162. package/dist/prod-next/static/chunks/2931.c2acdbf72808b646.js +41 -0
  163. package/dist/prod-next/static/chunks/3012-838f69b72a0dc1b3.js +1 -0
  164. package/dist/prod-next/static/chunks/3016.406e568aa95ff867.js +1 -0
  165. package/dist/prod-next/static/chunks/3022.972047558a20553a.js +172 -0
  166. package/dist/prod-next/static/chunks/3064.3a2a1e7cd4fdca5f.js +1 -0
  167. package/dist/prod-next/static/chunks/3174.03fbed7b7d7a8256.js +1 -0
  168. package/dist/prod-next/static/chunks/3189.b048866768087750.js +1 -0
  169. package/dist/prod-next/static/chunks/3217.1a053843c58b70b5.js +24 -0
  170. package/dist/prod-next/static/chunks/3308.30b95d524f9c1daf.js +74 -0
  171. package/dist/prod-next/static/chunks/331.fc5d78e1e91daf43.js +1 -0
  172. package/dist/prod-next/static/chunks/3510.5d4d1c79533e080c.js +1 -0
  173. package/dist/prod-next/static/chunks/364.ce5400a9dd70b9dc.js +1 -0
  174. package/dist/prod-next/static/chunks/3661-1f08d73aaffb011d.js +1 -0
  175. package/dist/prod-next/static/chunks/370.57cfa27da8567918.js +1 -0
  176. package/dist/prod-next/static/chunks/3789.c418b69121761983.js +1 -0
  177. package/dist/prod-next/static/chunks/3794-c66b3d8325973459.js +32 -0
  178. package/dist/prod-next/static/chunks/3831.25ae62d10dccc27a.js +1 -0
  179. package/dist/prod-next/static/chunks/395.b41e9d76613d37b5.js +90 -0
  180. package/dist/prod-next/static/chunks/3a7aa434.93dbd20997cfd24f.js +82 -0
  181. package/dist/prod-next/static/chunks/4020.3cc19c463c49f969.js +23 -0
  182. package/dist/prod-next/static/chunks/4035.0acc428926d5c8dd.js +1 -0
  183. package/dist/prod-next/static/chunks/405.0902e4f6eb7bd9a2.js +215 -0
  184. package/dist/prod-next/static/chunks/4159.49ae537ff687bdc6.js +138 -0
  185. package/dist/prod-next/static/chunks/4208.384b381ca2757643.js +287 -0
  186. package/dist/prod-next/static/chunks/4263.ffa8d9bd8a0faaae.js +1 -0
  187. package/dist/prod-next/static/chunks/4561.d1a3aaca8bae3224.js +34 -0
  188. package/dist/prod-next/static/chunks/4592.d0f37bc216b9d988.js +93 -0
  189. package/dist/prod-next/static/chunks/4799.0dc7aa21bff2fd2a.js +1 -0
  190. package/dist/prod-next/static/chunks/4bd1b696-e356ca5ba0218e27.js +1 -0
  191. package/dist/prod-next/static/chunks/514.b804c51b26f5e126.js +1 -0
  192. package/dist/prod-next/static/chunks/5270.28592864d38e881c.js +1 -0
  193. package/dist/prod-next/static/chunks/52733464.3870f99cc446f9ff.js +1 -0
  194. package/dist/prod-next/static/chunks/5354.b559c717a607dc5c.js +1 -0
  195. package/dist/prod-next/static/chunks/5448.d3972d9fb464b54f.js +38 -0
  196. package/dist/prod-next/static/chunks/587.d52737d7288c11b4.js +1 -0
  197. package/dist/prod-next/static/chunks/5909.9e37f7b495b11995.js +115 -0
  198. package/dist/prod-next/static/chunks/5949.5504b3545fcc3d34.js +104 -0
  199. package/dist/prod-next/static/chunks/6322-4e97920c006f7933.js +1 -0
  200. package/dist/prod-next/static/chunks/6361.893d04ac34fa1b49.js +148 -0
  201. package/dist/prod-next/static/chunks/6774.8cd53427dbf32cac.js +86 -0
  202. package/dist/prod-next/static/chunks/6968.b80277c724dbc96e.js +1 -0
  203. package/dist/prod-next/static/chunks/7113.4b9e7ea870aa300a.js +8 -0
  204. package/dist/prod-next/static/chunks/7236.55a9728d35f5b8a6.js +1 -0
  205. package/dist/prod-next/static/chunks/7390.dde9b5bc2f6e24b8.js +1 -0
  206. package/dist/prod-next/static/chunks/7806.a903780fcfa3a30e.js +1 -0
  207. package/dist/prod-next/static/chunks/7997.be57e92e583fe635.js +1 -0
  208. package/dist/prod-next/static/chunks/8216.64a72d4d35ea7be0.js +1 -0
  209. package/dist/prod-next/static/chunks/830.5d5274d7ad1cb58e.js +1 -0
  210. package/dist/prod-next/static/chunks/8378.fa91de3406f554c9.js +226 -0
  211. package/dist/prod-next/static/chunks/8501.cd06aa1b0c7e1c6a.js +79 -0
  212. package/dist/prod-next/static/chunks/8663.6ec5792fb4952e45.js +27 -0
  213. package/dist/prod-next/static/chunks/872.96937e758ddce860.js +1 -0
  214. package/dist/prod-next/static/chunks/8803.75bde095fe3613f5.js +1 -0
  215. package/dist/prod-next/static/chunks/8863.72f5dbb820a0e4c3.js +1 -0
  216. package/dist/prod-next/static/chunks/90542734.f7a7b2972ef5a749.js +1 -0
  217. package/dist/prod-next/static/chunks/9379.5bc9c9343ec5a16c.js +64 -0
  218. package/dist/prod-next/static/chunks/9389.906fe7aa9cd6a170.js +1 -0
  219. package/dist/prod-next/static/chunks/9472.8818ee52cfa931a4.js +94 -0
  220. package/dist/prod-next/static/chunks/966.d6babbf8119162cc.js +1 -0
  221. package/dist/prod-next/static/chunks/9884.d4ac1a961b3366f1.js +36 -0
  222. package/dist/prod-next/static/chunks/9909.67cf9940b125243b.js +1 -0
  223. package/dist/prod-next/static/chunks/app/_global-error/page-8be5492b3b872a4c.js +1 -0
  224. package/dist/prod-next/static/chunks/app/_not-found/page-799e445a538b0024.js +1 -0
  225. package/dist/prod-next/static/chunks/app/api/taskmark-reload/route-8be5492b3b872a4c.js +1 -0
  226. package/dist/prod-next/static/chunks/app/board/page-5c181f45738daf1c.js +1 -0
  227. package/dist/prod-next/static/chunks/app/layout-21782e6d13a6f275.js +1 -0
  228. package/dist/prod-next/static/chunks/app/page-51bfe4356fe233e3.js +1 -0
  229. package/dist/prod-next/static/chunks/app/setup/page-3ccfba00c10f9b17.js +1 -0
  230. package/dist/prod-next/static/chunks/d3ac728e.7964f816a1ca64e5.js +1 -0
  231. package/dist/prod-next/static/chunks/e413bedd.3a12a8cb02e28fdf.js +153 -0
  232. package/dist/prod-next/static/chunks/ea233666.f00b64a7d99b4950.js +62 -0
  233. package/dist/prod-next/static/chunks/framework-711ef29bc66f648c.js +1 -0
  234. package/dist/prod-next/static/chunks/main-app-dd26d4f9d120646e.js +1 -0
  235. package/dist/prod-next/static/chunks/{main-bb33c46a9c25dee8.js → main-df4bcaed74f274eb.js} +2 -2
  236. package/dist/prod-next/static/chunks/next/dist/client/components/builtin/app-error-8be5492b3b872a4c.js +1 -0
  237. package/dist/prod-next/static/chunks/next/dist/client/components/builtin/forbidden-8be5492b3b872a4c.js +1 -0
  238. package/dist/prod-next/static/chunks/next/dist/client/components/builtin/global-error-45a0cf77e03361ed.js +1 -0
  239. package/dist/prod-next/static/chunks/next/dist/client/components/builtin/not-found-8be5492b3b872a4c.js +1 -0
  240. package/dist/prod-next/static/chunks/next/dist/client/components/builtin/unauthorized-8be5492b3b872a4c.js +1 -0
  241. package/dist/prod-next/static/chunks/webpack-713747aaa9716c4c.js +1 -0
  242. package/dist/prod-next/static/css/cb78d4b0062d9a3f.css +1 -0
  243. package/dist/public/taskmark-snapshot.json +1 -1
  244. package/lib/taskmark/board-index.ts +101 -0
  245. package/lib/taskmark/build-snapshot.ts +28 -7
  246. package/lib/taskmark/derive-parents.test.ts +23 -0
  247. package/lib/taskmark/derive-parents.ts +323 -0
  248. package/lib/taskmark/detail-load.ts +55 -7
  249. package/lib/taskmark/detail-types.ts +10 -2
  250. package/lib/taskmark/dev-reload-token.ts +1 -1
  251. package/lib/taskmark/discover.ts +4 -7
  252. package/lib/taskmark/epic-types.ts +2 -1
  253. package/lib/taskmark/flat-work-item-types.ts +1 -4
  254. package/lib/taskmark/identity.ts +3 -3
  255. package/lib/taskmark/item-types.ts +2 -1
  256. package/lib/taskmark/list-filters.test.ts +23 -0
  257. package/lib/taskmark/list-filters.ts +7 -2
  258. package/lib/taskmark/list-view-mode.test.ts +45 -0
  259. package/lib/taskmark/list-view-mode.ts +20 -9
  260. package/lib/taskmark/load-changelog.test.ts +32 -0
  261. package/lib/taskmark/load-changelog.ts +18 -0
  262. package/lib/taskmark/overall-tree.test.ts +196 -0
  263. package/lib/taskmark/overall-tree.ts +194 -0
  264. package/lib/taskmark/parse-detail.ts +5 -5
  265. package/lib/taskmark/parse-epics.ts +19 -16
  266. package/lib/taskmark/parse-flat-lists.ts +32 -28
  267. package/lib/taskmark/parse-items.ts +47 -9
  268. package/lib/taskmark/parse-stories.ts +18 -15
  269. package/lib/taskmark/points-calendar.test.ts +72 -0
  270. package/lib/taskmark/points-calendar.ts +86 -0
  271. package/lib/taskmark/project-metrics.ts +11 -7
  272. package/lib/taskmark/snapshot-types.ts +2 -0
  273. package/lib/taskmark/story-types.ts +2 -1
  274. package/lib/taskmark/table-sort.ts +4 -3
  275. package/lib/taskmark/timing.ts +29 -18
  276. package/lib/taskmark/validate.ts +1 -1
  277. package/lib/theme-cookie.test.ts +27 -0
  278. package/lib/theme-cookie.ts +43 -0
  279. package/package.json +3 -1
  280. package/public/taskmark-snapshot.json +1 -1
  281. package/scripts/build-static.mjs +61 -3
  282. package/dist/prod-next/server/app/setup.html +0 -1
  283. package/dist/prod-next/server/app/setup.meta +0 -17
  284. package/dist/prod-next/server/app/setup.rsc +0 -22
  285. package/dist/prod-next/server/app/setup.segments/_full.segment.rsc +0 -22
  286. package/dist/prod-next/server/app/setup.segments/_head.segment.rsc +0 -6
  287. package/dist/prod-next/server/app/setup.segments/_index.segment.rsc +0 -8
  288. package/dist/prod-next/server/app/setup.segments/_tree.segment.rsc +0 -5
  289. package/dist/prod-next/server/app/setup.segments/setup/__PAGE__.segment.rsc +0 -6
  290. package/dist/prod-next/server/app/setup.segments/setup.segment.rsc +0 -5
  291. package/dist/prod-next/server/chunks/318.js +0 -1
  292. package/dist/prod-next/server/chunks/490.js +0 -8
  293. package/dist/prod-next/server/chunks/57.js +0 -19
  294. package/dist/prod-next/server/chunks/616.js +0 -1
  295. package/dist/prod-next/server/chunks/708.js +0 -1
  296. package/dist/prod-next/server/chunks/724.js +0 -1
  297. package/dist/prod-next/static/chunks/4bd1b696-deb4a0a1da1923b0.js +0 -1
  298. package/dist/prod-next/static/chunks/51.e9139a9ea6eb36b9.js +0 -1
  299. package/dist/prod-next/static/chunks/613-6f794154d28bb75a.js +0 -1
  300. package/dist/prod-next/static/chunks/669-8103441c67b185da.js +0 -1
  301. package/dist/prod-next/static/chunks/701-df3ee5f1cf837b1a.js +0 -1
  302. package/dist/prod-next/static/chunks/794-25668765560cb197.js +0 -32
  303. package/dist/prod-next/static/chunks/app/_global-error/page-d34451c04262dd7d.js +0 -1
  304. package/dist/prod-next/static/chunks/app/_not-found/page-0b3785af737e7968.js +0 -1
  305. package/dist/prod-next/static/chunks/app/api/taskmark-reload/route-d34451c04262dd7d.js +0 -1
  306. package/dist/prod-next/static/chunks/app/board/page-cd1d9be0c0127225.js +0 -1
  307. package/dist/prod-next/static/chunks/app/layout-856e8a282e69e7d0.js +0 -1
  308. package/dist/prod-next/static/chunks/app/page-d34451c04262dd7d.js +0 -1
  309. package/dist/prod-next/static/chunks/app/setup/page-c3003359e8becc84.js +0 -1
  310. package/dist/prod-next/static/chunks/framework-b29f9083d3cda3b2.js +0 -1
  311. package/dist/prod-next/static/chunks/main-app-bfb36455d24b3e5a.js +0 -1
  312. package/dist/prod-next/static/chunks/next/dist/client/components/builtin/app-error-d34451c04262dd7d.js +0 -1
  313. package/dist/prod-next/static/chunks/next/dist/client/components/builtin/forbidden-d34451c04262dd7d.js +0 -1
  314. package/dist/prod-next/static/chunks/next/dist/client/components/builtin/global-error-dc53ab29e0491fe4.js +0 -1
  315. package/dist/prod-next/static/chunks/next/dist/client/components/builtin/not-found-d34451c04262dd7d.js +0 -1
  316. package/dist/prod-next/static/chunks/next/dist/client/components/builtin/unauthorized-d34451c04262dd7d.js +0 -1
  317. package/dist/prod-next/static/chunks/webpack-bfe8992962004e2b.js +0 -1
  318. package/dist/prod-next/static/css/2e6ec4c80894e3c0.css +0 -1
  319. /package/dist/prod-next/static/{sAWr5ATVuqk6Wqs18kAWs → EI1zQaa_kQ7DqUSE4o3Qo}/_buildManifest.js +0 -0
  320. /package/dist/prod-next/static/{sAWr5ATVuqk6Wqs18kAWs → EI1zQaa_kQ7DqUSE4o3Qo}/_ssgManifest.js +0 -0
@@ -0,0 +1,77 @@
1
+ "use strict";exports.id=7245,exports.ids=[7245],exports.modules={4328:(a,b,c)=>{function d(a,b){a.accDescr&&b.setAccDescription?.(a.accDescr),a.accTitle&&b.setAccTitle?.(a.accTitle),a.title&&b.setDiagramTitle?.(a.title)}c.d(b,{S:()=>d}),(0,c(95097).K)(d,"populateCommonDb")},87245:(a,b,c)=>{c.d(b,{diagram:()=>M});var d=c(4328),e=c(5675),f=c(34950),g=c(12644),h=c(58715),i=c(95097),j=c(92325),k=(0,i.K)((a,b)=>{let c=a<=1?100*a:a;if(c<0||c>100)throw Error(`${b} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${a}`);return c},"toPercent"),l=(0,i.K)((a,b,c)=>({x:k(b,`${c} evolution`),y:k(a,`${c} visibility`)}),"toCoordinates"),m=(0,i.K)(a=>{if(a){if("+<>"===a)return"bidirectional";if("+<"===a)return"backward";if("+>"===a)return"forward"}},"getFlowFromPort"),n=(0,i.K)(a=>{if(!a?.startsWith("+"))return{};let b=/^\+'([^']*)'/.exec(a),c=b?.[1];return a.includes("<>")?{flow:"bidirectional",label:c}:a.includes("<")?{flow:"backward",label:c}:a.includes(">")?{flow:"forward",label:c}:{label:c}},"extractFlowFromArrow"),o=(0,i.K)((a,b)=>{if((0,d.S)(a,b),a.size&&b.setSize(a.size.width,a.size.height),a.evolution){let c=a.evolution.stages.map(a=>a.secondName?`${a.name.trim()} / ${a.secondName.trim()}`:a.name.trim()),d=a.evolution.stages.filter(a=>void 0!==a.boundary).map(a=>a.boundary);b.updateAxes({stages:c,stageBoundaries:d})}if(a.anchors.forEach(a=>{let c=l(a.visibility,a.evolution,`Anchor "${a.name}"`);b.addNode(a.name,a.name,c.x,c.y,"anchor")}),a.components.forEach(a=>{let c=l(a.visibility,a.evolution,`Component "${a.name}"`),d=a.label?(a.label.negX?-1:1)*a.label.offsetX:void 0,e=a.label?(a.label.negY?-1:1)*a.label.offsetY:void 0,f=a.decorator?.strategy;b.addNode(a.name,a.name,c.x,c.y,"component",d,e,a.inertia,f)}),a.notes.forEach(a=>{let c=l(a.visibility,a.evolution,`Note "${a.text}"`);b.addNote(a.text,c.x,c.y)}),a.pipelines.forEach(a=>{let c=b.getNode(a.parent);if(!c||"number"!=typeof c.y)throw Error(`Pipeline "${a.parent}" must reference an existing component with coordinates.`);let d=c.y;b.startPipeline(a.parent),a.components.forEach(c=>{let e=`${a.parent}_${c.name}`,f=c.label?(c.label.negX?-1:1)*c.label.offsetX:void 0,g=c.label?(c.label.negY?-1:1)*c.label.offsetY:void 0,h=k(c.evolution,`Pipeline component "${c.name}" evolution`);b.addNode(e,c.name,h,d,"pipeline-component",f,g),b.addPipelineComponent(a.parent,e)})}),a.links.forEach(a=>{let c=!!a.arrow&&(a.arrow.includes("-.->")||a.arrow.includes(".-.")),d=m(a.fromPort)??m(a.toPort),{flow:e,label:f}=n(a.arrow);!d&&e&&(d=e);let g=a.linkLabel;b.addLink(b.resolveNodeId(a.from),b.resolveNodeId(a.to),c,f??g,d)}),a.evolves.forEach(a=>{let c=b.getNode(a.component);if(c?.y!==void 0){let d=k(a.target,`Evolve target for "${a.component}"`);b.addTrend(a.component,d,c.y)}}),a.annotations.length>0){let c=a.annotations[0],d=l(c.x,c.y,"Annotations box");b.setAnnotationsBox(d.x,d.y)}a.annotation.forEach(a=>{let c=l(a.x,a.y,`Annotation ${a.number}`);b.addAnnotation(a.number,[{x:c.x,y:c.y}],a.text)}),a.accelerators.forEach(a=>{let c=l(a.x,a.y,`Accelerator "${a.name}"`);b.addAccelerator(a.name,c.x,c.y)}),a.deaccelerators.forEach(a=>{let c=l(a.x,a.y,`Deaccelerator "${a.name}"`);b.addDeaccelerator(a.name,c.x,c.y)})},"populateDb"),p={parser:{yy:void 0},parse:(0,i.K)(async a=>{let b=await (0,j.qg)("wardley",a);h.R.debug(b);let c=p.parser?.yy;if(!c||"function"!=typeof c.addNode)throw Error("parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");o(b,c)},"parse")},q=new class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}static{(0,i.K)(this,"WardleyBuilder")}addNode(a){let b=this.nodes.get(a.id)??{id:a.id,label:a.label},c={...b,...a,className:a.className??b.className,labelOffsetX:a.labelOffsetX??b.labelOffsetX,labelOffsetY:a.labelOffsetY??b.labelOffsetY};this.nodes.set(a.id,c)}addLink(a){this.links.push(a)}addTrend(a){this.trends.set(a.nodeId,a)}startPipeline(a){this.pipelines.set(a,{nodeId:a,componentIds:[]});let b=this.nodes.get(a);b&&(b.isPipelineParent=!0)}addPipelineComponent(a,b){let c=this.pipelines.get(a);c&&c.componentIds.push(b);let d=this.nodes.get(b);d&&(d.inPipeline=!0)}addAnnotation(a){this.annotations.push(a)}addNote(a){this.notes.push(a)}addAccelerator(a){this.accelerators.push(a)}addDeaccelerator(a){this.deaccelerators.push(a)}setAnnotationsBox(a,b){this.annotationsBox={x:a,y:b}}setAxes(a){this.axes={...this.axes,...a}}setSize(a,b){this.size={width:a,height:b}}getNode(a){return this.nodes.get(a)}resolveNodeId(a){if(this.nodes.has(a))return a;for(let[b,c]of this.nodes)if(c.label===a)return b;return a}build(){let a=[];for(let b of this.nodes.values()){if("number"!=typeof b.x||"number"!=typeof b.y)throw Error(`Node "${b.label}" is missing coordinates`);a.push(b)}return{nodes:a,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}};function r(){return(0,g.D7)()["wardley-beta"]}function s(a,b,c,d,e,f,g,h,i){q.addNode({id:a,label:b,x:c,y:d,className:e,labelOffsetX:f,labelOffsetY:g,inertia:h,sourceStrategy:i})}function t(a,b,c=!1,d,e){q.addLink({source:a,target:b,dashed:c,label:d,flow:e})}function u(a,b,c){q.addTrend({nodeId:a,targetX:b,targetY:c})}function v(a,b,c){q.addAnnotation({number:a,coordinates:b,text:c})}function w(a,b,c){q.addNote({text:a,x:b,y:c})}function x(a,b,c){q.addAccelerator({name:a,x:b,y:c})}function y(a,b,c){q.addDeaccelerator({name:a,x:b,y:c})}function z(a,b){q.setAnnotationsBox(a,b)}function A(a,b){q.setSize(a,b)}function B(a){q.startPipeline(a)}function C(a,b){q.addPipelineComponent(a,b)}function D(a){q.setAxes(a)}function E(a){return q.getNode(a)}function F(a){return q.resolveNodeId(a)}function G(){return q.build()}function H(){q.clear(),(0,g.IU)()}(0,i.K)(r,"getConfig"),(0,i.K)(s,"addNode"),(0,i.K)(t,"addLink"),(0,i.K)(u,"addTrend"),(0,i.K)(v,"addAnnotation"),(0,i.K)(w,"addNote"),(0,i.K)(x,"addAccelerator"),(0,i.K)(y,"addDeaccelerator"),(0,i.K)(z,"setAnnotationsBox"),(0,i.K)(A,"setSize"),(0,i.K)(B,"startPipeline"),(0,i.K)(C,"addPipelineComponent"),(0,i.K)(D,"updateAxes"),(0,i.K)(E,"getNode"),(0,i.K)(F,"resolveNodeId"),(0,i.K)(G,"getWardleyData"),(0,i.K)(H,"clear");var I={getConfig:r,addNode:s,addLink:t,addTrend:u,addAnnotation:v,addNote:w,addAccelerator:x,addDeaccelerator:y,setAnnotationsBox:z,setSize:A,startPipeline:B,addPipelineComponent:C,updateAxes:D,getNode:E,resolveNodeId:F,getWardleyData:G,clear:H,setAccTitle:g.SV,getAccTitle:g.iN,setDiagramTitle:g.ke,getDiagramTitle:g.ab,getAccDescription:g.m7,setAccDescription:g.EI},J=["Genesis","Custom Built","Product","Commodity"],K=(0,i.K)(()=>{let{themeVariables:a}=(0,g.D7)();return{backgroundColor:a.wardley?.backgroundColor??a.background??"#fff",axisColor:a.wardley?.axisColor??"#000",axisTextColor:a.wardley?.axisTextColor??a.primaryTextColor??"#222",gridColor:a.wardley?.gridColor??"rgba(100, 100, 100, 0.2)",componentFill:a.wardley?.componentFill??"#fff",componentStroke:a.wardley?.componentStroke??"#000",componentLabelColor:a.wardley?.componentLabelColor??a.primaryTextColor??"#222",linkStroke:a.wardley?.linkStroke??"#000",evolutionStroke:a.wardley?.evolutionStroke??"#dc3545",annotationStroke:a.wardley?.annotationStroke??"#000",annotationTextColor:a.wardley?.annotationTextColor??a.primaryTextColor??"#222",annotationFill:a.wardley?.annotationFill??a.background??"#fff"}},"getTheme"),L=(0,i.K)(()=>{let a=(0,g.D7)()["wardley-beta"];return{width:a?.width??900,height:a?.height??600,padding:a?.padding??48,nodeRadius:a?.nodeRadius??6,nodeLabelOffset:a?.nodeLabelOffset??8,axisFontSize:a?.axisFontSize??12,labelFontSize:a?.labelFontSize??10,showGrid:a?.showGrid??!1,useMaxWidth:a?.useMaxWidth??!0}},"getConfigValues"),M={parser:p,db:I,renderer:{draw:(0,i.K)((a,b,c,d)=>{h.R.debug("Rendering Wardley map\n"+a);let f=L(),j=K(),k=1.6*f.nodeRadius,l=d.db,m=l.getWardleyData(),n=l.getDiagramTitle(),o=m.size?.width??f.width,p=m.size?.height??f.height,q=(0,e.D)(b);q.selectAll("*").remove(),(0,g.a$)(q,p,o,f.useMaxWidth),q.attr("viewBox",`0 0 ${o} ${p}`);let r=q.append("g").attr("class","wardley-map"),s=q.append("defs");s.append("marker").attr("id",`arrow-${b}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",j.evolutionStroke).attr("stroke","none"),s.append("marker").attr("id",`link-arrow-end-${b}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",j.linkStroke).attr("stroke","none"),s.append("marker").attr("id",`link-arrow-start-${b}`).attr("viewBox","0 0 10 10").attr("refX",1).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z").attr("fill",j.linkStroke).attr("stroke","none"),r.append("rect").attr("class","wardley-background").attr("width",o).attr("height",p).attr("fill",j.backgroundColor);let t=o-2*f.padding,u=p-2*f.padding;n&&r.append("text").attr("class","wardley-title").attr("x",o/2).attr("y",f.padding/2).attr("fill",j.axisTextColor).attr("font-size",1.05*f.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("dominant-baseline","middle").text(n);let v=(0,i.K)(a=>f.padding+a/100*t,"projectX"),w=(0,i.K)(a=>p-f.padding-a/100*u,"projectY"),x=r.append("g").attr("class","wardley-axes");x.append("line").attr("x1",f.padding).attr("x2",o-f.padding).attr("y1",p-f.padding).attr("y2",p-f.padding).attr("stroke",j.axisColor).attr("stroke-width",1),x.append("line").attr("x1",f.padding).attr("x2",f.padding).attr("y1",f.padding).attr("y2",p-f.padding).attr("stroke",j.axisColor).attr("stroke-width",1);let y=m.axes.xLabel??"Evolution",z=m.axes.yLabel??"Visibility";x.append("text").attr("class","wardley-axis-label wardley-axis-label-x").attr("x",f.padding+t/2).attr("y",p-f.padding/4).attr("fill",j.axisTextColor).attr("font-size",f.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").text(y),x.append("text").attr("class","wardley-axis-label wardley-axis-label-y").attr("x",f.padding/3).attr("y",f.padding+u/2).attr("fill",j.axisTextColor).attr("font-size",f.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("transform",`rotate(-90 ${f.padding/3} ${f.padding+u/2})`).text(z);let A=m.axes.stages&&m.axes.stages.length>0?m.axes.stages:J;if(A.length>0){let a=r.append("g").attr("class","wardley-stages"),b=m.axes.stageBoundaries,c=[];if(b&&b.length===A.length){let a=0;b.forEach(b=>{c.push({start:a,end:b}),a=b})}else{let a=1/A.length;A.forEach((b,d)=>{c.push({start:d*a,end:(d+1)*a})})}A.forEach((b,d)=>{let e=c[d],g=f.padding+e.start*t,h=(g+(f.padding+e.end*t))/2;d>0&&a.append("line").attr("x1",g).attr("x2",g).attr("y1",f.padding).attr("y2",p-f.padding).attr("stroke","#000").attr("stroke-width",1).attr("stroke-dasharray","5 5").attr("opacity",.8),a.append("text").attr("class","wardley-stage-label").attr("x",h).attr("y",p-f.padding/1.5).attr("fill",j.axisTextColor).attr("font-size",f.axisFontSize-2).attr("text-anchor","middle").text(b)})}if(f.showGrid){let a=r.append("g").attr("class","wardley-grid");for(let b=1;b<4;b++){let c=b/4,d=f.padding+t*c;a.append("line").attr("x1",d).attr("x2",d).attr("y1",f.padding).attr("y2",p-f.padding).attr("stroke",j.gridColor).attr("stroke-dasharray","2 6"),a.append("line").attr("x1",f.padding).attr("x2",o-f.padding).attr("y1",p-f.padding-u*c).attr("y2",p-f.padding-u*c).attr("stroke",j.gridColor).attr("stroke-dasharray","2 6")}}let B=new Map;if(m.nodes.forEach(a=>{B.set(a.id,{x:v(a.x),y:w(a.y),node:a})}),m.pipelines.length>0){let a=r.append("g").attr("class","wardley-pipelines"),b=r.append("g").attr("class","wardley-pipeline-links");m.pipelines.forEach(c=>{if(0===c.componentIds.length)return;let d=c.componentIds.map(a=>({id:a,pos:B.get(a),node:m.nodes.find(b=>b.id===a)})).filter(a=>a.pos&&a.node).sort((a,b)=>a.node.x-b.node.x);for(let a=0;a<d.length-1;a++){let c=d[a],e=d[a+1];b.append("line").attr("class","wardley-pipeline-evolution-link").attr("x1",c.pos.x).attr("y1",c.pos.y).attr("x2",e.pos.x).attr("y2",e.pos.y).attr("stroke",j.linkStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4")}let e=1/0,g=-1/0,h=0;if(c.componentIds.forEach(a=>{let b=B.get(a);b&&(e=Math.min(e,b.x),g=Math.max(g,b.x),h=b.y)}),e!==1/0&&g!==-1/0){let b=4*f.nodeRadius,d=h-b/2,i=B.get(c.nodeId);i&&(i.x=(e+g)/2,i.y=d-k/6),a.append("rect").attr("class","wardley-pipeline-box").attr("x",e-15).attr("y",d).attr("width",g-e+30).attr("height",b).attr("fill","none").attr("stroke",j.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}})}let C=r.append("g").attr("class","wardley-links"),D=new Map;m.pipelines.forEach(a=>{D.set(a.nodeId,new Set(a.componentIds))});let E=m.links.filter(a=>{if(!B.has(a.source)||!B.has(a.target))return!1;let b=D.get(a.target);return!b?.has(a.source)});C.selectAll("line").data(E).enter().append("line").attr("class",a=>`wardley-link${a.dashed?" wardley-link--dashed":""}`).attr("x1",a=>{let b=B.get(a.source),c=B.get(a.target),d=m.nodes.find(b=>b.id===a.source).isPipelineParent?k/Math.sqrt(2):f.nodeRadius,e=c.x-b.x,g=c.y-b.y,h=Math.sqrt(e*e+g*g);return b.x+e/h*d}).attr("y1",a=>{let b=B.get(a.source),c=B.get(a.target),d=m.nodes.find(b=>b.id===a.source).isPipelineParent?k/Math.sqrt(2):f.nodeRadius,e=c.x-b.x,g=c.y-b.y,h=Math.sqrt(e*e+g*g);return b.y+g/h*d}).attr("x2",a=>{let b=B.get(a.source),c=B.get(a.target),d=m.nodes.find(b=>b.id===a.target).isPipelineParent?k/Math.sqrt(2):f.nodeRadius,e=b.x-c.x,g=b.y-c.y,h=Math.sqrt(e*e+g*g);return c.x+e/h*d}).attr("y2",a=>{let b=B.get(a.source),c=B.get(a.target),d=m.nodes.find(b=>b.id===a.target).isPipelineParent?k/Math.sqrt(2):f.nodeRadius,e=b.x-c.x,g=b.y-c.y,h=Math.sqrt(e*e+g*g);return c.y+g/h*d}).attr("stroke",j.linkStroke).attr("stroke-width",1).attr("stroke-dasharray",a=>a.dashed?"6 6":null).attr("marker-end",a=>"forward"===a.flow||"bidirectional"===a.flow?`url(#link-arrow-end-${b})`:null).attr("marker-start",a=>"backward"===a.flow||"bidirectional"===a.flow?`url(#link-arrow-start-${b})`:null),C.selectAll("text").data(E.filter(a=>a.label)).enter().append("text").attr("class","wardley-link-label").attr("x",a=>{let b=B.get(a.source),c=B.get(a.target),d=(b.x+c.x)/2,e=c.y-b.y,f=c.x-b.x,g=Math.sqrt(f*f+e*e);return d+e/g*8}).attr("y",a=>{let b=B.get(a.source),c=B.get(a.target),d=(b.y+c.y)/2,e=c.x-b.x,f=c.y-b.y,g=Math.sqrt(e*e+f*f);return d+-e/g*8}).attr("fill",j.axisTextColor).attr("font-size",f.labelFontSize).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("transform",a=>{let b=B.get(a.source),c=B.get(a.target),d=(b.x+c.x)/2,e=(b.y+c.y)/2,f=c.x-b.x,g=c.y-b.y,h=Math.sqrt(f*f+g*g),i=180*Math.atan2(g,f)/Math.PI;return(i>90||i<-90)&&(i+=180),`rotate(${i} ${d+g/h*8} ${e+-f/h*8})`}).text(a=>a.label);let F=r.append("g").attr("class","wardley-trends"),G=m.trends.map(a=>{let b=B.get(a.nodeId);if(!b)return null;let c=v(a.targetX),d=w(a.targetY),e=c-b.x,g=d-b.y,h=Math.sqrt(e*e+g*g),i=f.nodeRadius+2;return{origin:b,targetX:c,targetY:d,adjustedX2:h>i?c-e/h*i:c,adjustedY2:h>i?d-g/h*i:d}}).filter(a=>null!==a);F.selectAll("line").data(G).enter().append("line").attr("class","wardley-trend").attr("x1",a=>a.origin.x).attr("y1",a=>a.origin.y).attr("x2",a=>a.adjustedX2).attr("y2",a=>a.adjustedY2).attr("stroke",j.evolutionStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4").attr("marker-end",`url(#arrow-${b})`);let H=r.append("g").attr("class","wardley-nodes").selectAll("g").data(m.nodes).enter().append("g").attr("class",a=>["wardley-node",a.className?`wardley-node--${a.className}`:""].filter(Boolean).join(" "));H.filter(a=>"outsource"===a.sourceStrategy).append("circle").attr("class","wardley-outsource-overlay").attr("cx",a=>B.get(a.id).x).attr("cy",a=>B.get(a.id).y).attr("r",2*f.nodeRadius).attr("fill","#666").attr("stroke",j.componentStroke).attr("stroke-width",1),H.filter(a=>"buy"===a.sourceStrategy).append("circle").attr("class","wardley-buy-overlay").attr("cx",a=>B.get(a.id).x).attr("cy",a=>B.get(a.id).y).attr("r",2*f.nodeRadius).attr("fill","#ccc").attr("stroke",j.componentStroke).attr("stroke-width",1),H.filter(a=>"build"===a.sourceStrategy).append("circle").attr("class","wardley-build-overlay").attr("cx",a=>B.get(a.id).x).attr("cy",a=>B.get(a.id).y).attr("r",2*f.nodeRadius).attr("fill","#eee").attr("stroke","#000").attr("stroke-width",1);let I=H.filter(a=>"market"===a.sourceStrategy);I.append("circle").attr("class","wardley-market-overlay").attr("cx",a=>B.get(a.id).x).attr("cy",a=>B.get(a.id).y).attr("r",2*f.nodeRadius).attr("fill","white").attr("stroke",j.componentStroke).attr("stroke-width",1),H.filter(a=>!a.isPipelineParent&&"market"!==a.sourceStrategy&&"anchor"!==a.className).append("circle").attr("cx",a=>B.get(a.id).x).attr("cy",a=>B.get(a.id).y).attr("r",f.nodeRadius).attr("fill",j.componentFill).attr("stroke",j.componentStroke).attr("stroke-width",1);let M=.7*f.nodeRadius,N=1.2*f.nodeRadius;if(I.append("line").attr("class","wardley-market-line").attr("x1",a=>B.get(a.id).x).attr("y1",a=>B.get(a.id).y-N).attr("x2",a=>B.get(a.id).x-N*Math.cos(Math.PI/6)).attr("y2",a=>B.get(a.id).y+N*Math.sin(Math.PI/6)).attr("stroke",j.componentStroke).attr("stroke-width",1),I.append("line").attr("class","wardley-market-line").attr("x1",a=>B.get(a.id).x-N*Math.cos(Math.PI/6)).attr("y1",a=>B.get(a.id).y+N*Math.sin(Math.PI/6)).attr("x2",a=>B.get(a.id).x+N*Math.cos(Math.PI/6)).attr("y2",a=>B.get(a.id).y+N*Math.sin(Math.PI/6)).attr("stroke",j.componentStroke).attr("stroke-width",1),I.append("line").attr("class","wardley-market-line").attr("x1",a=>B.get(a.id).x+N*Math.cos(Math.PI/6)).attr("y1",a=>B.get(a.id).y+N*Math.sin(Math.PI/6)).attr("x2",a=>B.get(a.id).x).attr("y2",a=>B.get(a.id).y-N).attr("stroke",j.componentStroke).attr("stroke-width",1),I.append("circle").attr("class","wardley-market-dot").attr("cx",a=>B.get(a.id).x).attr("cy",a=>B.get(a.id).y-N).attr("r",M).attr("fill","white").attr("stroke",j.componentStroke).attr("stroke-width",2),I.append("circle").attr("class","wardley-market-dot").attr("cx",a=>B.get(a.id).x-N*Math.cos(Math.PI/6)).attr("cy",a=>B.get(a.id).y+N*Math.sin(Math.PI/6)).attr("r",M).attr("fill","white").attr("stroke",j.componentStroke).attr("stroke-width",2),I.append("circle").attr("class","wardley-market-dot").attr("cx",a=>B.get(a.id).x+N*Math.cos(Math.PI/6)).attr("cy",a=>B.get(a.id).y+N*Math.sin(Math.PI/6)).attr("r",M).attr("fill","white").attr("stroke",j.componentStroke).attr("stroke-width",2),H.filter(a=>!0===a.isPipelineParent).append("rect").attr("x",a=>B.get(a.id).x-k/2).attr("y",a=>B.get(a.id).y-k/2).attr("width",k).attr("height",k).attr("fill",j.componentFill).attr("stroke",j.componentStroke).attr("stroke-width",1),H.filter(a=>!0===a.inertia).append("line").attr("class","wardley-inertia").attr("x1",a=>{let b=B.get(a.id),c=a.isPipelineParent?k/2+15:f.nodeRadius+15;return a.sourceStrategy&&(c+=f.nodeRadius+10),b.x+c}).attr("y1",a=>{let b=B.get(a.id),c=a.isPipelineParent?k:2*f.nodeRadius;return b.y-c/2}).attr("x2",a=>{let b=B.get(a.id),c=a.isPipelineParent?k/2+15:f.nodeRadius+15;return a.sourceStrategy&&(c+=f.nodeRadius+10),b.x+c}).attr("y2",a=>{let b=B.get(a.id),c=a.isPipelineParent?k:2*f.nodeRadius;return b.y+c/2}).attr("stroke",j.componentStroke).attr("stroke-width",6),H.append("text").attr("x",a=>{let b=B.get(a.id);if("anchor"===a.className)return void 0!==a.labelOffsetX?b.x+a.labelOffsetX:b.x;let c=f.nodeLabelOffset;a.sourceStrategy&&void 0===a.labelOffsetX&&(c+=10);let d=a.labelOffsetX??c;return b.x+d}).attr("y",a=>{let b=B.get(a.id);if("anchor"===a.className)return void 0!==a.labelOffsetY?b.y+a.labelOffsetY:b.y-3;let c=-f.nodeLabelOffset;a.sourceStrategy&&void 0===a.labelOffsetY&&(c-=10);let d=a.labelOffsetY??c;return b.y+d}).attr("class","wardley-node-label").attr("fill",a=>"evolved"===a.className?j.evolutionStroke:"anchor"===a.className?"#000":j.componentLabelColor).attr("font-size",f.labelFontSize).attr("font-weight",a=>"anchor"===a.className?"bold":"normal").attr("text-anchor",a=>"anchor"===a.className?"middle":"start").attr("dominant-baseline",a=>"anchor"===a.className?"middle":"auto").text(a=>a.label),m.annotations.length>0){let a=r.append("g").attr("class","wardley-annotations");if(m.annotations.forEach(b=>{let c=b.coordinates.map(a=>({x:v(a.x),y:w(a.y)}));if(c.length>1)for(let b=0;b<c.length-1;b++)a.append("line").attr("class","wardley-annotation-line").attr("x1",c[b].x).attr("y1",c[b].y).attr("x2",c[b+1].x).attr("y2",c[b+1].y).attr("stroke",j.axisColor).attr("stroke-width",1.5).attr("stroke-dasharray","4 4");c.forEach(c=>{let d=a.append("g").attr("class","wardley-annotation");d.append("circle").attr("cx",c.x).attr("cy",c.y).attr("r",10).attr("fill","white").attr("stroke",j.axisColor).attr("stroke-width",1.5),d.append("text").attr("x",c.x).attr("y",c.y).attr("text-anchor","middle").attr("dominant-baseline","central").attr("font-size",10).attr("fill",j.axisTextColor).attr("font-weight","bold").text(b.number)})}),m.annotationsBox){let b=v(m.annotationsBox.x),c=w(m.annotationsBox.y),d=a.append("g").attr("class","wardley-annotations-box"),e=[...m.annotations].filter(a=>a.text).sort((a,b)=>a.number-b.number),g=[];if(e.forEach((a,e)=>{let f=d.append("text").attr("x",b+10).attr("y",c+10+(e+1)*16).attr("font-size",11).attr("fill",j.axisTextColor).attr("text-anchor","start").attr("dominant-baseline","middle").text(`${a.number}. ${a.text}`);g.push(f)}),g.length>0){let a=0,h=0;g.forEach(b=>{let c=b.node(),d=c.getComputedTextLength();a=Math.max(a,d);let e=c.getBBox();h=Math.max(h,e.height)});let i=a+20+105,k=16*e.length+20+h/2,l=f.padding,m=o-f.padding-i,n=f.padding,q=p-f.padding-k;b=Math.max(l,Math.min(b,m)),c=Math.max(n,Math.min(c,q)),g.forEach((a,d)=>{a.attr("x",b+10).attr("y",c+10+(d+1)*16)}),d.insert("rect","text").attr("x",b).attr("y",c).attr("width",i).attr("height",k).attr("fill","white").attr("stroke",j.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}}}if(m.notes.length>0){let a=r.append("g").attr("class","wardley-notes");m.notes.forEach(b=>{let c=v(b.x),d=w(b.y);a.append("text").attr("x",c).attr("y",d).attr("text-anchor","start").attr("font-size",11).attr("fill",j.axisTextColor).attr("font-weight","bold").text(b.text)})}if(m.accelerators.length>0){let a=r.append("g").attr("class","wardley-accelerators");m.accelerators.forEach(b=>{let c=v(b.x),d=w(b.y),e=`
2
+ M ${c} ${d-15}
3
+ L ${c+60-20} ${d-15}
4
+ L ${c+60-20} ${d-15-8}
5
+ L ${c+60} ${d}
6
+ L ${c+60-20} ${d+15+8}
7
+ L ${c+60-20} ${d+15}
8
+ L ${c} ${d+15}
9
+ Z
10
+ `;a.append("path").attr("d",e).attr("fill","white").attr("stroke",j.componentStroke).attr("stroke-width",1),a.append("text").attr("x",c+30).attr("y",d+15+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",j.axisTextColor).attr("font-weight","bold").text(b.name)})}if(m.deaccelerators.length>0){let a=r.append("g").attr("class","wardley-deaccelerators");m.deaccelerators.forEach(b=>{let c=v(b.x),d=w(b.y),e=`
11
+ M ${c+60} ${d-15}
12
+ L ${c+20} ${d-15}
13
+ L ${c+20} ${d-15-8}
14
+ L ${c} ${d}
15
+ L ${c+20} ${d+15+8}
16
+ L ${c+20} ${d+15}
17
+ L ${c+60} ${d+15}
18
+ Z
19
+ `;a.append("path").attr("d",e).attr("fill","white").attr("stroke",j.componentStroke).attr("stroke-width",1),a.append("text").attr("x",c+30).attr("y",d+15+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",j.axisTextColor).attr("font-weight","bold").text(b.name)})}},"draw")},styles:(0,i.K)(({wardley:a}={})=>{let b=(0,g.P$)(),c=(0,g.zj)(),d=(0,f.$t)(b,c.themeVariables),e=(0,f.$t)(d.wardley,a);return`
20
+ .wardley-background {
21
+ fill: ${e.backgroundColor};
22
+ }
23
+ .wardley-axes line, .wardley-axes path {
24
+ stroke: ${e.axisColor};
25
+ }
26
+ .wardley-axis-label {
27
+ fill: ${e.axisTextColor};
28
+ }
29
+ .wardley-stage-label {
30
+ fill: ${e.axisTextColor};
31
+ }
32
+ .wardley-grid line {
33
+ stroke: ${e.gridColor};
34
+ }
35
+ .wardley-node circle {
36
+ fill: ${e.componentFill};
37
+ stroke: ${e.componentStroke};
38
+ }
39
+ .wardley-node-label {
40
+ fill: ${e.componentLabelColor};
41
+ }
42
+ .wardley-link {
43
+ stroke: ${e.linkStroke};
44
+ }
45
+ .wardley-link--dashed {
46
+ stroke-dasharray: 4 4;
47
+ }
48
+ .wardley-link-label {
49
+ fill: ${e.axisTextColor};
50
+ }
51
+ .wardley-trend line {
52
+ stroke: ${e.evolutionStroke};
53
+ }
54
+ .wardley-annotation-line {
55
+ stroke: ${e.annotationStroke};
56
+ }
57
+ .wardley-annotation circle {
58
+ fill: ${e.annotationFill};
59
+ stroke: ${e.annotationStroke};
60
+ }
61
+ .wardley-annotation text {
62
+ fill: ${e.annotationTextColor};
63
+ }
64
+ .wardley-annotations-box rect {
65
+ fill: ${e.annotationFill};
66
+ stroke: ${e.annotationStroke};
67
+ }
68
+ .wardley-annotations-box text {
69
+ fill: ${e.annotationTextColor};
70
+ }
71
+ .wardley-pipeline-box {
72
+ stroke: ${e.componentStroke};
73
+ }
74
+ .wardley-notes text {
75
+ fill: ${e.axisTextColor};
76
+ }
77
+ `},"styles")}}};