@burdenoff/microfe-planmagnet 2026.1008.1 → 2026.1008.3

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 (1970) hide show
  1. package/dist/_virtual/__vite-browser-external.js +0 -2
  2. package/dist/components/MarkdownEditor.js +0 -2
  3. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js +0 -2
  4. package/dist/node_modules/@apollo/client/errors/ServerError.js +0 -2
  5. package/dist/node_modules/@apollo/client/errors/utils.js +0 -2
  6. package/dist/node_modules/clsx/dist/clsx.js +0 -2
  7. package/dist/node_modules/d3-array/src/ascending.js +0 -2
  8. package/dist/node_modules/d3-array/src/bisect.js +0 -2
  9. package/dist/node_modules/d3-array/src/bisector.js +0 -2
  10. package/dist/node_modules/d3-array/src/descending.js +0 -2
  11. package/dist/node_modules/d3-array/src/max.js +0 -2
  12. package/dist/node_modules/d3-array/src/min.js +0 -2
  13. package/dist/node_modules/d3-array/src/number.js +0 -2
  14. package/dist/node_modules/d3-array/src/quantile.js +0 -2
  15. package/dist/node_modules/d3-array/src/quickselect.js +0 -2
  16. package/dist/node_modules/d3-array/src/range.js +0 -2
  17. package/dist/node_modules/d3-array/src/sort.js +0 -2
  18. package/dist/node_modules/d3-array/src/ticks.js +0 -2
  19. package/dist/node_modules/d3-color/src/color.js +0 -2
  20. package/dist/node_modules/d3-color/src/define.js +0 -2
  21. package/dist/node_modules/d3-format/src/defaultLocale.js +0 -2
  22. package/dist/node_modules/d3-format/src/exponent.js +0 -2
  23. package/dist/node_modules/d3-format/src/formatDecimal.js +0 -2
  24. package/dist/node_modules/d3-format/src/formatGroup.js +0 -2
  25. package/dist/node_modules/d3-format/src/formatNumerals.js +0 -2
  26. package/dist/node_modules/d3-format/src/formatPrefixAuto.js +0 -2
  27. package/dist/node_modules/d3-format/src/formatRounded.js +0 -2
  28. package/dist/node_modules/d3-format/src/formatSpecifier.js +0 -2
  29. package/dist/node_modules/d3-format/src/formatTrim.js +0 -2
  30. package/dist/node_modules/d3-format/src/formatTypes.js +0 -2
  31. package/dist/node_modules/d3-format/src/identity.js +0 -2
  32. package/dist/node_modules/d3-format/src/locale.js +0 -2
  33. package/dist/node_modules/d3-format/src/precisionFixed.js +0 -2
  34. package/dist/node_modules/d3-format/src/precisionPrefix.js +0 -2
  35. package/dist/node_modules/d3-format/src/precisionRound.js +0 -2
  36. package/dist/node_modules/d3-interpolate/src/array.js +0 -2
  37. package/dist/node_modules/d3-interpolate/src/basis.js +0 -2
  38. package/dist/node_modules/d3-interpolate/src/basisClosed.js +0 -2
  39. package/dist/node_modules/d3-interpolate/src/color.js +0 -2
  40. package/dist/node_modules/d3-interpolate/src/constant.js +0 -2
  41. package/dist/node_modules/d3-interpolate/src/date.js +0 -2
  42. package/dist/node_modules/d3-interpolate/src/number.js +0 -2
  43. package/dist/node_modules/d3-interpolate/src/numberArray.js +0 -2
  44. package/dist/node_modules/d3-interpolate/src/object.js +0 -2
  45. package/dist/node_modules/d3-interpolate/src/piecewise.js +0 -2
  46. package/dist/node_modules/d3-interpolate/src/rgb.js +0 -2
  47. package/dist/node_modules/d3-interpolate/src/round.js +0 -2
  48. package/dist/node_modules/d3-interpolate/src/string.js +0 -2
  49. package/dist/node_modules/d3-interpolate/src/value.js +0 -2
  50. package/dist/node_modules/d3-path/src/path.js +0 -2
  51. package/dist/node_modules/d3-scale/src/band.js +0 -2
  52. package/dist/node_modules/d3-scale/src/constant.js +0 -2
  53. package/dist/node_modules/d3-scale/src/continuous.js +0 -2
  54. package/dist/node_modules/d3-scale/src/diverging.js +0 -2
  55. package/dist/node_modules/d3-scale/src/identity.js +0 -2
  56. package/dist/node_modules/d3-scale/src/init.js +0 -2
  57. package/dist/node_modules/d3-scale/src/linear.js +0 -2
  58. package/dist/node_modules/d3-scale/src/log.js +0 -2
  59. package/dist/node_modules/d3-scale/src/nice.js +0 -2
  60. package/dist/node_modules/d3-scale/src/number.js +0 -2
  61. package/dist/node_modules/d3-scale/src/ordinal.js +0 -2
  62. package/dist/node_modules/d3-scale/src/pow.js +0 -2
  63. package/dist/node_modules/d3-scale/src/quantile.js +0 -2
  64. package/dist/node_modules/d3-scale/src/quantize.js +0 -2
  65. package/dist/node_modules/d3-scale/src/radial.js +0 -2
  66. package/dist/node_modules/d3-scale/src/sequential.js +0 -2
  67. package/dist/node_modules/d3-scale/src/sequentialQuantile.js +0 -2
  68. package/dist/node_modules/d3-scale/src/symlog.js +0 -2
  69. package/dist/node_modules/d3-scale/src/threshold.js +0 -2
  70. package/dist/node_modules/d3-scale/src/tickFormat.js +0 -2
  71. package/dist/node_modules/d3-scale/src/time.js +0 -2
  72. package/dist/node_modules/d3-scale/src/utcTime.js +0 -2
  73. package/dist/node_modules/d3-shape/src/area.js +0 -2
  74. package/dist/node_modules/d3-shape/src/array.js +0 -2
  75. package/dist/node_modules/d3-shape/src/constant.js +0 -2
  76. package/dist/node_modules/d3-shape/src/curve/basis.js +0 -2
  77. package/dist/node_modules/d3-shape/src/curve/basisClosed.js +0 -2
  78. package/dist/node_modules/d3-shape/src/curve/basisOpen.js +0 -2
  79. package/dist/node_modules/d3-shape/src/curve/bump.js +0 -2
  80. package/dist/node_modules/d3-shape/src/curve/linear.js +0 -2
  81. package/dist/node_modules/d3-shape/src/curve/linearClosed.js +0 -2
  82. package/dist/node_modules/d3-shape/src/curve/monotone.js +0 -2
  83. package/dist/node_modules/d3-shape/src/curve/natural.js +0 -2
  84. package/dist/node_modules/d3-shape/src/curve/step.js +0 -2
  85. package/dist/node_modules/d3-shape/src/line.js +0 -2
  86. package/dist/node_modules/d3-shape/src/math.js +0 -2
  87. package/dist/node_modules/d3-shape/src/noop.js +0 -2
  88. package/dist/node_modules/d3-shape/src/offset/expand.js +0 -2
  89. package/dist/node_modules/d3-shape/src/offset/none.js +0 -2
  90. package/dist/node_modules/d3-shape/src/offset/silhouette.js +0 -2
  91. package/dist/node_modules/d3-shape/src/offset/wiggle.js +0 -2
  92. package/dist/node_modules/d3-shape/src/order/none.js +0 -2
  93. package/dist/node_modules/d3-shape/src/path.js +0 -2
  94. package/dist/node_modules/d3-shape/src/point.js +0 -2
  95. package/dist/node_modules/d3-shape/src/stack.js +0 -2
  96. package/dist/node_modules/d3-shape/src/symbol/circle.js +0 -2
  97. package/dist/node_modules/d3-shape/src/symbol/cross.js +0 -2
  98. package/dist/node_modules/d3-shape/src/symbol/diamond.js +0 -2
  99. package/dist/node_modules/d3-shape/src/symbol/square.js +0 -2
  100. package/dist/node_modules/d3-shape/src/symbol/star.js +0 -2
  101. package/dist/node_modules/d3-shape/src/symbol/triangle.js +0 -2
  102. package/dist/node_modules/d3-shape/src/symbol/wye.js +0 -2
  103. package/dist/node_modules/d3-shape/src/symbol.js +0 -2
  104. package/dist/node_modules/d3-time/src/day.js +0 -2
  105. package/dist/node_modules/d3-time/src/duration.js +0 -2
  106. package/dist/node_modules/d3-time/src/hour.js +0 -2
  107. package/dist/node_modules/d3-time/src/interval.js +0 -2
  108. package/dist/node_modules/d3-time/src/millisecond.js +0 -2
  109. package/dist/node_modules/d3-time/src/minute.js +0 -2
  110. package/dist/node_modules/d3-time/src/month.js +0 -2
  111. package/dist/node_modules/d3-time/src/second.js +0 -2
  112. package/dist/node_modules/d3-time/src/ticks.js +0 -2
  113. package/dist/node_modules/d3-time/src/week.js +0 -2
  114. package/dist/node_modules/d3-time/src/year.js +0 -2
  115. package/dist/node_modules/d3-time-format/src/defaultLocale.js +0 -2
  116. package/dist/node_modules/d3-time-format/src/locale.js +0 -2
  117. package/dist/node_modules/decimal.js-light/decimal.js +0 -2
  118. package/dist/node_modules/eventemitter3/index.js +0 -2
  119. package/dist/node_modules/fast-equals/dist/es/index.js +0 -2
  120. package/dist/node_modules/fflate/esm/browser.js +0 -2
  121. package/dist/node_modules/internmap/src/index.js +0 -2
  122. package/dist/node_modules/jszip/dist/jszip.min.js +0 -2
  123. package/dist/node_modules/lodash/_DataView.js +0 -2
  124. package/dist/node_modules/lodash/_Hash.js +0 -2
  125. package/dist/node_modules/lodash/_ListCache.js +0 -2
  126. package/dist/node_modules/lodash/_Map.js +0 -2
  127. package/dist/node_modules/lodash/_MapCache.js +0 -2
  128. package/dist/node_modules/lodash/_Promise.js +0 -2
  129. package/dist/node_modules/lodash/_Set.js +0 -2
  130. package/dist/node_modules/lodash/_SetCache.js +0 -2
  131. package/dist/node_modules/lodash/_Stack.js +0 -2
  132. package/dist/node_modules/lodash/_Symbol.js +0 -2
  133. package/dist/node_modules/lodash/_Uint8Array.js +0 -2
  134. package/dist/node_modules/lodash/_WeakMap.js +0 -2
  135. package/dist/node_modules/lodash/_apply.js +0 -2
  136. package/dist/node_modules/lodash/_arrayEach.js +0 -2
  137. package/dist/node_modules/lodash/_arrayEvery.js +0 -2
  138. package/dist/node_modules/lodash/_arrayFilter.js +0 -2
  139. package/dist/node_modules/lodash/_arrayIncludes.js +0 -2
  140. package/dist/node_modules/lodash/_arrayIncludesWith.js +0 -2
  141. package/dist/node_modules/lodash/_arrayLikeKeys.js +0 -2
  142. package/dist/node_modules/lodash/_arrayMap.js +0 -2
  143. package/dist/node_modules/lodash/_arrayPush.js +0 -2
  144. package/dist/node_modules/lodash/_arraySome.js +0 -2
  145. package/dist/node_modules/lodash/_asciiToArray.js +0 -2
  146. package/dist/node_modules/lodash/_assignValue.js +0 -2
  147. package/dist/node_modules/lodash/_assocIndexOf.js +0 -2
  148. package/dist/node_modules/lodash/_baseAssign.js +0 -2
  149. package/dist/node_modules/lodash/_baseAssignIn.js +0 -2
  150. package/dist/node_modules/lodash/_baseAssignValue.js +0 -2
  151. package/dist/node_modules/lodash/_baseClone.js +0 -2
  152. package/dist/node_modules/lodash/_baseCreate.js +0 -2
  153. package/dist/node_modules/lodash/_baseEach.js +0 -2
  154. package/dist/node_modules/lodash/_baseEvery.js +0 -2
  155. package/dist/node_modules/lodash/_baseExtremum.js +0 -2
  156. package/dist/node_modules/lodash/_baseFindIndex.js +0 -2
  157. package/dist/node_modules/lodash/_baseFlatten.js +0 -2
  158. package/dist/node_modules/lodash/_baseFor.js +0 -2
  159. package/dist/node_modules/lodash/_baseForOwn.js +0 -2
  160. package/dist/node_modules/lodash/_baseGet.js +0 -2
  161. package/dist/node_modules/lodash/_baseGetAllKeys.js +0 -2
  162. package/dist/node_modules/lodash/_baseGetTag.js +0 -2
  163. package/dist/node_modules/lodash/_baseGt.js +0 -2
  164. package/dist/node_modules/lodash/_baseHasIn.js +0 -2
  165. package/dist/node_modules/lodash/_baseIndexOf.js +0 -2
  166. package/dist/node_modules/lodash/_baseIsArguments.js +0 -2
  167. package/dist/node_modules/lodash/_baseIsEqual.js +0 -2
  168. package/dist/node_modules/lodash/_baseIsEqualDeep.js +0 -2
  169. package/dist/node_modules/lodash/_baseIsMap.js +0 -2
  170. package/dist/node_modules/lodash/_baseIsMatch.js +0 -2
  171. package/dist/node_modules/lodash/_baseIsNaN.js +0 -2
  172. package/dist/node_modules/lodash/_baseIsNative.js +0 -2
  173. package/dist/node_modules/lodash/_baseIsSet.js +0 -2
  174. package/dist/node_modules/lodash/_baseIsTypedArray.js +0 -2
  175. package/dist/node_modules/lodash/_baseIteratee.js +0 -2
  176. package/dist/node_modules/lodash/_baseKeys.js +0 -2
  177. package/dist/node_modules/lodash/_baseKeysIn.js +0 -2
  178. package/dist/node_modules/lodash/_baseLt.js +0 -2
  179. package/dist/node_modules/lodash/_baseMap.js +0 -2
  180. package/dist/node_modules/lodash/_baseMatches.js +0 -2
  181. package/dist/node_modules/lodash/_baseMatchesProperty.js +0 -2
  182. package/dist/node_modules/lodash/_baseOrderBy.js +0 -2
  183. package/dist/node_modules/lodash/_baseProperty.js +0 -2
  184. package/dist/node_modules/lodash/_basePropertyDeep.js +0 -2
  185. package/dist/node_modules/lodash/_baseRange.js +0 -2
  186. package/dist/node_modules/lodash/_baseRest.js +0 -2
  187. package/dist/node_modules/lodash/_baseSetToString.js +0 -2
  188. package/dist/node_modules/lodash/_baseSlice.js +0 -2
  189. package/dist/node_modules/lodash/_baseSome.js +0 -2
  190. package/dist/node_modules/lodash/_baseSortBy.js +0 -2
  191. package/dist/node_modules/lodash/_baseSum.js +0 -2
  192. package/dist/node_modules/lodash/_baseTimes.js +0 -2
  193. package/dist/node_modules/lodash/_baseToString.js +0 -2
  194. package/dist/node_modules/lodash/_baseTrim.js +0 -2
  195. package/dist/node_modules/lodash/_baseUnary.js +0 -2
  196. package/dist/node_modules/lodash/_baseUniq.js +0 -2
  197. package/dist/node_modules/lodash/_baseUnset.js +0 -2
  198. package/dist/node_modules/lodash/_cacheHas.js +0 -2
  199. package/dist/node_modules/lodash/_castPath.js +0 -2
  200. package/dist/node_modules/lodash/_castSlice.js +0 -2
  201. package/dist/node_modules/lodash/_cloneArrayBuffer.js +0 -2
  202. package/dist/node_modules/lodash/_cloneBuffer.js +0 -2
  203. package/dist/node_modules/lodash/_cloneDataView.js +0 -2
  204. package/dist/node_modules/lodash/_cloneRegExp.js +0 -2
  205. package/dist/node_modules/lodash/_cloneSymbol.js +0 -2
  206. package/dist/node_modules/lodash/_cloneTypedArray.js +0 -2
  207. package/dist/node_modules/lodash/_compareAscending.js +0 -2
  208. package/dist/node_modules/lodash/_compareMultiple.js +0 -2
  209. package/dist/node_modules/lodash/_copyArray.js +0 -2
  210. package/dist/node_modules/lodash/_copyObject.js +0 -2
  211. package/dist/node_modules/lodash/_copySymbols.js +0 -2
  212. package/dist/node_modules/lodash/_copySymbolsIn.js +0 -2
  213. package/dist/node_modules/lodash/_coreJsData.js +0 -2
  214. package/dist/node_modules/lodash/_createBaseEach.js +0 -2
  215. package/dist/node_modules/lodash/_createBaseFor.js +0 -2
  216. package/dist/node_modules/lodash/_createCaseFirst.js +0 -2
  217. package/dist/node_modules/lodash/_createFind.js +0 -2
  218. package/dist/node_modules/lodash/_createRange.js +0 -2
  219. package/dist/node_modules/lodash/_createSet.js +0 -2
  220. package/dist/node_modules/lodash/_customOmitClone.js +0 -2
  221. package/dist/node_modules/lodash/_defineProperty.js +0 -2
  222. package/dist/node_modules/lodash/_equalArrays.js +0 -2
  223. package/dist/node_modules/lodash/_equalByTag.js +0 -2
  224. package/dist/node_modules/lodash/_equalObjects.js +0 -2
  225. package/dist/node_modules/lodash/_flatRest.js +0 -2
  226. package/dist/node_modules/lodash/_freeGlobal.js +0 -2
  227. package/dist/node_modules/lodash/_getAllKeys.js +0 -2
  228. package/dist/node_modules/lodash/_getAllKeysIn.js +0 -2
  229. package/dist/node_modules/lodash/_getMapData.js +0 -2
  230. package/dist/node_modules/lodash/_getMatchData.js +0 -2
  231. package/dist/node_modules/lodash/_getNative.js +0 -2
  232. package/dist/node_modules/lodash/_getPrototype.js +0 -2
  233. package/dist/node_modules/lodash/_getRawTag.js +0 -2
  234. package/dist/node_modules/lodash/_getSymbols.js +0 -2
  235. package/dist/node_modules/lodash/_getSymbolsIn.js +0 -2
  236. package/dist/node_modules/lodash/_getTag.js +0 -2
  237. package/dist/node_modules/lodash/_getValue.js +0 -2
  238. package/dist/node_modules/lodash/_hasPath.js +0 -2
  239. package/dist/node_modules/lodash/_hasUnicode.js +0 -2
  240. package/dist/node_modules/lodash/_hashClear.js +0 -2
  241. package/dist/node_modules/lodash/_hashDelete.js +0 -2
  242. package/dist/node_modules/lodash/_hashGet.js +0 -2
  243. package/dist/node_modules/lodash/_hashHas.js +0 -2
  244. package/dist/node_modules/lodash/_hashSet.js +0 -2
  245. package/dist/node_modules/lodash/_initCloneArray.js +0 -2
  246. package/dist/node_modules/lodash/_initCloneByTag.js +0 -2
  247. package/dist/node_modules/lodash/_initCloneObject.js +0 -2
  248. package/dist/node_modules/lodash/_isFlattenable.js +0 -2
  249. package/dist/node_modules/lodash/_isIndex.js +0 -2
  250. package/dist/node_modules/lodash/_isIterateeCall.js +0 -2
  251. package/dist/node_modules/lodash/_isKey.js +0 -2
  252. package/dist/node_modules/lodash/_isKeyable.js +0 -2
  253. package/dist/node_modules/lodash/_isMasked.js +0 -2
  254. package/dist/node_modules/lodash/_isPrototype.js +0 -2
  255. package/dist/node_modules/lodash/_isStrictComparable.js +0 -2
  256. package/dist/node_modules/lodash/_listCacheClear.js +0 -2
  257. package/dist/node_modules/lodash/_listCacheDelete.js +0 -2
  258. package/dist/node_modules/lodash/_listCacheGet.js +0 -2
  259. package/dist/node_modules/lodash/_listCacheHas.js +0 -2
  260. package/dist/node_modules/lodash/_listCacheSet.js +0 -2
  261. package/dist/node_modules/lodash/_mapCacheClear.js +0 -2
  262. package/dist/node_modules/lodash/_mapCacheDelete.js +0 -2
  263. package/dist/node_modules/lodash/_mapCacheGet.js +0 -2
  264. package/dist/node_modules/lodash/_mapCacheHas.js +0 -2
  265. package/dist/node_modules/lodash/_mapCacheSet.js +0 -2
  266. package/dist/node_modules/lodash/_mapToArray.js +0 -2
  267. package/dist/node_modules/lodash/_matchesStrictComparable.js +0 -2
  268. package/dist/node_modules/lodash/_memoizeCapped.js +0 -2
  269. package/dist/node_modules/lodash/_nativeCreate.js +0 -2
  270. package/dist/node_modules/lodash/_nativeKeys.js +0 -2
  271. package/dist/node_modules/lodash/_nativeKeysIn.js +0 -2
  272. package/dist/node_modules/lodash/_nodeUtil.js +0 -2
  273. package/dist/node_modules/lodash/_objectToString.js +0 -2
  274. package/dist/node_modules/lodash/_overArg.js +0 -2
  275. package/dist/node_modules/lodash/_overRest.js +0 -2
  276. package/dist/node_modules/lodash/_parent.js +0 -2
  277. package/dist/node_modules/lodash/_root.js +0 -2
  278. package/dist/node_modules/lodash/_setCacheAdd.js +0 -2
  279. package/dist/node_modules/lodash/_setCacheHas.js +0 -2
  280. package/dist/node_modules/lodash/_setToArray.js +0 -2
  281. package/dist/node_modules/lodash/_setToString.js +0 -2
  282. package/dist/node_modules/lodash/_shortOut.js +0 -2
  283. package/dist/node_modules/lodash/_stackClear.js +0 -2
  284. package/dist/node_modules/lodash/_stackDelete.js +0 -2
  285. package/dist/node_modules/lodash/_stackGet.js +0 -2
  286. package/dist/node_modules/lodash/_stackHas.js +0 -2
  287. package/dist/node_modules/lodash/_stackSet.js +0 -2
  288. package/dist/node_modules/lodash/_strictIndexOf.js +0 -2
  289. package/dist/node_modules/lodash/_stringToArray.js +0 -2
  290. package/dist/node_modules/lodash/_stringToPath.js +0 -2
  291. package/dist/node_modules/lodash/_toKey.js +0 -2
  292. package/dist/node_modules/lodash/_toSource.js +0 -2
  293. package/dist/node_modules/lodash/_trimmedEndIndex.js +0 -2
  294. package/dist/node_modules/lodash/_unicodeToArray.js +0 -2
  295. package/dist/node_modules/lodash/constant.js +0 -2
  296. package/dist/node_modules/lodash/debounce.js +0 -2
  297. package/dist/node_modules/lodash/eq.js +0 -2
  298. package/dist/node_modules/lodash/every.js +0 -2
  299. package/dist/node_modules/lodash/find.js +0 -2
  300. package/dist/node_modules/lodash/findIndex.js +0 -2
  301. package/dist/node_modules/lodash/flatMap.js +0 -2
  302. package/dist/node_modules/lodash/flatten.js +0 -2
  303. package/dist/node_modules/lodash/get.js +0 -2
  304. package/dist/node_modules/lodash/hasIn.js +0 -2
  305. package/dist/node_modules/lodash/identity.js +0 -2
  306. package/dist/node_modules/lodash/isArguments.js +0 -2
  307. package/dist/node_modules/lodash/isArray.js +0 -2
  308. package/dist/node_modules/lodash/isArrayLike.js +0 -2
  309. package/dist/node_modules/lodash/isBoolean.js +0 -2
  310. package/dist/node_modules/lodash/isBuffer.js +0 -2
  311. package/dist/node_modules/lodash/isEqual.js +0 -2
  312. package/dist/node_modules/lodash/isFunction.js +0 -2
  313. package/dist/node_modules/lodash/isLength.js +0 -2
  314. package/dist/node_modules/lodash/isMap.js +0 -2
  315. package/dist/node_modules/lodash/isNaN.js +0 -2
  316. package/dist/node_modules/lodash/isNil.js +0 -2
  317. package/dist/node_modules/lodash/isNumber.js +0 -2
  318. package/dist/node_modules/lodash/isObject.js +0 -2
  319. package/dist/node_modules/lodash/isObjectLike.js +0 -2
  320. package/dist/node_modules/lodash/isPlainObject.js +0 -2
  321. package/dist/node_modules/lodash/isSet.js +0 -2
  322. package/dist/node_modules/lodash/isString.js +0 -2
  323. package/dist/node_modules/lodash/isSymbol.js +0 -2
  324. package/dist/node_modules/lodash/isTypedArray.js +0 -2
  325. package/dist/node_modules/lodash/keys.js +0 -2
  326. package/dist/node_modules/lodash/keysIn.js +0 -2
  327. package/dist/node_modules/lodash/last.js +0 -2
  328. package/dist/node_modules/lodash/map.js +0 -2
  329. package/dist/node_modules/lodash/mapValues.js +0 -2
  330. package/dist/node_modules/lodash/max.js +0 -2
  331. package/dist/node_modules/lodash/maxBy.js +0 -2
  332. package/dist/node_modules/lodash/memoize.js +0 -2
  333. package/dist/node_modules/lodash/min.js +0 -2
  334. package/dist/node_modules/lodash/noop.js +0 -2
  335. package/dist/node_modules/lodash/now.js +0 -2
  336. package/dist/node_modules/lodash/omit.js +0 -2
  337. package/dist/node_modules/lodash/property.js +0 -2
  338. package/dist/node_modules/lodash/range.js +0 -2
  339. package/dist/node_modules/lodash/some.js +0 -2
  340. package/dist/node_modules/lodash/sortBy.js +0 -2
  341. package/dist/node_modules/lodash/stubArray.js +0 -2
  342. package/dist/node_modules/lodash/stubFalse.js +0 -2
  343. package/dist/node_modules/lodash/sumBy.js +0 -2
  344. package/dist/node_modules/lodash/throttle.js +0 -2
  345. package/dist/node_modules/lodash/toFinite.js +0 -2
  346. package/dist/node_modules/lodash/toInteger.js +0 -2
  347. package/dist/node_modules/lodash/toNumber.js +0 -2
  348. package/dist/node_modules/lodash/toString.js +0 -2
  349. package/dist/node_modules/lodash/uniqBy.js +0 -2
  350. package/dist/node_modules/lodash/upperFirst.js +0 -2
  351. package/dist/node_modules/object-assign/index.js +0 -2
  352. package/dist/node_modules/pptxgenjs/dist/pptxgen.es.js +0 -2
  353. package/dist/node_modules/prop-types/checkPropTypes.js +0 -2
  354. package/dist/node_modules/prop-types/factoryWithThrowingShims.js +0 -2
  355. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +0 -2
  356. package/dist/node_modules/prop-types/index.js +0 -2
  357. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +0 -2
  358. package/dist/node_modules/prop-types/lib/has.js +0 -2
  359. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +0 -2
  360. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +0 -2
  361. package/dist/node_modules/prop-types/node_modules/react-is/index.js +0 -2
  362. package/dist/node_modules/react-is/cjs/react-is.development.js +0 -2
  363. package/dist/node_modules/react-is/cjs/react-is.production.min.js +0 -2
  364. package/dist/node_modules/react-is/index.js +0 -2
  365. package/dist/node_modules/react-smooth/es6/Animate.js +0 -2
  366. package/dist/node_modules/react-smooth/es6/AnimateManager.js +0 -2
  367. package/dist/node_modules/react-smooth/es6/configUpdate.js +0 -2
  368. package/dist/node_modules/react-smooth/es6/easing.js +0 -2
  369. package/dist/node_modules/react-smooth/es6/index.js +0 -2
  370. package/dist/node_modules/react-smooth/es6/setRafTimeout.js +0 -2
  371. package/dist/node_modules/react-smooth/es6/util.js +0 -2
  372. package/dist/node_modules/recharts/es6/cartesian/Area.js +0 -2
  373. package/dist/node_modules/recharts/es6/cartesian/Bar.js +0 -2
  374. package/dist/node_modules/recharts/es6/cartesian/Brush.js +0 -2
  375. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js +0 -2
  376. package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js +0 -2
  377. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js +0 -2
  378. package/dist/node_modules/recharts/es6/cartesian/Line.js +0 -2
  379. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js +0 -2
  380. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js +0 -2
  381. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js +0 -2
  382. package/dist/node_modules/recharts/es6/cartesian/XAxis.js +0 -2
  383. package/dist/node_modules/recharts/es6/cartesian/YAxis.js +0 -2
  384. package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js +0 -2
  385. package/dist/node_modules/recharts/es6/cartesian/getTicks.js +0 -2
  386. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js +0 -2
  387. package/dist/node_modules/recharts/es6/chart/AreaChart.js +0 -2
  388. package/dist/node_modules/recharts/es6/chart/BarChart.js +0 -2
  389. package/dist/node_modules/recharts/es6/chart/LineChart.js +0 -2
  390. package/dist/node_modules/recharts/es6/chart/Sankey.js +0 -2
  391. package/dist/node_modules/recharts/es6/chart/Treemap.js +0 -2
  392. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js +0 -2
  393. package/dist/node_modules/recharts/es6/component/Cell.js +0 -2
  394. package/dist/node_modules/recharts/es6/component/Cursor.js +0 -2
  395. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js +0 -2
  396. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js +0 -2
  397. package/dist/node_modules/recharts/es6/component/Label.js +0 -2
  398. package/dist/node_modules/recharts/es6/component/LabelList.js +0 -2
  399. package/dist/node_modules/recharts/es6/component/Legend.js +0 -2
  400. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js +0 -2
  401. package/dist/node_modules/recharts/es6/component/Text.js +0 -2
  402. package/dist/node_modules/recharts/es6/component/Tooltip.js +0 -2
  403. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js +0 -2
  404. package/dist/node_modules/recharts/es6/container/Layer.js +0 -2
  405. package/dist/node_modules/recharts/es6/container/Surface.js +0 -2
  406. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js +0 -2
  407. package/dist/node_modules/recharts/es6/shape/Cross.js +0 -2
  408. package/dist/node_modules/recharts/es6/shape/Curve.js +0 -2
  409. package/dist/node_modules/recharts/es6/shape/Dot.js +0 -2
  410. package/dist/node_modules/recharts/es6/shape/Polygon.js +0 -2
  411. package/dist/node_modules/recharts/es6/shape/Rectangle.js +0 -2
  412. package/dist/node_modules/recharts/es6/shape/Sector.js +0 -2
  413. package/dist/node_modules/recharts/es6/shape/Symbols.js +0 -2
  414. package/dist/node_modules/recharts/es6/shape/Trapezoid.js +0 -2
  415. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js +0 -2
  416. package/dist/node_modules/recharts/es6/util/BarUtils.js +0 -2
  417. package/dist/node_modules/recharts/es6/util/CartesianUtils.js +0 -2
  418. package/dist/node_modules/recharts/es6/util/ChartUtils.js +0 -2
  419. package/dist/node_modules/recharts/es6/util/Constants.js +0 -2
  420. package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js +0 -2
  421. package/dist/node_modules/recharts/es6/util/DOMUtils.js +0 -2
  422. package/dist/node_modules/recharts/es6/util/DataUtils.js +0 -2
  423. package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js +0 -2
  424. package/dist/node_modules/recharts/es6/util/Events.js +0 -2
  425. package/dist/node_modules/recharts/es6/util/Global.js +0 -2
  426. package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js +0 -2
  427. package/dist/node_modules/recharts/es6/util/LogUtils.js +0 -2
  428. package/dist/node_modules/recharts/es6/util/PolarUtils.js +0 -2
  429. package/dist/node_modules/recharts/es6/util/ReactUtils.js +0 -2
  430. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js +0 -2
  431. package/dist/node_modules/recharts/es6/util/ShallowEqual.js +0 -2
  432. package/dist/node_modules/recharts/es6/util/TickUtils.js +0 -2
  433. package/dist/node_modules/recharts/es6/util/calculateViewBox.js +0 -2
  434. package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js +0 -2
  435. package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js +0 -2
  436. package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js +0 -2
  437. package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js +0 -2
  438. package/dist/node_modules/recharts/es6/util/getLegendProps.js +0 -2
  439. package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js +0 -2
  440. package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js +0 -2
  441. package/dist/node_modules/recharts/es6/util/tooltip/translate.js +0 -2
  442. package/dist/node_modules/recharts/es6/util/types.js +0 -2
  443. package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js +0 -2
  444. package/dist/node_modules/recharts-scale/es6/util/arithmetic.js +0 -2
  445. package/dist/node_modules/recharts-scale/es6/util/utils.js +0 -2
  446. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +0 -2
  447. package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +0 -2
  448. package/dist/node_modules/victory-vendor/es/d3-scale.js +0 -2
  449. package/dist/node_modules/write-excel-file/modules/export/convertFileContentToUint8ArrayBrowser.js +0 -2
  450. package/dist/node_modules/write-excel-file/modules/export/convertFilesContentToUint8Arrays.js +0 -2
  451. package/dist/node_modules/write-excel-file/modules/export/downloadBlob.js +0 -2
  452. package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileBrowser.js +0 -2
  453. package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileUniversal.js +0 -2
  454. package/dist/node_modules/write-excel-file/modules/getSheetData/getSheetData.js +0 -2
  455. package/dist/node_modules/write-excel-file/modules/xlsx/features/conditionalFormatting.js +0 -2
  456. package/dist/node_modules/write-excel-file/modules/xlsx/features/images.js +0 -2
  457. package/dist/node_modules/write-excel-file/modules/xlsx/features/stickyRowsOrColumns.js +0 -2
  458. package/dist/node_modules/write-excel-file/modules/xlsx/files/_Content_Types_.xml.js +0 -2
  459. package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.js +0 -2
  460. package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.rels.js +0 -2
  461. package/dist/node_modules/write-excel-file/modules/xlsx/files/rels.js +0 -2
  462. package/dist/node_modules/write-excel-file/modules/xlsx/files/sharedStrings.xml.js +0 -2
  463. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/cell.js +0 -2
  464. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/column.js +0 -2
  465. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/columns.js +0 -2
  466. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/drawingReference.js +0 -2
  467. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/helpers/getCellStyleProperties.js +0 -2
  468. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/mergedCellsDescription.js +0 -2
  469. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageMargins.js +0 -2
  470. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageSetup.js +0 -2
  471. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/processMergedCells.js +0 -2
  472. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/row.js +0 -2
  473. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheet.xml.js +0 -2
  474. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetData.js +0 -2
  475. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetViews.js +0 -2
  476. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml.rels.js +0 -2
  477. package/dist/node_modules/write-excel-file/modules/xlsx/files/styles.xml.js +0 -2
  478. package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.js +0 -2
  479. package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.rels.js +0 -2
  480. package/dist/node_modules/write-excel-file/modules/xlsx/generateXlsxFileContents.js +0 -2
  481. package/dist/node_modules/write-excel-file/modules/xlsx/getFeatures.js +0 -2
  482. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/convertDateToSerialNumber.js +0 -2
  483. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getAdditionalContent.js +0 -2
  484. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getElementXml.js +0 -2
  485. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getWrittenFiles.js +0 -2
  486. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/transformContent.js +0 -2
  487. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getAlignmentXml.js +0 -2
  488. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getBorderXml.js +0 -2
  489. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getCellAddress.js +0 -2
  490. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFileExtensionForContentType.js +0 -2
  491. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFillXml.js +0 -2
  492. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFontXml.js +0 -2
  493. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getOrderOfSiblings.js +0 -2
  494. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getXlsxColorForHexColor.js +0 -2
  495. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasAlignment.js +0 -2
  496. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasBorder.js +0 -2
  497. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFill.js +0 -2
  498. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFont.js +0 -2
  499. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isCellObject.js +0 -2
  500. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isObject.js +0 -2
  501. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/orderOfSiblings.js +0 -2
  502. package/dist/node_modules/write-excel-file/modules/xlsx/initializeSharedStrings.js +0 -2
  503. package/dist/node_modules/write-excel-file/modules/xlsx/initializeSheets.js +0 -2
  504. package/dist/node_modules/write-excel-file/modules/xlsx/initializeStyles.js +0 -2
  505. package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetData.js +0 -2
  506. package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetName.js +0 -2
  507. package/dist/node_modules/write-excel-file/modules/xml/appendMarkupInsideElement.js +0 -2
  508. package/dist/node_modules/write-excel-file/modules/xml/applyEnclosingElementOffset.js +0 -2
  509. package/dist/node_modules/write-excel-file/modules/xml/escapeXmlSpecialCharacters.js +0 -2
  510. package/dist/node_modules/write-excel-file/modules/xml/findElement.js +0 -2
  511. package/dist/node_modules/write-excel-file/modules/xml/findElementInsideElement.js +0 -2
  512. package/dist/node_modules/write-excel-file/modules/xml/findElementsNonRecursive_.js +0 -2
  513. package/dist/node_modules/write-excel-file/modules/xml/getAttributesString.js +0 -2
  514. package/dist/node_modules/write-excel-file/modules/xml/getChildElements.js +0 -2
  515. package/dist/node_modules/write-excel-file/modules/xml/getClosingTagMarkup.js +0 -2
  516. package/dist/node_modules/write-excel-file/modules/xml/getMarkupInsideElement.js +0 -2
  517. package/dist/node_modules/write-excel-file/modules/xml/getOpeningTagMarkup.js +0 -2
  518. package/dist/node_modules/write-excel-file/modules/xml/getSelfClosingTagMarkup.js +0 -2
  519. package/dist/node_modules/write-excel-file/modules/xml/insertElementMarkupAccordingToOrderOfSiblings.js +0 -2
  520. package/dist/node_modules/write-excel-file/modules/xml/prependMarkupInsideElement.js +0 -2
  521. package/dist/node_modules/write-excel-file/modules/xml/removeInvalidXmlCharacters.js +0 -2
  522. package/dist/node_modules/write-excel-file/modules/xml/replaceElement.js +0 -2
  523. package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeName.js +0 -2
  524. package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeValue.js +0 -2
  525. package/dist/node_modules/write-excel-file/modules/xml/sanitizeTextContent.js +0 -2
  526. package/dist/node_modules/write-excel-file/modules/xml/setMarkupInsideElement.js +0 -2
  527. package/dist/node_modules/write-excel-file/modules/zip/zipToArrayBuffer.js +0 -2
  528. package/dist/planmagnet/PlanMagnetRoot.js +0 -2
  529. package/dist/planmagnet/PlanMagnetRoutes.js +0 -2
  530. package/dist/planmagnet/activity/activityDescribe.js +0 -2
  531. package/dist/planmagnet/activity/relativeTime.js +0 -2
  532. package/dist/planmagnet/admin/PlanMagnetAdminRoot.js +0 -2
  533. package/dist/planmagnet/automation/AutomationExecutionsPanel.js +0 -2
  534. package/dist/planmagnet/automation/AutomationRuleFields.js +0 -2
  535. package/dist/planmagnet/automation/automationRuleTypes.js +0 -2
  536. package/dist/planmagnet/board/BoardViewBar.js +0 -2
  537. package/dist/planmagnet/board/BulkActions.js +0 -2
  538. package/dist/planmagnet/board/ProjectBoard.js +0 -2
  539. package/dist/planmagnet/board/boardViewConfig.js +0 -2
  540. package/dist/planmagnet/budgets/BudgetControls.js +0 -2
  541. package/dist/planmagnet/budgets/ExpenseControls.js +0 -2
  542. package/dist/planmagnet/budgets/ProjectBudgetsSummary.js +0 -2
  543. package/dist/planmagnet/budgets/budgetMath.js +0 -2
  544. package/dist/planmagnet/comments/CommentAttachmentUpload.js +0 -2
  545. package/dist/planmagnet/comments/CommentAttachments.js +0 -2
  546. package/dist/planmagnet/comments/CommentBody.js +0 -2
  547. package/dist/planmagnet/comments/CommentThread.js +0 -2
  548. package/dist/planmagnet/comments/MentionComposer.js +0 -2
  549. package/dist/planmagnet/comments/RoadmapComments.js +0 -2
  550. package/dist/planmagnet/comments/TargetComments.js +0 -2
  551. package/dist/planmagnet/comments/WorkItemActivity.js +0 -2
  552. package/dist/planmagnet/comments/WorkItemComments.js +0 -2
  553. package/dist/planmagnet/comments/commentAttachmentUploadClient.js +0 -2
  554. package/dist/planmagnet/comments/commentImageTokens.js +0 -2
  555. package/dist/planmagnet/comments/commentTokens.js +0 -2
  556. package/dist/planmagnet/comments/fileDisplay.js +0 -2
  557. package/dist/planmagnet/comments/useCommentFileUrl.js +0 -2
  558. package/dist/planmagnet/controls/AutomationRuleControls.js +0 -2
  559. package/dist/planmagnet/controls/CompetitorControls.js +0 -2
  560. package/dist/planmagnet/controls/ConfirmButton.js +0 -2
  561. package/dist/planmagnet/controls/CustomFieldControls.js +0 -2
  562. package/dist/planmagnet/controls/CustomFieldValuesPanel.js +0 -2
  563. package/dist/planmagnet/controls/FeatureControls.js +0 -2
  564. package/dist/planmagnet/controls/FeatureTriage.js +0 -2
  565. package/dist/planmagnet/controls/FeedbackControls.js +0 -2
  566. package/dist/planmagnet/controls/LiveStatus.js +0 -2
  567. package/dist/planmagnet/controls/MilestoneControls.js +0 -2
  568. package/dist/planmagnet/controls/ObjectiveControls.js +0 -2
  569. package/dist/planmagnet/controls/Pickers.js +0 -2
  570. package/dist/planmagnet/controls/PortfolioControls.js +0 -2
  571. package/dist/planmagnet/controls/PrioritizationControls.js +0 -2
  572. package/dist/planmagnet/controls/ProgramControls.js +0 -2
  573. package/dist/planmagnet/controls/ProjectControls.js +0 -2
  574. package/dist/planmagnet/controls/QualityGateControls.js +0 -2
  575. package/dist/planmagnet/controls/ReleaseControls.js +0 -2
  576. package/dist/planmagnet/controls/RiskControls.js +0 -2
  577. package/dist/planmagnet/controls/SyncControls.js +0 -2
  578. package/dist/planmagnet/controls/TemplateControls.js +0 -2
  579. package/dist/planmagnet/controls/WebhookSubscriptionControls.js +0 -2
  580. package/dist/planmagnet/controls/WorkItemControls.js +0 -2
  581. package/dist/planmagnet/create/CreateDialogs.js +0 -2
  582. package/dist/planmagnet/dashboards/DashboardUI.js +0 -2
  583. package/dist/planmagnet/dashboards/cards/DeliveryTimelineCard.js +0 -2
  584. package/dist/planmagnet/dashboards/cards/ObjectivesProgressCard.js +0 -2
  585. package/dist/planmagnet/dashboards/cards/PortfolioHealthCard.js +0 -2
  586. package/dist/planmagnet/dashboards/cards/QualityMetricsCard.js +0 -2
  587. package/dist/planmagnet/dashboards/cards/RiskSeverityCard.js +0 -2
  588. package/dist/planmagnet/dashboards/cards/RoadmapHorizonCard.js +0 -2
  589. package/dist/planmagnet/dashboards/cards/SprintCapacityCard.js +0 -2
  590. package/dist/planmagnet/dashboards/cards/TaskCompletionCard.js +0 -2
  591. package/dist/planmagnet/dashboards/cards/TeamCapacityCard.js +0 -2
  592. package/dist/planmagnet/dashboards/cards/TeamOverviewCard.js +0 -2
  593. package/dist/planmagnet/dashboards/cards/TeamWorkloadCard.js +0 -2
  594. package/dist/planmagnet/dashboards/cards/TimeLoggedCard.js +0 -2
  595. package/dist/planmagnet/dependency/DependencyGraph.js +0 -2
  596. package/dist/planmagnet/dependency/DependencyPanel.js +0 -2
  597. package/dist/planmagnet/dependency/GanttChart.js +0 -2
  598. package/dist/planmagnet/dependency/useProjectWorkItemsGraph.js +0 -2
  599. package/dist/planmagnet/discussion/WorkItemDiscussionPanel.js +0 -2
  600. package/dist/planmagnet/docs/DocDiffView.js +0 -2
  601. package/dist/planmagnet/docs/DocStatusBadge.js +0 -2
  602. package/dist/planmagnet/docs/DocSuggestionsPanel.js +0 -2
  603. package/dist/planmagnet/docs/DocVersionCompare.js +0 -2
  604. package/dist/planmagnet/export/ExportWorkItemsButton.js +0 -2
  605. package/dist/planmagnet/export/workItemsCsv.js +0 -2
  606. package/dist/planmagnet/forecast/DeliveryForecastCard.js +0 -2
  607. package/dist/planmagnet/forecast/ProjectOutlookCard.js +0 -2
  608. package/dist/planmagnet/forecast/ProjectRiskSummaryCard.js +0 -2
  609. package/dist/planmagnet/forecast/ResourceForecastCard.js +0 -2
  610. package/dist/planmagnet/forecast/riskFlags.js +0 -2
  611. package/dist/planmagnet/hooks/useCounts.js +0 -2
  612. package/dist/planmagnet/hooks/useEntityId.js +0 -2
  613. package/dist/planmagnet/hooks/useLiveRefresh.js +0 -2
  614. package/dist/planmagnet/hooks/usePresence.js +0 -2
  615. package/dist/planmagnet/hooks/useProjectWorkflow.js +0 -2
  616. package/dist/planmagnet/import/exportColumns.js +0 -2
  617. package/dist/planmagnet/integrations/routes.js +0 -2
  618. package/dist/planmagnet/integrations/syncTypes.js +0 -2
  619. package/dist/planmagnet/integrations/useSyncProviderCapabilities.js +0 -2
  620. package/dist/planmagnet/links/CodeLinksPanel.js +0 -2
  621. package/dist/planmagnet/links/IssueLinksPanel.js +0 -2
  622. package/dist/planmagnet/meetings/MeetingActionItemsPanel.js +0 -2
  623. package/dist/planmagnet/meetings/MeetingsCard.js +0 -2
  624. package/dist/planmagnet/meetings/ScheduleCeremoniesDialog.js +0 -2
  625. package/dist/planmagnet/meetings/ScheduleMeetingDialog.js +0 -2
  626. package/dist/planmagnet/meetings/UnlinkMeetingDialog.js +0 -2
  627. package/dist/planmagnet/meetings/meetingActions.js +0 -2
  628. package/dist/planmagnet/meetings/meetingGraphql.js +0 -2
  629. package/dist/planmagnet/meetings/meetingModel.js +0 -2
  630. package/dist/planmagnet/milestones/MilestoneControls.js +0 -2
  631. package/dist/planmagnet/pages/ActivityActivityPagePage.js +0 -2
  632. package/dist/planmagnet/pages/AiActivityPagePage.js +0 -2
  633. package/dist/planmagnet/pages/AiPlanPagePage.js +0 -2
  634. package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.js +0 -2
  635. package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.js +0 -2
  636. package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.js +0 -2
  637. package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.js +0 -2
  638. package/dist/planmagnet/pages/CompetitorsCompetitorDetailPagePage.js +0 -2
  639. package/dist/planmagnet/pages/CompetitorsCompetitorsPagePage.js +0 -2
  640. package/dist/planmagnet/pages/CompetitorsCreateCompetitorPagePage.js +0 -2
  641. package/dist/planmagnet/pages/CompetitorsEditCompetitorPagePage.js +0 -2
  642. package/dist/planmagnet/pages/DashboardDashboardPagePage.js +0 -2
  643. package/dist/planmagnet/pages/DashboardsExecutivePagePage.js +0 -2
  644. package/dist/planmagnet/pages/DashboardsLeadershipPagePage.js +0 -2
  645. package/dist/planmagnet/pages/DashboardsProjectManagerPagePage.js +0 -2
  646. package/dist/planmagnet/pages/DashboardsTeamUtilizationPagePage.js +0 -2
  647. package/dist/planmagnet/pages/DocsDocDetailPagePage.js +0 -2
  648. package/dist/planmagnet/pages/DocsDocsPagePage.js +0 -2
  649. package/dist/planmagnet/pages/GoalsCreateObjectivePagePage.js +0 -2
  650. package/dist/planmagnet/pages/GoalsGoalsPagePage.js +0 -2
  651. package/dist/planmagnet/pages/GoalsObjectiveDetailPagePage.js +0 -2
  652. package/dist/planmagnet/pages/IntegrationsNewSyncPagePage.js +0 -2
  653. package/dist/planmagnet/pages/IntegrationsSyncDetailPagePage.js +0 -2
  654. package/dist/planmagnet/pages/IntegrationsSyncsPagePage.js +0 -2
  655. package/dist/planmagnet/pages/IntegrationsWebhooksPagePage.js +0 -2
  656. package/dist/planmagnet/pages/MeetingsMeetingDetailPagePage.js +0 -2
  657. package/dist/planmagnet/pages/MeetingsMeetingsPagePage.js +0 -2
  658. package/dist/planmagnet/pages/NotFoundPage.js +0 -2
  659. package/dist/planmagnet/pages/PortfoliosCreatePortfolioPagePage.js +0 -2
  660. package/dist/planmagnet/pages/PortfoliosEditPortfolioPagePage.js +0 -2
  661. package/dist/planmagnet/pages/PortfoliosPortfolioDetailPagePage.js +0 -2
  662. package/dist/planmagnet/pages/PortfoliosPortfoliosPagePage.js +0 -2
  663. package/dist/planmagnet/pages/ProductsCreateProductPagePage.js +0 -2
  664. package/dist/planmagnet/pages/ProductsCreateRoadmapPagePage.js +0 -2
  665. package/dist/planmagnet/pages/ProductsCustomerSatisfactionPagePage.js +0 -2
  666. package/dist/planmagnet/pages/ProductsEditProductPagePage.js +0 -2
  667. package/dist/planmagnet/pages/ProductsEditReleasePagePage.js +0 -2
  668. package/dist/planmagnet/pages/ProductsEditRoadmapPagePage.js +0 -2
  669. package/dist/planmagnet/pages/ProductsFeatureAnalyticsPagePage.js +0 -2
  670. package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js +0 -2
  671. package/dist/planmagnet/pages/ProductsFeaturesPagePage.js +0 -2
  672. package/dist/planmagnet/pages/ProductsNewFeaturePagePage.js +0 -2
  673. package/dist/planmagnet/pages/ProductsPrioritizationPagePage.js +0 -2
  674. package/dist/planmagnet/pages/ProductsProductDetailPagePage.js +0 -2
  675. package/dist/planmagnet/pages/ProductsProductFeatureDetailPagePage.js +0 -2
  676. package/dist/planmagnet/pages/ProductsProductHierarchyPagePage.js +0 -2
  677. package/dist/planmagnet/pages/ProductsProductLinesPagePage.js +0 -2
  678. package/dist/planmagnet/pages/ProductsProductsPagePage.js +0 -2
  679. package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js +0 -2
  680. package/dist/planmagnet/pages/ProductsReleasesPagePage.js +0 -2
  681. package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.js +0 -2
  682. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js +0 -2
  683. package/dist/planmagnet/pages/ProductsRoadmapsPagePage.js +0 -2
  684. package/dist/planmagnet/pages/ProgramsCreateProgramPagePage.js +0 -2
  685. package/dist/planmagnet/pages/ProgramsEditProgramPagePage.js +0 -2
  686. package/dist/planmagnet/pages/ProgramsProgramDetailPagePage.js +0 -2
  687. package/dist/planmagnet/pages/ProgramsProgramsPagePage.js +0 -2
  688. package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.js +0 -2
  689. package/dist/planmagnet/pages/ProjectsAtRiskPagePage.js +0 -2
  690. package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.js +0 -2
  691. package/dist/planmagnet/pages/ProjectsBudgetsPagePage.js +0 -2
  692. package/dist/planmagnet/pages/ProjectsCreateProjectPagePage.js +0 -2
  693. package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.js +0 -2
  694. package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.js +0 -2
  695. package/dist/planmagnet/pages/ProjectsEditProjectPagePage.js +0 -2
  696. package/dist/planmagnet/pages/ProjectsGanttPagePage.js +0 -2
  697. package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js +0 -2
  698. package/dist/planmagnet/pages/ProjectsMilestonesPagePage.js +0 -2
  699. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js +0 -2
  700. package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js +0 -2
  701. package/dist/planmagnet/pages/ProjectsPlanningPagePage.js +0 -2
  702. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js +0 -2
  703. package/dist/planmagnet/pages/ProjectsProjectsPagePage.js +0 -2
  704. package/dist/planmagnet/pages/ProjectsQualityGatesPagePage.js +0 -2
  705. package/dist/planmagnet/pages/ProjectsWorkflowPagePage.js +0 -2
  706. package/dist/planmagnet/pages/ReportsCreateReportPagePage.js +0 -2
  707. package/dist/planmagnet/pages/ReportsEditReportPagePage.js +0 -2
  708. package/dist/planmagnet/pages/ReportsReportPagePage.js +0 -2
  709. package/dist/planmagnet/pages/ReportsReportsPagePage.js +0 -2
  710. package/dist/planmagnet/pages/RisksRiskDetailPagePage.js +0 -2
  711. package/dist/planmagnet/pages/RisksRiskRegisterPagePage.js +0 -2
  712. package/dist/planmagnet/pages/SprintsStartSprintPagePage.js +0 -2
  713. package/dist/planmagnet/pages/TasksCreateTaskPagePage.js +0 -2
  714. package/dist/planmagnet/pages/TasksEditTaskPagePage.js +0 -2
  715. package/dist/planmagnet/pages/TasksImportPagePage.js +0 -2
  716. package/dist/planmagnet/pages/TasksMyDashboardPagePage.js +0 -2
  717. package/dist/planmagnet/pages/TasksMyWorkPagePage.js +0 -2
  718. package/dist/planmagnet/pages/TasksTaskDetailPagePage.js +0 -2
  719. package/dist/planmagnet/pages/TasksTasksPagePage.js +0 -2
  720. package/dist/planmagnet/pages/TasksTimeEntriesPagePage.js +0 -2
  721. package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.js +0 -2
  722. package/dist/planmagnet/pages/TasksTimesheetsPagePage.js +0 -2
  723. package/dist/planmagnet/pages/TeamCreateTeamPagePage.js +0 -2
  724. package/dist/planmagnet/pages/TeamInviteMemberPagePage.js +99 -101
  725. package/dist/planmagnet/pages/TeamTeamDetailPagePage.js +0 -2
  726. package/dist/planmagnet/pages/TeamTeamEditPagePage.js +0 -2
  727. package/dist/planmagnet/pages/TeamTeamPagePage.js +0 -2
  728. package/dist/planmagnet/pages/TeamTeamsListPagePage.js +0 -2
  729. package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.js +0 -2
  730. package/dist/planmagnet/pages/TemplatesTemplatesPagePage.js +0 -2
  731. package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.js +0 -2
  732. package/dist/planmagnet/pages/analytics/DeliveryHealthCards.js +0 -2
  733. package/dist/planmagnet/pages/analytics/DeliveryKpisCard.js +0 -2
  734. package/dist/planmagnet/pages/analytics/MetricsCard.js +0 -2
  735. package/dist/planmagnet/pages/analytics/QualityMetricsCard.js +0 -2
  736. package/dist/planmagnet/pages/analytics/SprintDeliveryCards.js +0 -2
  737. package/dist/planmagnet/pages/analytics/StatusFlowCard.js +0 -2
  738. package/dist/planmagnet/pages/analytics/ThroughputCard.js +0 -2
  739. package/dist/planmagnet/pages/analytics/WorkBreakdownCard.js +0 -2
  740. package/dist/planmagnet/pages/analytics/analyticsRange.js +0 -2
  741. package/dist/planmagnet/people/People.js +0 -2
  742. package/dist/planmagnet/presence/PresenceAvatars.js +0 -2
  743. package/dist/planmagnet/product/FeatureLinkPanels.js +0 -2
  744. package/dist/planmagnet/product/ProductControls.js +0 -2
  745. package/dist/planmagnet/product/ProductFeatureControls.js +0 -2
  746. package/dist/planmagnet/product/ProductFeatureLinkCard.js +0 -2
  747. package/dist/planmagnet/product/ProductLineControls.js +0 -2
  748. package/dist/planmagnet/product/ProductTeamsPanel.js +0 -2
  749. package/dist/planmagnet/product/WorkItemProductFeatureChip.js +0 -2
  750. package/dist/planmagnet/product/hierarchy.js +0 -2
  751. package/dist/planmagnet/product/hierarchyOperations.js +0 -2
  752. package/dist/planmagnet/product/refusal.js +0 -2
  753. package/dist/planmagnet/product/routes.js +0 -2
  754. package/dist/planmagnet/providers/PlanMagnetProvider.js +0 -2
  755. package/dist/planmagnet/releases/ReleaseChecklistCard.js +0 -2
  756. package/dist/planmagnet/releases/ReleaseGatesCard.js +0 -2
  757. package/dist/planmagnet/releases/ReleaseNotesCard.js +0 -2
  758. package/dist/planmagnet/releases/ReleaseReadinessCard.js +0 -2
  759. package/dist/planmagnet/releases/ReleaseWorkItemsCard.js +0 -2
  760. package/dist/planmagnet/releases/useReleaseOptions.js +0 -2
  761. package/dist/planmagnet/reports/ExportMenu.js +0 -2
  762. package/dist/planmagnet/reports/PrintReportView.js +0 -2
  763. package/dist/planmagnet/reports/ReportBuilderCanvas.js +0 -2
  764. package/dist/planmagnet/reports/ReportBuilderPage.js +0 -2
  765. package/dist/planmagnet/reports/ReportRunHistory.js +0 -2
  766. package/dist/planmagnet/reports/ReportWidgetRenderer.js +0 -2
  767. package/dist/planmagnet/reports/SchedulesPanel.js +0 -2
  768. package/dist/planmagnet/reports/ShareDialog.js +0 -2
  769. package/dist/planmagnet/reports/SharedReportPage.js +0 -2
  770. package/dist/planmagnet/reports/WidgetEditorDialog.js +0 -2
  771. package/dist/planmagnet/reports/reportExportPptx.js +0 -2
  772. package/dist/planmagnet/reports/reportExportXlsx.js +0 -2
  773. package/dist/planmagnet/reports/reportGraphql.js +0 -2
  774. package/dist/planmagnet/reports/reportModel.js +0 -2
  775. package/dist/planmagnet/reports/sharedReportRoute.js +0 -2
  776. package/dist/planmagnet/roadmaps/FeatureInitiativeCard.js +0 -2
  777. package/dist/planmagnet/roadmaps/RoadmapControls.js +0 -2
  778. package/dist/planmagnet/roadmaps/RoadmapNowNextLater.js +0 -2
  779. package/dist/planmagnet/roadmaps/RoadmapPresentation.js +0 -2
  780. package/dist/planmagnet/roadmaps/RoadmapReviewPanel.js +0 -2
  781. package/dist/planmagnet/roadmaps/RoadmapVersionsPanel.js +0 -2
  782. package/dist/planmagnet/roadmaps/planningFocus.js +0 -2
  783. package/dist/planmagnet/satisfaction/DeliverySatisfactionSection.js +0 -2
  784. package/dist/planmagnet/satisfaction/SatisfactionFigures.js +0 -2
  785. package/dist/planmagnet/satisfaction/SatisfactionImportDialog.js +0 -2
  786. package/dist/planmagnet/satisfaction/SatisfactionLinkFields.js +0 -2
  787. package/dist/planmagnet/satisfaction/SatisfactionReleaseSelect.js +0 -2
  788. package/dist/planmagnet/satisfaction/SatisfactionResponseDialog.js +0 -2
  789. package/dist/planmagnet/satisfaction/SatisfactionResponsesTable.js +0 -2
  790. package/dist/planmagnet/satisfaction/SatisfactionSummaryCard.js +0 -2
  791. package/dist/planmagnet/satisfaction/SatisfactionWindowPicker.js +0 -2
  792. package/dist/planmagnet/satisfaction/satisfaction.js +0 -2
  793. package/dist/planmagnet/satisfaction/satisfactionCsv.js +0 -2
  794. package/dist/planmagnet/satisfaction/satisfactionForm.js +0 -2
  795. package/dist/planmagnet/satisfaction/satisfactionOperations.js +0 -2
  796. package/dist/planmagnet/satisfaction/useSatisfactionAccess.js +0 -2
  797. package/dist/planmagnet/skills/RequiredSkillsEditor.js +0 -2
  798. package/dist/planmagnet/skills/SkillChips.js +0 -2
  799. package/dist/planmagnet/skills/SkillCoverageCard.js +0 -2
  800. package/dist/planmagnet/skills/WorkItemRequiredSkills.js +0 -2
  801. package/dist/planmagnet/skills/skillOperations.js +0 -2
  802. package/dist/planmagnet/skills/skillTags.js +0 -2
  803. package/dist/planmagnet/skills/useRequiredSkillsDraft.js +0 -2
  804. package/dist/planmagnet/sprints/SprintControls.js +0 -2
  805. package/dist/planmagnet/sprints/SprintDates.js +0 -2
  806. package/dist/planmagnet/store/planmagnetStore.js +0 -2
  807. package/dist/planmagnet/team/PendingInvitations.d.ts +1 -3
  808. package/dist/planmagnet/team/PendingInvitations.js +62 -65
  809. package/dist/planmagnet/team/TeamControls.js +0 -2
  810. package/dist/planmagnet/team/UnmatchedCrewIdentities.js +0 -2
  811. package/dist/planmagnet/team/invitationEmail.js +0 -2
  812. package/dist/planmagnet/time/TaskTimePanel.js +0 -2
  813. package/dist/planmagnet/time/TimeEntryControls.js +0 -2
  814. package/dist/planmagnet/time/TimesheetControls.js +0 -2
  815. package/dist/planmagnet/time/timeShared.js +0 -2
  816. package/dist/planmagnet/utils/cn.js +0 -2
  817. package/dist/planmagnet/utils/email.js +0 -2
  818. package/dist/planmagnet/utils/formValidation.js +0 -2
  819. package/dist/planmagnet/utils/graphqlErrors.js +0 -2
  820. package/dist/planmagnet/utils/lineDiff.js +0 -2
  821. package/dist/planmagnet/utils/mutationResult.js +0 -2
  822. package/dist/planmagnet/utils/navigation.js +0 -2
  823. package/dist/planmagnet/utils/qualityGateCriteria.js +0 -2
  824. package/dist/planmagnet/utils/rowNavigation.js +0 -2
  825. package/dist/planmagnet/utils/statusColor.js +0 -2
  826. package/dist/planmagnet/utils/urlParam.js +0 -2
  827. package/dist/planmagnet/webhooks/webhookTypes.js +0 -2
  828. package/dist/shared/hooks/useTr.js +0 -2
  829. package/dist/shared/utils/i18n.js +0 -2
  830. package/package.json +2 -1
  831. package/dist/_virtual/__vite-browser-external.js.map +0 -1
  832. package/dist/components/Button.d.ts.map +0 -1
  833. package/dist/components/Button.stories.d.ts.map +0 -1
  834. package/dist/components/MarkdownEditor.d.ts.map +0 -1
  835. package/dist/components/MarkdownEditor.js.map +0 -1
  836. package/dist/dev/main.d.ts.map +0 -1
  837. package/dist/generated/global-operations.d.ts.map +0 -1
  838. package/dist/generated/global-types.d.ts.map +0 -1
  839. package/dist/generated/wspace-operations.d.ts.map +0 -1
  840. package/dist/generated/wspace-types.d.ts.map +0 -1
  841. package/dist/index.d.ts.map +0 -1
  842. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +0 -1
  843. package/dist/node_modules/@apollo/client/errors/ServerError.js.map +0 -1
  844. package/dist/node_modules/@apollo/client/errors/utils.js.map +0 -1
  845. package/dist/node_modules/clsx/dist/clsx.js.map +0 -1
  846. package/dist/node_modules/d3-array/src/ascending.js.map +0 -1
  847. package/dist/node_modules/d3-array/src/bisect.js.map +0 -1
  848. package/dist/node_modules/d3-array/src/bisector.js.map +0 -1
  849. package/dist/node_modules/d3-array/src/descending.js.map +0 -1
  850. package/dist/node_modules/d3-array/src/max.js.map +0 -1
  851. package/dist/node_modules/d3-array/src/min.js.map +0 -1
  852. package/dist/node_modules/d3-array/src/number.js.map +0 -1
  853. package/dist/node_modules/d3-array/src/quantile.js.map +0 -1
  854. package/dist/node_modules/d3-array/src/quickselect.js.map +0 -1
  855. package/dist/node_modules/d3-array/src/range.js.map +0 -1
  856. package/dist/node_modules/d3-array/src/sort.js.map +0 -1
  857. package/dist/node_modules/d3-array/src/ticks.js.map +0 -1
  858. package/dist/node_modules/d3-color/src/color.js.map +0 -1
  859. package/dist/node_modules/d3-color/src/define.js.map +0 -1
  860. package/dist/node_modules/d3-format/src/defaultLocale.js.map +0 -1
  861. package/dist/node_modules/d3-format/src/exponent.js.map +0 -1
  862. package/dist/node_modules/d3-format/src/formatDecimal.js.map +0 -1
  863. package/dist/node_modules/d3-format/src/formatGroup.js.map +0 -1
  864. package/dist/node_modules/d3-format/src/formatNumerals.js.map +0 -1
  865. package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +0 -1
  866. package/dist/node_modules/d3-format/src/formatRounded.js.map +0 -1
  867. package/dist/node_modules/d3-format/src/formatSpecifier.js.map +0 -1
  868. package/dist/node_modules/d3-format/src/formatTrim.js.map +0 -1
  869. package/dist/node_modules/d3-format/src/formatTypes.js.map +0 -1
  870. package/dist/node_modules/d3-format/src/identity.js.map +0 -1
  871. package/dist/node_modules/d3-format/src/locale.js.map +0 -1
  872. package/dist/node_modules/d3-format/src/precisionFixed.js.map +0 -1
  873. package/dist/node_modules/d3-format/src/precisionPrefix.js.map +0 -1
  874. package/dist/node_modules/d3-format/src/precisionRound.js.map +0 -1
  875. package/dist/node_modules/d3-interpolate/src/array.js.map +0 -1
  876. package/dist/node_modules/d3-interpolate/src/basis.js.map +0 -1
  877. package/dist/node_modules/d3-interpolate/src/basisClosed.js.map +0 -1
  878. package/dist/node_modules/d3-interpolate/src/color.js.map +0 -1
  879. package/dist/node_modules/d3-interpolate/src/constant.js.map +0 -1
  880. package/dist/node_modules/d3-interpolate/src/date.js.map +0 -1
  881. package/dist/node_modules/d3-interpolate/src/number.js.map +0 -1
  882. package/dist/node_modules/d3-interpolate/src/numberArray.js.map +0 -1
  883. package/dist/node_modules/d3-interpolate/src/object.js.map +0 -1
  884. package/dist/node_modules/d3-interpolate/src/piecewise.js.map +0 -1
  885. package/dist/node_modules/d3-interpolate/src/rgb.js.map +0 -1
  886. package/dist/node_modules/d3-interpolate/src/round.js.map +0 -1
  887. package/dist/node_modules/d3-interpolate/src/string.js.map +0 -1
  888. package/dist/node_modules/d3-interpolate/src/value.js.map +0 -1
  889. package/dist/node_modules/d3-path/src/path.js.map +0 -1
  890. package/dist/node_modules/d3-scale/src/band.js.map +0 -1
  891. package/dist/node_modules/d3-scale/src/constant.js.map +0 -1
  892. package/dist/node_modules/d3-scale/src/continuous.js.map +0 -1
  893. package/dist/node_modules/d3-scale/src/diverging.js.map +0 -1
  894. package/dist/node_modules/d3-scale/src/identity.js.map +0 -1
  895. package/dist/node_modules/d3-scale/src/init.js.map +0 -1
  896. package/dist/node_modules/d3-scale/src/linear.js.map +0 -1
  897. package/dist/node_modules/d3-scale/src/log.js.map +0 -1
  898. package/dist/node_modules/d3-scale/src/nice.js.map +0 -1
  899. package/dist/node_modules/d3-scale/src/number.js.map +0 -1
  900. package/dist/node_modules/d3-scale/src/ordinal.js.map +0 -1
  901. package/dist/node_modules/d3-scale/src/pow.js.map +0 -1
  902. package/dist/node_modules/d3-scale/src/quantile.js.map +0 -1
  903. package/dist/node_modules/d3-scale/src/quantize.js.map +0 -1
  904. package/dist/node_modules/d3-scale/src/radial.js.map +0 -1
  905. package/dist/node_modules/d3-scale/src/sequential.js.map +0 -1
  906. package/dist/node_modules/d3-scale/src/sequentialQuantile.js.map +0 -1
  907. package/dist/node_modules/d3-scale/src/symlog.js.map +0 -1
  908. package/dist/node_modules/d3-scale/src/threshold.js.map +0 -1
  909. package/dist/node_modules/d3-scale/src/tickFormat.js.map +0 -1
  910. package/dist/node_modules/d3-scale/src/time.js.map +0 -1
  911. package/dist/node_modules/d3-scale/src/utcTime.js.map +0 -1
  912. package/dist/node_modules/d3-shape/src/area.js.map +0 -1
  913. package/dist/node_modules/d3-shape/src/array.js.map +0 -1
  914. package/dist/node_modules/d3-shape/src/constant.js.map +0 -1
  915. package/dist/node_modules/d3-shape/src/curve/basis.js.map +0 -1
  916. package/dist/node_modules/d3-shape/src/curve/basisClosed.js.map +0 -1
  917. package/dist/node_modules/d3-shape/src/curve/basisOpen.js.map +0 -1
  918. package/dist/node_modules/d3-shape/src/curve/bump.js.map +0 -1
  919. package/dist/node_modules/d3-shape/src/curve/linear.js.map +0 -1
  920. package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +0 -1
  921. package/dist/node_modules/d3-shape/src/curve/monotone.js.map +0 -1
  922. package/dist/node_modules/d3-shape/src/curve/natural.js.map +0 -1
  923. package/dist/node_modules/d3-shape/src/curve/step.js.map +0 -1
  924. package/dist/node_modules/d3-shape/src/line.js.map +0 -1
  925. package/dist/node_modules/d3-shape/src/math.js.map +0 -1
  926. package/dist/node_modules/d3-shape/src/noop.js.map +0 -1
  927. package/dist/node_modules/d3-shape/src/offset/expand.js.map +0 -1
  928. package/dist/node_modules/d3-shape/src/offset/none.js.map +0 -1
  929. package/dist/node_modules/d3-shape/src/offset/silhouette.js.map +0 -1
  930. package/dist/node_modules/d3-shape/src/offset/wiggle.js.map +0 -1
  931. package/dist/node_modules/d3-shape/src/order/none.js.map +0 -1
  932. package/dist/node_modules/d3-shape/src/path.js.map +0 -1
  933. package/dist/node_modules/d3-shape/src/point.js.map +0 -1
  934. package/dist/node_modules/d3-shape/src/stack.js.map +0 -1
  935. package/dist/node_modules/d3-shape/src/symbol/circle.js.map +0 -1
  936. package/dist/node_modules/d3-shape/src/symbol/cross.js.map +0 -1
  937. package/dist/node_modules/d3-shape/src/symbol/diamond.js.map +0 -1
  938. package/dist/node_modules/d3-shape/src/symbol/square.js.map +0 -1
  939. package/dist/node_modules/d3-shape/src/symbol/star.js.map +0 -1
  940. package/dist/node_modules/d3-shape/src/symbol/triangle.js.map +0 -1
  941. package/dist/node_modules/d3-shape/src/symbol/wye.js.map +0 -1
  942. package/dist/node_modules/d3-shape/src/symbol.js.map +0 -1
  943. package/dist/node_modules/d3-time/src/day.js.map +0 -1
  944. package/dist/node_modules/d3-time/src/duration.js.map +0 -1
  945. package/dist/node_modules/d3-time/src/hour.js.map +0 -1
  946. package/dist/node_modules/d3-time/src/interval.js.map +0 -1
  947. package/dist/node_modules/d3-time/src/millisecond.js.map +0 -1
  948. package/dist/node_modules/d3-time/src/minute.js.map +0 -1
  949. package/dist/node_modules/d3-time/src/month.js.map +0 -1
  950. package/dist/node_modules/d3-time/src/second.js.map +0 -1
  951. package/dist/node_modules/d3-time/src/ticks.js.map +0 -1
  952. package/dist/node_modules/d3-time/src/week.js.map +0 -1
  953. package/dist/node_modules/d3-time/src/year.js.map +0 -1
  954. package/dist/node_modules/d3-time-format/src/defaultLocale.js.map +0 -1
  955. package/dist/node_modules/d3-time-format/src/locale.js.map +0 -1
  956. package/dist/node_modules/decimal.js-light/decimal.js.map +0 -1
  957. package/dist/node_modules/eventemitter3/index.js.map +0 -1
  958. package/dist/node_modules/fast-equals/dist/es/index.js.map +0 -1
  959. package/dist/node_modules/fflate/esm/browser.js.map +0 -1
  960. package/dist/node_modules/internmap/src/index.js.map +0 -1
  961. package/dist/node_modules/jszip/dist/jszip.min.js.map +0 -1
  962. package/dist/node_modules/lodash/_DataView.js.map +0 -1
  963. package/dist/node_modules/lodash/_Hash.js.map +0 -1
  964. package/dist/node_modules/lodash/_ListCache.js.map +0 -1
  965. package/dist/node_modules/lodash/_Map.js.map +0 -1
  966. package/dist/node_modules/lodash/_MapCache.js.map +0 -1
  967. package/dist/node_modules/lodash/_Promise.js.map +0 -1
  968. package/dist/node_modules/lodash/_Set.js.map +0 -1
  969. package/dist/node_modules/lodash/_SetCache.js.map +0 -1
  970. package/dist/node_modules/lodash/_Stack.js.map +0 -1
  971. package/dist/node_modules/lodash/_Symbol.js.map +0 -1
  972. package/dist/node_modules/lodash/_Uint8Array.js.map +0 -1
  973. package/dist/node_modules/lodash/_WeakMap.js.map +0 -1
  974. package/dist/node_modules/lodash/_apply.js.map +0 -1
  975. package/dist/node_modules/lodash/_arrayEach.js.map +0 -1
  976. package/dist/node_modules/lodash/_arrayEvery.js.map +0 -1
  977. package/dist/node_modules/lodash/_arrayFilter.js.map +0 -1
  978. package/dist/node_modules/lodash/_arrayIncludes.js.map +0 -1
  979. package/dist/node_modules/lodash/_arrayIncludesWith.js.map +0 -1
  980. package/dist/node_modules/lodash/_arrayLikeKeys.js.map +0 -1
  981. package/dist/node_modules/lodash/_arrayMap.js.map +0 -1
  982. package/dist/node_modules/lodash/_arrayPush.js.map +0 -1
  983. package/dist/node_modules/lodash/_arraySome.js.map +0 -1
  984. package/dist/node_modules/lodash/_asciiToArray.js.map +0 -1
  985. package/dist/node_modules/lodash/_assignValue.js.map +0 -1
  986. package/dist/node_modules/lodash/_assocIndexOf.js.map +0 -1
  987. package/dist/node_modules/lodash/_baseAssign.js.map +0 -1
  988. package/dist/node_modules/lodash/_baseAssignIn.js.map +0 -1
  989. package/dist/node_modules/lodash/_baseAssignValue.js.map +0 -1
  990. package/dist/node_modules/lodash/_baseClone.js.map +0 -1
  991. package/dist/node_modules/lodash/_baseCreate.js.map +0 -1
  992. package/dist/node_modules/lodash/_baseEach.js.map +0 -1
  993. package/dist/node_modules/lodash/_baseEvery.js.map +0 -1
  994. package/dist/node_modules/lodash/_baseExtremum.js.map +0 -1
  995. package/dist/node_modules/lodash/_baseFindIndex.js.map +0 -1
  996. package/dist/node_modules/lodash/_baseFlatten.js.map +0 -1
  997. package/dist/node_modules/lodash/_baseFor.js.map +0 -1
  998. package/dist/node_modules/lodash/_baseForOwn.js.map +0 -1
  999. package/dist/node_modules/lodash/_baseGet.js.map +0 -1
  1000. package/dist/node_modules/lodash/_baseGetAllKeys.js.map +0 -1
  1001. package/dist/node_modules/lodash/_baseGetTag.js.map +0 -1
  1002. package/dist/node_modules/lodash/_baseGt.js.map +0 -1
  1003. package/dist/node_modules/lodash/_baseHasIn.js.map +0 -1
  1004. package/dist/node_modules/lodash/_baseIndexOf.js.map +0 -1
  1005. package/dist/node_modules/lodash/_baseIsArguments.js.map +0 -1
  1006. package/dist/node_modules/lodash/_baseIsEqual.js.map +0 -1
  1007. package/dist/node_modules/lodash/_baseIsEqualDeep.js.map +0 -1
  1008. package/dist/node_modules/lodash/_baseIsMap.js.map +0 -1
  1009. package/dist/node_modules/lodash/_baseIsMatch.js.map +0 -1
  1010. package/dist/node_modules/lodash/_baseIsNaN.js.map +0 -1
  1011. package/dist/node_modules/lodash/_baseIsNative.js.map +0 -1
  1012. package/dist/node_modules/lodash/_baseIsSet.js.map +0 -1
  1013. package/dist/node_modules/lodash/_baseIsTypedArray.js.map +0 -1
  1014. package/dist/node_modules/lodash/_baseIteratee.js.map +0 -1
  1015. package/dist/node_modules/lodash/_baseKeys.js.map +0 -1
  1016. package/dist/node_modules/lodash/_baseKeysIn.js.map +0 -1
  1017. package/dist/node_modules/lodash/_baseLt.js.map +0 -1
  1018. package/dist/node_modules/lodash/_baseMap.js.map +0 -1
  1019. package/dist/node_modules/lodash/_baseMatches.js.map +0 -1
  1020. package/dist/node_modules/lodash/_baseMatchesProperty.js.map +0 -1
  1021. package/dist/node_modules/lodash/_baseOrderBy.js.map +0 -1
  1022. package/dist/node_modules/lodash/_baseProperty.js.map +0 -1
  1023. package/dist/node_modules/lodash/_basePropertyDeep.js.map +0 -1
  1024. package/dist/node_modules/lodash/_baseRange.js.map +0 -1
  1025. package/dist/node_modules/lodash/_baseRest.js.map +0 -1
  1026. package/dist/node_modules/lodash/_baseSetToString.js.map +0 -1
  1027. package/dist/node_modules/lodash/_baseSlice.js.map +0 -1
  1028. package/dist/node_modules/lodash/_baseSome.js.map +0 -1
  1029. package/dist/node_modules/lodash/_baseSortBy.js.map +0 -1
  1030. package/dist/node_modules/lodash/_baseSum.js.map +0 -1
  1031. package/dist/node_modules/lodash/_baseTimes.js.map +0 -1
  1032. package/dist/node_modules/lodash/_baseToString.js.map +0 -1
  1033. package/dist/node_modules/lodash/_baseTrim.js.map +0 -1
  1034. package/dist/node_modules/lodash/_baseUnary.js.map +0 -1
  1035. package/dist/node_modules/lodash/_baseUniq.js.map +0 -1
  1036. package/dist/node_modules/lodash/_baseUnset.js.map +0 -1
  1037. package/dist/node_modules/lodash/_cacheHas.js.map +0 -1
  1038. package/dist/node_modules/lodash/_castPath.js.map +0 -1
  1039. package/dist/node_modules/lodash/_castSlice.js.map +0 -1
  1040. package/dist/node_modules/lodash/_cloneArrayBuffer.js.map +0 -1
  1041. package/dist/node_modules/lodash/_cloneBuffer.js.map +0 -1
  1042. package/dist/node_modules/lodash/_cloneDataView.js.map +0 -1
  1043. package/dist/node_modules/lodash/_cloneRegExp.js.map +0 -1
  1044. package/dist/node_modules/lodash/_cloneSymbol.js.map +0 -1
  1045. package/dist/node_modules/lodash/_cloneTypedArray.js.map +0 -1
  1046. package/dist/node_modules/lodash/_compareAscending.js.map +0 -1
  1047. package/dist/node_modules/lodash/_compareMultiple.js.map +0 -1
  1048. package/dist/node_modules/lodash/_copyArray.js.map +0 -1
  1049. package/dist/node_modules/lodash/_copyObject.js.map +0 -1
  1050. package/dist/node_modules/lodash/_copySymbols.js.map +0 -1
  1051. package/dist/node_modules/lodash/_copySymbolsIn.js.map +0 -1
  1052. package/dist/node_modules/lodash/_coreJsData.js.map +0 -1
  1053. package/dist/node_modules/lodash/_createBaseEach.js.map +0 -1
  1054. package/dist/node_modules/lodash/_createBaseFor.js.map +0 -1
  1055. package/dist/node_modules/lodash/_createCaseFirst.js.map +0 -1
  1056. package/dist/node_modules/lodash/_createFind.js.map +0 -1
  1057. package/dist/node_modules/lodash/_createRange.js.map +0 -1
  1058. package/dist/node_modules/lodash/_createSet.js.map +0 -1
  1059. package/dist/node_modules/lodash/_customOmitClone.js.map +0 -1
  1060. package/dist/node_modules/lodash/_defineProperty.js.map +0 -1
  1061. package/dist/node_modules/lodash/_equalArrays.js.map +0 -1
  1062. package/dist/node_modules/lodash/_equalByTag.js.map +0 -1
  1063. package/dist/node_modules/lodash/_equalObjects.js.map +0 -1
  1064. package/dist/node_modules/lodash/_flatRest.js.map +0 -1
  1065. package/dist/node_modules/lodash/_freeGlobal.js.map +0 -1
  1066. package/dist/node_modules/lodash/_getAllKeys.js.map +0 -1
  1067. package/dist/node_modules/lodash/_getAllKeysIn.js.map +0 -1
  1068. package/dist/node_modules/lodash/_getMapData.js.map +0 -1
  1069. package/dist/node_modules/lodash/_getMatchData.js.map +0 -1
  1070. package/dist/node_modules/lodash/_getNative.js.map +0 -1
  1071. package/dist/node_modules/lodash/_getPrototype.js.map +0 -1
  1072. package/dist/node_modules/lodash/_getRawTag.js.map +0 -1
  1073. package/dist/node_modules/lodash/_getSymbols.js.map +0 -1
  1074. package/dist/node_modules/lodash/_getSymbolsIn.js.map +0 -1
  1075. package/dist/node_modules/lodash/_getTag.js.map +0 -1
  1076. package/dist/node_modules/lodash/_getValue.js.map +0 -1
  1077. package/dist/node_modules/lodash/_hasPath.js.map +0 -1
  1078. package/dist/node_modules/lodash/_hasUnicode.js.map +0 -1
  1079. package/dist/node_modules/lodash/_hashClear.js.map +0 -1
  1080. package/dist/node_modules/lodash/_hashDelete.js.map +0 -1
  1081. package/dist/node_modules/lodash/_hashGet.js.map +0 -1
  1082. package/dist/node_modules/lodash/_hashHas.js.map +0 -1
  1083. package/dist/node_modules/lodash/_hashSet.js.map +0 -1
  1084. package/dist/node_modules/lodash/_initCloneArray.js.map +0 -1
  1085. package/dist/node_modules/lodash/_initCloneByTag.js.map +0 -1
  1086. package/dist/node_modules/lodash/_initCloneObject.js.map +0 -1
  1087. package/dist/node_modules/lodash/_isFlattenable.js.map +0 -1
  1088. package/dist/node_modules/lodash/_isIndex.js.map +0 -1
  1089. package/dist/node_modules/lodash/_isIterateeCall.js.map +0 -1
  1090. package/dist/node_modules/lodash/_isKey.js.map +0 -1
  1091. package/dist/node_modules/lodash/_isKeyable.js.map +0 -1
  1092. package/dist/node_modules/lodash/_isMasked.js.map +0 -1
  1093. package/dist/node_modules/lodash/_isPrototype.js.map +0 -1
  1094. package/dist/node_modules/lodash/_isStrictComparable.js.map +0 -1
  1095. package/dist/node_modules/lodash/_listCacheClear.js.map +0 -1
  1096. package/dist/node_modules/lodash/_listCacheDelete.js.map +0 -1
  1097. package/dist/node_modules/lodash/_listCacheGet.js.map +0 -1
  1098. package/dist/node_modules/lodash/_listCacheHas.js.map +0 -1
  1099. package/dist/node_modules/lodash/_listCacheSet.js.map +0 -1
  1100. package/dist/node_modules/lodash/_mapCacheClear.js.map +0 -1
  1101. package/dist/node_modules/lodash/_mapCacheDelete.js.map +0 -1
  1102. package/dist/node_modules/lodash/_mapCacheGet.js.map +0 -1
  1103. package/dist/node_modules/lodash/_mapCacheHas.js.map +0 -1
  1104. package/dist/node_modules/lodash/_mapCacheSet.js.map +0 -1
  1105. package/dist/node_modules/lodash/_mapToArray.js.map +0 -1
  1106. package/dist/node_modules/lodash/_matchesStrictComparable.js.map +0 -1
  1107. package/dist/node_modules/lodash/_memoizeCapped.js.map +0 -1
  1108. package/dist/node_modules/lodash/_nativeCreate.js.map +0 -1
  1109. package/dist/node_modules/lodash/_nativeKeys.js.map +0 -1
  1110. package/dist/node_modules/lodash/_nativeKeysIn.js.map +0 -1
  1111. package/dist/node_modules/lodash/_nodeUtil.js.map +0 -1
  1112. package/dist/node_modules/lodash/_objectToString.js.map +0 -1
  1113. package/dist/node_modules/lodash/_overArg.js.map +0 -1
  1114. package/dist/node_modules/lodash/_overRest.js.map +0 -1
  1115. package/dist/node_modules/lodash/_parent.js.map +0 -1
  1116. package/dist/node_modules/lodash/_root.js.map +0 -1
  1117. package/dist/node_modules/lodash/_setCacheAdd.js.map +0 -1
  1118. package/dist/node_modules/lodash/_setCacheHas.js.map +0 -1
  1119. package/dist/node_modules/lodash/_setToArray.js.map +0 -1
  1120. package/dist/node_modules/lodash/_setToString.js.map +0 -1
  1121. package/dist/node_modules/lodash/_shortOut.js.map +0 -1
  1122. package/dist/node_modules/lodash/_stackClear.js.map +0 -1
  1123. package/dist/node_modules/lodash/_stackDelete.js.map +0 -1
  1124. package/dist/node_modules/lodash/_stackGet.js.map +0 -1
  1125. package/dist/node_modules/lodash/_stackHas.js.map +0 -1
  1126. package/dist/node_modules/lodash/_stackSet.js.map +0 -1
  1127. package/dist/node_modules/lodash/_strictIndexOf.js.map +0 -1
  1128. package/dist/node_modules/lodash/_stringToArray.js.map +0 -1
  1129. package/dist/node_modules/lodash/_stringToPath.js.map +0 -1
  1130. package/dist/node_modules/lodash/_toKey.js.map +0 -1
  1131. package/dist/node_modules/lodash/_toSource.js.map +0 -1
  1132. package/dist/node_modules/lodash/_trimmedEndIndex.js.map +0 -1
  1133. package/dist/node_modules/lodash/_unicodeToArray.js.map +0 -1
  1134. package/dist/node_modules/lodash/constant.js.map +0 -1
  1135. package/dist/node_modules/lodash/debounce.js.map +0 -1
  1136. package/dist/node_modules/lodash/eq.js.map +0 -1
  1137. package/dist/node_modules/lodash/every.js.map +0 -1
  1138. package/dist/node_modules/lodash/find.js.map +0 -1
  1139. package/dist/node_modules/lodash/findIndex.js.map +0 -1
  1140. package/dist/node_modules/lodash/flatMap.js.map +0 -1
  1141. package/dist/node_modules/lodash/flatten.js.map +0 -1
  1142. package/dist/node_modules/lodash/get.js.map +0 -1
  1143. package/dist/node_modules/lodash/hasIn.js.map +0 -1
  1144. package/dist/node_modules/lodash/identity.js.map +0 -1
  1145. package/dist/node_modules/lodash/isArguments.js.map +0 -1
  1146. package/dist/node_modules/lodash/isArray.js.map +0 -1
  1147. package/dist/node_modules/lodash/isArrayLike.js.map +0 -1
  1148. package/dist/node_modules/lodash/isBoolean.js.map +0 -1
  1149. package/dist/node_modules/lodash/isBuffer.js.map +0 -1
  1150. package/dist/node_modules/lodash/isEqual.js.map +0 -1
  1151. package/dist/node_modules/lodash/isFunction.js.map +0 -1
  1152. package/dist/node_modules/lodash/isLength.js.map +0 -1
  1153. package/dist/node_modules/lodash/isMap.js.map +0 -1
  1154. package/dist/node_modules/lodash/isNaN.js.map +0 -1
  1155. package/dist/node_modules/lodash/isNil.js.map +0 -1
  1156. package/dist/node_modules/lodash/isNumber.js.map +0 -1
  1157. package/dist/node_modules/lodash/isObject.js.map +0 -1
  1158. package/dist/node_modules/lodash/isObjectLike.js.map +0 -1
  1159. package/dist/node_modules/lodash/isPlainObject.js.map +0 -1
  1160. package/dist/node_modules/lodash/isSet.js.map +0 -1
  1161. package/dist/node_modules/lodash/isString.js.map +0 -1
  1162. package/dist/node_modules/lodash/isSymbol.js.map +0 -1
  1163. package/dist/node_modules/lodash/isTypedArray.js.map +0 -1
  1164. package/dist/node_modules/lodash/keys.js.map +0 -1
  1165. package/dist/node_modules/lodash/keysIn.js.map +0 -1
  1166. package/dist/node_modules/lodash/last.js.map +0 -1
  1167. package/dist/node_modules/lodash/map.js.map +0 -1
  1168. package/dist/node_modules/lodash/mapValues.js.map +0 -1
  1169. package/dist/node_modules/lodash/max.js.map +0 -1
  1170. package/dist/node_modules/lodash/maxBy.js.map +0 -1
  1171. package/dist/node_modules/lodash/memoize.js.map +0 -1
  1172. package/dist/node_modules/lodash/min.js.map +0 -1
  1173. package/dist/node_modules/lodash/noop.js.map +0 -1
  1174. package/dist/node_modules/lodash/now.js.map +0 -1
  1175. package/dist/node_modules/lodash/omit.js.map +0 -1
  1176. package/dist/node_modules/lodash/property.js.map +0 -1
  1177. package/dist/node_modules/lodash/range.js.map +0 -1
  1178. package/dist/node_modules/lodash/some.js.map +0 -1
  1179. package/dist/node_modules/lodash/sortBy.js.map +0 -1
  1180. package/dist/node_modules/lodash/stubArray.js.map +0 -1
  1181. package/dist/node_modules/lodash/stubFalse.js.map +0 -1
  1182. package/dist/node_modules/lodash/sumBy.js.map +0 -1
  1183. package/dist/node_modules/lodash/throttle.js.map +0 -1
  1184. package/dist/node_modules/lodash/toFinite.js.map +0 -1
  1185. package/dist/node_modules/lodash/toInteger.js.map +0 -1
  1186. package/dist/node_modules/lodash/toNumber.js.map +0 -1
  1187. package/dist/node_modules/lodash/toString.js.map +0 -1
  1188. package/dist/node_modules/lodash/uniqBy.js.map +0 -1
  1189. package/dist/node_modules/lodash/upperFirst.js.map +0 -1
  1190. package/dist/node_modules/object-assign/index.js.map +0 -1
  1191. package/dist/node_modules/pptxgenjs/dist/pptxgen.es.js.map +0 -1
  1192. package/dist/node_modules/prop-types/checkPropTypes.js.map +0 -1
  1193. package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +0 -1
  1194. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +0 -1
  1195. package/dist/node_modules/prop-types/index.js.map +0 -1
  1196. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +0 -1
  1197. package/dist/node_modules/prop-types/lib/has.js.map +0 -1
  1198. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +0 -1
  1199. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +0 -1
  1200. package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +0 -1
  1201. package/dist/node_modules/react-is/cjs/react-is.development.js.map +0 -1
  1202. package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +0 -1
  1203. package/dist/node_modules/react-is/index.js.map +0 -1
  1204. package/dist/node_modules/react-smooth/es6/Animate.js.map +0 -1
  1205. package/dist/node_modules/react-smooth/es6/AnimateManager.js.map +0 -1
  1206. package/dist/node_modules/react-smooth/es6/configUpdate.js.map +0 -1
  1207. package/dist/node_modules/react-smooth/es6/easing.js.map +0 -1
  1208. package/dist/node_modules/react-smooth/es6/index.js.map +0 -1
  1209. package/dist/node_modules/react-smooth/es6/setRafTimeout.js.map +0 -1
  1210. package/dist/node_modules/react-smooth/es6/util.js.map +0 -1
  1211. package/dist/node_modules/recharts/es6/cartesian/Area.js.map +0 -1
  1212. package/dist/node_modules/recharts/es6/cartesian/Bar.js.map +0 -1
  1213. package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +0 -1
  1214. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js.map +0 -1
  1215. package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js.map +0 -1
  1216. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +0 -1
  1217. package/dist/node_modules/recharts/es6/cartesian/Line.js.map +0 -1
  1218. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +0 -1
  1219. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +0 -1
  1220. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +0 -1
  1221. package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +0 -1
  1222. package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +0 -1
  1223. package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js.map +0 -1
  1224. package/dist/node_modules/recharts/es6/cartesian/getTicks.js.map +0 -1
  1225. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js.map +0 -1
  1226. package/dist/node_modules/recharts/es6/chart/AreaChart.js.map +0 -1
  1227. package/dist/node_modules/recharts/es6/chart/BarChart.js.map +0 -1
  1228. package/dist/node_modules/recharts/es6/chart/LineChart.js.map +0 -1
  1229. package/dist/node_modules/recharts/es6/chart/Sankey.js.map +0 -1
  1230. package/dist/node_modules/recharts/es6/chart/Treemap.js.map +0 -1
  1231. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js.map +0 -1
  1232. package/dist/node_modules/recharts/es6/component/Cell.js.map +0 -1
  1233. package/dist/node_modules/recharts/es6/component/Cursor.js.map +0 -1
  1234. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js.map +0 -1
  1235. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js.map +0 -1
  1236. package/dist/node_modules/recharts/es6/component/Label.js.map +0 -1
  1237. package/dist/node_modules/recharts/es6/component/LabelList.js.map +0 -1
  1238. package/dist/node_modules/recharts/es6/component/Legend.js.map +0 -1
  1239. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +0 -1
  1240. package/dist/node_modules/recharts/es6/component/Text.js.map +0 -1
  1241. package/dist/node_modules/recharts/es6/component/Tooltip.js.map +0 -1
  1242. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js.map +0 -1
  1243. package/dist/node_modules/recharts/es6/container/Layer.js.map +0 -1
  1244. package/dist/node_modules/recharts/es6/container/Surface.js.map +0 -1
  1245. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js.map +0 -1
  1246. package/dist/node_modules/recharts/es6/shape/Cross.js.map +0 -1
  1247. package/dist/node_modules/recharts/es6/shape/Curve.js.map +0 -1
  1248. package/dist/node_modules/recharts/es6/shape/Dot.js.map +0 -1
  1249. package/dist/node_modules/recharts/es6/shape/Polygon.js.map +0 -1
  1250. package/dist/node_modules/recharts/es6/shape/Rectangle.js.map +0 -1
  1251. package/dist/node_modules/recharts/es6/shape/Sector.js.map +0 -1
  1252. package/dist/node_modules/recharts/es6/shape/Symbols.js.map +0 -1
  1253. package/dist/node_modules/recharts/es6/shape/Trapezoid.js.map +0 -1
  1254. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js.map +0 -1
  1255. package/dist/node_modules/recharts/es6/util/BarUtils.js.map +0 -1
  1256. package/dist/node_modules/recharts/es6/util/CartesianUtils.js.map +0 -1
  1257. package/dist/node_modules/recharts/es6/util/ChartUtils.js.map +0 -1
  1258. package/dist/node_modules/recharts/es6/util/Constants.js.map +0 -1
  1259. package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js.map +0 -1
  1260. package/dist/node_modules/recharts/es6/util/DOMUtils.js.map +0 -1
  1261. package/dist/node_modules/recharts/es6/util/DataUtils.js.map +0 -1
  1262. package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js.map +0 -1
  1263. package/dist/node_modules/recharts/es6/util/Events.js.map +0 -1
  1264. package/dist/node_modules/recharts/es6/util/Global.js.map +0 -1
  1265. package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js.map +0 -1
  1266. package/dist/node_modules/recharts/es6/util/LogUtils.js.map +0 -1
  1267. package/dist/node_modules/recharts/es6/util/PolarUtils.js.map +0 -1
  1268. package/dist/node_modules/recharts/es6/util/ReactUtils.js.map +0 -1
  1269. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js.map +0 -1
  1270. package/dist/node_modules/recharts/es6/util/ShallowEqual.js.map +0 -1
  1271. package/dist/node_modules/recharts/es6/util/TickUtils.js.map +0 -1
  1272. package/dist/node_modules/recharts/es6/util/calculateViewBox.js.map +0 -1
  1273. package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js.map +0 -1
  1274. package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js.map +0 -1
  1275. package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js.map +0 -1
  1276. package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js.map +0 -1
  1277. package/dist/node_modules/recharts/es6/util/getLegendProps.js.map +0 -1
  1278. package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js.map +0 -1
  1279. package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js.map +0 -1
  1280. package/dist/node_modules/recharts/es6/util/tooltip/translate.js.map +0 -1
  1281. package/dist/node_modules/recharts/es6/util/types.js.map +0 -1
  1282. package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js.map +0 -1
  1283. package/dist/node_modules/recharts-scale/es6/util/arithmetic.js.map +0 -1
  1284. package/dist/node_modules/recharts-scale/es6/util/utils.js.map +0 -1
  1285. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
  1286. package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +0 -1
  1287. package/dist/node_modules/victory-vendor/es/d3-scale.js.map +0 -1
  1288. package/dist/node_modules/write-excel-file/modules/export/convertFileContentToUint8ArrayBrowser.js.map +0 -1
  1289. package/dist/node_modules/write-excel-file/modules/export/convertFilesContentToUint8Arrays.js.map +0 -1
  1290. package/dist/node_modules/write-excel-file/modules/export/downloadBlob.js.map +0 -1
  1291. package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileBrowser.js.map +0 -1
  1292. package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileUniversal.js.map +0 -1
  1293. package/dist/node_modules/write-excel-file/modules/getSheetData/getSheetData.js.map +0 -1
  1294. package/dist/node_modules/write-excel-file/modules/xlsx/features/conditionalFormatting.js.map +0 -1
  1295. package/dist/node_modules/write-excel-file/modules/xlsx/features/images.js.map +0 -1
  1296. package/dist/node_modules/write-excel-file/modules/xlsx/features/stickyRowsOrColumns.js.map +0 -1
  1297. package/dist/node_modules/write-excel-file/modules/xlsx/files/_Content_Types_.xml.js.map +0 -1
  1298. package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.js.map +0 -1
  1299. package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.rels.js.map +0 -1
  1300. package/dist/node_modules/write-excel-file/modules/xlsx/files/rels.js.map +0 -1
  1301. package/dist/node_modules/write-excel-file/modules/xlsx/files/sharedStrings.xml.js.map +0 -1
  1302. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/cell.js.map +0 -1
  1303. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/column.js.map +0 -1
  1304. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/columns.js.map +0 -1
  1305. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/drawingReference.js.map +0 -1
  1306. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/helpers/getCellStyleProperties.js.map +0 -1
  1307. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/mergedCellsDescription.js.map +0 -1
  1308. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageMargins.js.map +0 -1
  1309. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageSetup.js.map +0 -1
  1310. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/processMergedCells.js.map +0 -1
  1311. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/row.js.map +0 -1
  1312. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheet.xml.js.map +0 -1
  1313. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetData.js.map +0 -1
  1314. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetViews.js.map +0 -1
  1315. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml.rels.js.map +0 -1
  1316. package/dist/node_modules/write-excel-file/modules/xlsx/files/styles.xml.js.map +0 -1
  1317. package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.js.map +0 -1
  1318. package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.rels.js.map +0 -1
  1319. package/dist/node_modules/write-excel-file/modules/xlsx/generateXlsxFileContents.js.map +0 -1
  1320. package/dist/node_modules/write-excel-file/modules/xlsx/getFeatures.js.map +0 -1
  1321. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/convertDateToSerialNumber.js.map +0 -1
  1322. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getAdditionalContent.js.map +0 -1
  1323. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getElementXml.js.map +0 -1
  1324. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getWrittenFiles.js.map +0 -1
  1325. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/transformContent.js.map +0 -1
  1326. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getAlignmentXml.js.map +0 -1
  1327. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getBorderXml.js.map +0 -1
  1328. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getCellAddress.js.map +0 -1
  1329. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFileExtensionForContentType.js.map +0 -1
  1330. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFillXml.js.map +0 -1
  1331. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFontXml.js.map +0 -1
  1332. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getOrderOfSiblings.js.map +0 -1
  1333. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getXlsxColorForHexColor.js.map +0 -1
  1334. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasAlignment.js.map +0 -1
  1335. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasBorder.js.map +0 -1
  1336. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFill.js.map +0 -1
  1337. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFont.js.map +0 -1
  1338. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isCellObject.js.map +0 -1
  1339. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isObject.js.map +0 -1
  1340. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/orderOfSiblings.js.map +0 -1
  1341. package/dist/node_modules/write-excel-file/modules/xlsx/initializeSharedStrings.js.map +0 -1
  1342. package/dist/node_modules/write-excel-file/modules/xlsx/initializeSheets.js.map +0 -1
  1343. package/dist/node_modules/write-excel-file/modules/xlsx/initializeStyles.js.map +0 -1
  1344. package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetData.js.map +0 -1
  1345. package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetName.js.map +0 -1
  1346. package/dist/node_modules/write-excel-file/modules/xml/appendMarkupInsideElement.js.map +0 -1
  1347. package/dist/node_modules/write-excel-file/modules/xml/applyEnclosingElementOffset.js.map +0 -1
  1348. package/dist/node_modules/write-excel-file/modules/xml/escapeXmlSpecialCharacters.js.map +0 -1
  1349. package/dist/node_modules/write-excel-file/modules/xml/findElement.js.map +0 -1
  1350. package/dist/node_modules/write-excel-file/modules/xml/findElementInsideElement.js.map +0 -1
  1351. package/dist/node_modules/write-excel-file/modules/xml/findElementsNonRecursive_.js.map +0 -1
  1352. package/dist/node_modules/write-excel-file/modules/xml/getAttributesString.js.map +0 -1
  1353. package/dist/node_modules/write-excel-file/modules/xml/getChildElements.js.map +0 -1
  1354. package/dist/node_modules/write-excel-file/modules/xml/getClosingTagMarkup.js.map +0 -1
  1355. package/dist/node_modules/write-excel-file/modules/xml/getMarkupInsideElement.js.map +0 -1
  1356. package/dist/node_modules/write-excel-file/modules/xml/getOpeningTagMarkup.js.map +0 -1
  1357. package/dist/node_modules/write-excel-file/modules/xml/getSelfClosingTagMarkup.js.map +0 -1
  1358. package/dist/node_modules/write-excel-file/modules/xml/insertElementMarkupAccordingToOrderOfSiblings.js.map +0 -1
  1359. package/dist/node_modules/write-excel-file/modules/xml/prependMarkupInsideElement.js.map +0 -1
  1360. package/dist/node_modules/write-excel-file/modules/xml/removeInvalidXmlCharacters.js.map +0 -1
  1361. package/dist/node_modules/write-excel-file/modules/xml/replaceElement.js.map +0 -1
  1362. package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeName.js.map +0 -1
  1363. package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeValue.js.map +0 -1
  1364. package/dist/node_modules/write-excel-file/modules/xml/sanitizeTextContent.js.map +0 -1
  1365. package/dist/node_modules/write-excel-file/modules/xml/setMarkupInsideElement.js.map +0 -1
  1366. package/dist/node_modules/write-excel-file/modules/zip/zipToArrayBuffer.js.map +0 -1
  1367. package/dist/planmagnet/PlanMagnetRoot.d.ts.map +0 -1
  1368. package/dist/planmagnet/PlanMagnetRoot.js.map +0 -1
  1369. package/dist/planmagnet/PlanMagnetRoutes.d.ts.map +0 -1
  1370. package/dist/planmagnet/PlanMagnetRoutes.js.map +0 -1
  1371. package/dist/planmagnet/activity/activityDescribe.d.ts.map +0 -1
  1372. package/dist/planmagnet/activity/activityDescribe.js.map +0 -1
  1373. package/dist/planmagnet/activity/relativeTime.d.ts.map +0 -1
  1374. package/dist/planmagnet/activity/relativeTime.js.map +0 -1
  1375. package/dist/planmagnet/admin/PlanMagnetAdminRoot.d.ts.map +0 -1
  1376. package/dist/planmagnet/admin/PlanMagnetAdminRoot.js.map +0 -1
  1377. package/dist/planmagnet/automation/AutomationExecutionsPanel.d.ts.map +0 -1
  1378. package/dist/planmagnet/automation/AutomationExecutionsPanel.js.map +0 -1
  1379. package/dist/planmagnet/automation/AutomationRuleFields.d.ts.map +0 -1
  1380. package/dist/planmagnet/automation/AutomationRuleFields.js.map +0 -1
  1381. package/dist/planmagnet/automation/automationRuleTypes.d.ts.map +0 -1
  1382. package/dist/planmagnet/automation/automationRuleTypes.js.map +0 -1
  1383. package/dist/planmagnet/board/BoardViewBar.d.ts.map +0 -1
  1384. package/dist/planmagnet/board/BoardViewBar.js.map +0 -1
  1385. package/dist/planmagnet/board/BulkActions.d.ts.map +0 -1
  1386. package/dist/planmagnet/board/BulkActions.js.map +0 -1
  1387. package/dist/planmagnet/board/ProjectBoard.d.ts.map +0 -1
  1388. package/dist/planmagnet/board/ProjectBoard.js.map +0 -1
  1389. package/dist/planmagnet/board/boardViewConfig.d.ts.map +0 -1
  1390. package/dist/planmagnet/board/boardViewConfig.js.map +0 -1
  1391. package/dist/planmagnet/budgets/BudgetControls.d.ts.map +0 -1
  1392. package/dist/planmagnet/budgets/BudgetControls.js.map +0 -1
  1393. package/dist/planmagnet/budgets/ExpenseControls.d.ts.map +0 -1
  1394. package/dist/planmagnet/budgets/ExpenseControls.js.map +0 -1
  1395. package/dist/planmagnet/budgets/ProjectBudgetsSummary.d.ts.map +0 -1
  1396. package/dist/planmagnet/budgets/ProjectBudgetsSummary.js.map +0 -1
  1397. package/dist/planmagnet/budgets/budgetMath.d.ts.map +0 -1
  1398. package/dist/planmagnet/budgets/budgetMath.js.map +0 -1
  1399. package/dist/planmagnet/comments/CommentAttachmentUpload.d.ts.map +0 -1
  1400. package/dist/planmagnet/comments/CommentAttachmentUpload.js.map +0 -1
  1401. package/dist/planmagnet/comments/CommentAttachments.d.ts.map +0 -1
  1402. package/dist/planmagnet/comments/CommentAttachments.js.map +0 -1
  1403. package/dist/planmagnet/comments/CommentBody.d.ts.map +0 -1
  1404. package/dist/planmagnet/comments/CommentBody.js.map +0 -1
  1405. package/dist/planmagnet/comments/CommentThread.d.ts.map +0 -1
  1406. package/dist/planmagnet/comments/CommentThread.js.map +0 -1
  1407. package/dist/planmagnet/comments/MentionComposer.d.ts.map +0 -1
  1408. package/dist/planmagnet/comments/MentionComposer.js.map +0 -1
  1409. package/dist/planmagnet/comments/RoadmapComments.d.ts.map +0 -1
  1410. package/dist/planmagnet/comments/RoadmapComments.js.map +0 -1
  1411. package/dist/planmagnet/comments/TargetComments.d.ts.map +0 -1
  1412. package/dist/planmagnet/comments/TargetComments.js.map +0 -1
  1413. package/dist/planmagnet/comments/WorkItemActivity.d.ts.map +0 -1
  1414. package/dist/planmagnet/comments/WorkItemActivity.js.map +0 -1
  1415. package/dist/planmagnet/comments/WorkItemComments.d.ts.map +0 -1
  1416. package/dist/planmagnet/comments/WorkItemComments.js.map +0 -1
  1417. package/dist/planmagnet/comments/commentAttachmentUploadClient.d.ts.map +0 -1
  1418. package/dist/planmagnet/comments/commentAttachmentUploadClient.js.map +0 -1
  1419. package/dist/planmagnet/comments/commentImageTokens.d.ts.map +0 -1
  1420. package/dist/planmagnet/comments/commentImageTokens.js.map +0 -1
  1421. package/dist/planmagnet/comments/commentTokens.d.ts.map +0 -1
  1422. package/dist/planmagnet/comments/commentTokens.js.map +0 -1
  1423. package/dist/planmagnet/comments/fileDisplay.d.ts.map +0 -1
  1424. package/dist/planmagnet/comments/fileDisplay.js.map +0 -1
  1425. package/dist/planmagnet/comments/useCommentFileUrl.d.ts.map +0 -1
  1426. package/dist/planmagnet/comments/useCommentFileUrl.js.map +0 -1
  1427. package/dist/planmagnet/controls/AutomationRuleControls.d.ts.map +0 -1
  1428. package/dist/planmagnet/controls/AutomationRuleControls.js.map +0 -1
  1429. package/dist/planmagnet/controls/CompetitorControls.d.ts.map +0 -1
  1430. package/dist/planmagnet/controls/CompetitorControls.js.map +0 -1
  1431. package/dist/planmagnet/controls/ConfirmButton.d.ts.map +0 -1
  1432. package/dist/planmagnet/controls/ConfirmButton.js.map +0 -1
  1433. package/dist/planmagnet/controls/CustomFieldControls.d.ts.map +0 -1
  1434. package/dist/planmagnet/controls/CustomFieldControls.js.map +0 -1
  1435. package/dist/planmagnet/controls/CustomFieldValuesPanel.d.ts.map +0 -1
  1436. package/dist/planmagnet/controls/CustomFieldValuesPanel.js.map +0 -1
  1437. package/dist/planmagnet/controls/FeatureControls.d.ts.map +0 -1
  1438. package/dist/planmagnet/controls/FeatureControls.js.map +0 -1
  1439. package/dist/planmagnet/controls/FeatureTriage.d.ts.map +0 -1
  1440. package/dist/planmagnet/controls/FeatureTriage.js.map +0 -1
  1441. package/dist/planmagnet/controls/FeedbackControls.d.ts.map +0 -1
  1442. package/dist/planmagnet/controls/FeedbackControls.js.map +0 -1
  1443. package/dist/planmagnet/controls/LiveStatus.d.ts.map +0 -1
  1444. package/dist/planmagnet/controls/LiveStatus.js.map +0 -1
  1445. package/dist/planmagnet/controls/MilestoneControls.d.ts.map +0 -1
  1446. package/dist/planmagnet/controls/MilestoneControls.js.map +0 -1
  1447. package/dist/planmagnet/controls/ObjectiveControls.d.ts.map +0 -1
  1448. package/dist/planmagnet/controls/ObjectiveControls.js.map +0 -1
  1449. package/dist/planmagnet/controls/Pickers.d.ts.map +0 -1
  1450. package/dist/planmagnet/controls/Pickers.js.map +0 -1
  1451. package/dist/planmagnet/controls/PortfolioControls.d.ts.map +0 -1
  1452. package/dist/planmagnet/controls/PortfolioControls.js.map +0 -1
  1453. package/dist/planmagnet/controls/PrioritizationControls.d.ts.map +0 -1
  1454. package/dist/planmagnet/controls/PrioritizationControls.js.map +0 -1
  1455. package/dist/planmagnet/controls/ProgramControls.d.ts.map +0 -1
  1456. package/dist/planmagnet/controls/ProgramControls.js.map +0 -1
  1457. package/dist/planmagnet/controls/ProjectControls.d.ts.map +0 -1
  1458. package/dist/planmagnet/controls/ProjectControls.js.map +0 -1
  1459. package/dist/planmagnet/controls/QualityGateControls.d.ts.map +0 -1
  1460. package/dist/planmagnet/controls/QualityGateControls.js.map +0 -1
  1461. package/dist/planmagnet/controls/ReleaseControls.d.ts.map +0 -1
  1462. package/dist/planmagnet/controls/ReleaseControls.js.map +0 -1
  1463. package/dist/planmagnet/controls/RiskControls.d.ts.map +0 -1
  1464. package/dist/planmagnet/controls/RiskControls.js.map +0 -1
  1465. package/dist/planmagnet/controls/SyncControls.d.ts.map +0 -1
  1466. package/dist/planmagnet/controls/SyncControls.js.map +0 -1
  1467. package/dist/planmagnet/controls/TemplateControls.d.ts.map +0 -1
  1468. package/dist/planmagnet/controls/TemplateControls.js.map +0 -1
  1469. package/dist/planmagnet/controls/WebhookSubscriptionControls.d.ts.map +0 -1
  1470. package/dist/planmagnet/controls/WebhookSubscriptionControls.js.map +0 -1
  1471. package/dist/planmagnet/controls/WorkItemControls.d.ts.map +0 -1
  1472. package/dist/planmagnet/controls/WorkItemControls.js.map +0 -1
  1473. package/dist/planmagnet/create/CreateDialogs.d.ts.map +0 -1
  1474. package/dist/planmagnet/create/CreateDialogs.js.map +0 -1
  1475. package/dist/planmagnet/dashboards/DashboardUI.d.ts.map +0 -1
  1476. package/dist/planmagnet/dashboards/DashboardUI.js.map +0 -1
  1477. package/dist/planmagnet/dashboards/cards/DeliveryTimelineCard.d.ts.map +0 -1
  1478. package/dist/planmagnet/dashboards/cards/DeliveryTimelineCard.js.map +0 -1
  1479. package/dist/planmagnet/dashboards/cards/ObjectivesProgressCard.d.ts.map +0 -1
  1480. package/dist/planmagnet/dashboards/cards/ObjectivesProgressCard.js.map +0 -1
  1481. package/dist/planmagnet/dashboards/cards/PortfolioHealthCard.d.ts.map +0 -1
  1482. package/dist/planmagnet/dashboards/cards/PortfolioHealthCard.js.map +0 -1
  1483. package/dist/planmagnet/dashboards/cards/QualityMetricsCard.d.ts.map +0 -1
  1484. package/dist/planmagnet/dashboards/cards/QualityMetricsCard.js.map +0 -1
  1485. package/dist/planmagnet/dashboards/cards/RiskSeverityCard.d.ts.map +0 -1
  1486. package/dist/planmagnet/dashboards/cards/RiskSeverityCard.js.map +0 -1
  1487. package/dist/planmagnet/dashboards/cards/RoadmapHorizonCard.d.ts.map +0 -1
  1488. package/dist/planmagnet/dashboards/cards/RoadmapHorizonCard.js.map +0 -1
  1489. package/dist/planmagnet/dashboards/cards/SprintCapacityCard.d.ts.map +0 -1
  1490. package/dist/planmagnet/dashboards/cards/SprintCapacityCard.js.map +0 -1
  1491. package/dist/planmagnet/dashboards/cards/TaskCompletionCard.d.ts.map +0 -1
  1492. package/dist/planmagnet/dashboards/cards/TaskCompletionCard.js.map +0 -1
  1493. package/dist/planmagnet/dashboards/cards/TeamCapacityCard.d.ts.map +0 -1
  1494. package/dist/planmagnet/dashboards/cards/TeamCapacityCard.js.map +0 -1
  1495. package/dist/planmagnet/dashboards/cards/TeamOverviewCard.d.ts.map +0 -1
  1496. package/dist/planmagnet/dashboards/cards/TeamOverviewCard.js.map +0 -1
  1497. package/dist/planmagnet/dashboards/cards/TeamWorkloadCard.d.ts.map +0 -1
  1498. package/dist/planmagnet/dashboards/cards/TeamWorkloadCard.js.map +0 -1
  1499. package/dist/planmagnet/dashboards/cards/TimeLoggedCard.d.ts.map +0 -1
  1500. package/dist/planmagnet/dashboards/cards/TimeLoggedCard.js.map +0 -1
  1501. package/dist/planmagnet/dependency/DependencyGraph.d.ts.map +0 -1
  1502. package/dist/planmagnet/dependency/DependencyGraph.js.map +0 -1
  1503. package/dist/planmagnet/dependency/DependencyPanel.d.ts.map +0 -1
  1504. package/dist/planmagnet/dependency/DependencyPanel.js.map +0 -1
  1505. package/dist/planmagnet/dependency/GanttChart.d.ts.map +0 -1
  1506. package/dist/planmagnet/dependency/GanttChart.js.map +0 -1
  1507. package/dist/planmagnet/dependency/useProjectWorkItemsGraph.d.ts.map +0 -1
  1508. package/dist/planmagnet/dependency/useProjectWorkItemsGraph.js.map +0 -1
  1509. package/dist/planmagnet/discussion/WorkItemDiscussionPanel.d.ts.map +0 -1
  1510. package/dist/planmagnet/discussion/WorkItemDiscussionPanel.js.map +0 -1
  1511. package/dist/planmagnet/docs/DocDiffView.d.ts.map +0 -1
  1512. package/dist/planmagnet/docs/DocDiffView.js.map +0 -1
  1513. package/dist/planmagnet/docs/DocStatusBadge.d.ts.map +0 -1
  1514. package/dist/planmagnet/docs/DocStatusBadge.js.map +0 -1
  1515. package/dist/planmagnet/docs/DocSuggestionsPanel.d.ts.map +0 -1
  1516. package/dist/planmagnet/docs/DocSuggestionsPanel.js.map +0 -1
  1517. package/dist/planmagnet/docs/DocVersionCompare.d.ts.map +0 -1
  1518. package/dist/planmagnet/docs/DocVersionCompare.js.map +0 -1
  1519. package/dist/planmagnet/export/ExportWorkItemsButton.d.ts.map +0 -1
  1520. package/dist/planmagnet/export/ExportWorkItemsButton.js.map +0 -1
  1521. package/dist/planmagnet/export/workItemsCsv.d.ts.map +0 -1
  1522. package/dist/planmagnet/export/workItemsCsv.js.map +0 -1
  1523. package/dist/planmagnet/forecast/DeliveryForecastCard.d.ts.map +0 -1
  1524. package/dist/planmagnet/forecast/DeliveryForecastCard.js.map +0 -1
  1525. package/dist/planmagnet/forecast/ProjectOutlookCard.d.ts.map +0 -1
  1526. package/dist/planmagnet/forecast/ProjectOutlookCard.js.map +0 -1
  1527. package/dist/planmagnet/forecast/ProjectRiskSummaryCard.d.ts.map +0 -1
  1528. package/dist/planmagnet/forecast/ProjectRiskSummaryCard.js.map +0 -1
  1529. package/dist/planmagnet/forecast/ResourceForecastCard.d.ts.map +0 -1
  1530. package/dist/planmagnet/forecast/ResourceForecastCard.js.map +0 -1
  1531. package/dist/planmagnet/forecast/riskFlags.d.ts.map +0 -1
  1532. package/dist/planmagnet/forecast/riskFlags.js.map +0 -1
  1533. package/dist/planmagnet/hooks/useCounts.d.ts.map +0 -1
  1534. package/dist/planmagnet/hooks/useCounts.js.map +0 -1
  1535. package/dist/planmagnet/hooks/useEntityId.d.ts.map +0 -1
  1536. package/dist/planmagnet/hooks/useEntityId.js.map +0 -1
  1537. package/dist/planmagnet/hooks/useLiveRefresh.d.ts.map +0 -1
  1538. package/dist/planmagnet/hooks/useLiveRefresh.js.map +0 -1
  1539. package/dist/planmagnet/hooks/usePresence.d.ts.map +0 -1
  1540. package/dist/planmagnet/hooks/usePresence.js.map +0 -1
  1541. package/dist/planmagnet/hooks/useProjectWorkflow.d.ts.map +0 -1
  1542. package/dist/planmagnet/hooks/useProjectWorkflow.js.map +0 -1
  1543. package/dist/planmagnet/import/exportColumns.d.ts.map +0 -1
  1544. package/dist/planmagnet/import/exportColumns.js.map +0 -1
  1545. package/dist/planmagnet/index.d.ts.map +0 -1
  1546. package/dist/planmagnet/integrations/routes.d.ts.map +0 -1
  1547. package/dist/planmagnet/integrations/routes.js.map +0 -1
  1548. package/dist/planmagnet/integrations/syncTypes.d.ts.map +0 -1
  1549. package/dist/planmagnet/integrations/syncTypes.js.map +0 -1
  1550. package/dist/planmagnet/integrations/useSyncProviderCapabilities.d.ts.map +0 -1
  1551. package/dist/planmagnet/integrations/useSyncProviderCapabilities.js.map +0 -1
  1552. package/dist/planmagnet/links/CodeLinksPanel.d.ts.map +0 -1
  1553. package/dist/planmagnet/links/CodeLinksPanel.js.map +0 -1
  1554. package/dist/planmagnet/links/IssueLinksPanel.d.ts.map +0 -1
  1555. package/dist/planmagnet/links/IssueLinksPanel.js.map +0 -1
  1556. package/dist/planmagnet/meetings/MeetingActionItemsPanel.d.ts.map +0 -1
  1557. package/dist/planmagnet/meetings/MeetingActionItemsPanel.js.map +0 -1
  1558. package/dist/planmagnet/meetings/MeetingsCard.d.ts.map +0 -1
  1559. package/dist/planmagnet/meetings/MeetingsCard.js.map +0 -1
  1560. package/dist/planmagnet/meetings/ScheduleCeremoniesDialog.d.ts.map +0 -1
  1561. package/dist/planmagnet/meetings/ScheduleCeremoniesDialog.js.map +0 -1
  1562. package/dist/planmagnet/meetings/ScheduleMeetingDialog.d.ts.map +0 -1
  1563. package/dist/planmagnet/meetings/ScheduleMeetingDialog.js.map +0 -1
  1564. package/dist/planmagnet/meetings/UnlinkMeetingDialog.d.ts.map +0 -1
  1565. package/dist/planmagnet/meetings/UnlinkMeetingDialog.js.map +0 -1
  1566. package/dist/planmagnet/meetings/meetingActions.d.ts.map +0 -1
  1567. package/dist/planmagnet/meetings/meetingActions.js.map +0 -1
  1568. package/dist/planmagnet/meetings/meetingGraphql.d.ts.map +0 -1
  1569. package/dist/planmagnet/meetings/meetingGraphql.js.map +0 -1
  1570. package/dist/planmagnet/meetings/meetingModel.d.ts.map +0 -1
  1571. package/dist/planmagnet/meetings/meetingModel.js.map +0 -1
  1572. package/dist/planmagnet/milestones/MilestoneControls.d.ts.map +0 -1
  1573. package/dist/planmagnet/milestones/MilestoneControls.js.map +0 -1
  1574. package/dist/planmagnet/pages/ActivityActivityPagePage.d.ts.map +0 -1
  1575. package/dist/planmagnet/pages/ActivityActivityPagePage.js.map +0 -1
  1576. package/dist/planmagnet/pages/AiActivityPagePage.d.ts.map +0 -1
  1577. package/dist/planmagnet/pages/AiActivityPagePage.js.map +0 -1
  1578. package/dist/planmagnet/pages/AiPlanPagePage.d.ts.map +0 -1
  1579. package/dist/planmagnet/pages/AiPlanPagePage.js.map +0 -1
  1580. package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.d.ts.map +0 -1
  1581. package/dist/planmagnet/pages/AnalyticsAnalyticsPagePage.js.map +0 -1
  1582. package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.d.ts.map +0 -1
  1583. package/dist/planmagnet/pages/AutomationAutomationRuleDetailPagePage.js.map +0 -1
  1584. package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.d.ts.map +0 -1
  1585. package/dist/planmagnet/pages/AutomationAutomationRulesPagePage.js.map +0 -1
  1586. package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.d.ts.map +0 -1
  1587. package/dist/planmagnet/pages/AutomationCreateAutomationRulePagePage.js.map +0 -1
  1588. package/dist/planmagnet/pages/CompetitorsCompetitorDetailPagePage.d.ts.map +0 -1
  1589. package/dist/planmagnet/pages/CompetitorsCompetitorDetailPagePage.js.map +0 -1
  1590. package/dist/planmagnet/pages/CompetitorsCompetitorsPagePage.d.ts.map +0 -1
  1591. package/dist/planmagnet/pages/CompetitorsCompetitorsPagePage.js.map +0 -1
  1592. package/dist/planmagnet/pages/CompetitorsCreateCompetitorPagePage.d.ts.map +0 -1
  1593. package/dist/planmagnet/pages/CompetitorsCreateCompetitorPagePage.js.map +0 -1
  1594. package/dist/planmagnet/pages/CompetitorsEditCompetitorPagePage.d.ts.map +0 -1
  1595. package/dist/planmagnet/pages/CompetitorsEditCompetitorPagePage.js.map +0 -1
  1596. package/dist/planmagnet/pages/DashboardDashboardPagePage.d.ts.map +0 -1
  1597. package/dist/planmagnet/pages/DashboardDashboardPagePage.js.map +0 -1
  1598. package/dist/planmagnet/pages/DashboardsExecutivePagePage.d.ts.map +0 -1
  1599. package/dist/planmagnet/pages/DashboardsExecutivePagePage.js.map +0 -1
  1600. package/dist/planmagnet/pages/DashboardsLeadershipPagePage.d.ts.map +0 -1
  1601. package/dist/planmagnet/pages/DashboardsLeadershipPagePage.js.map +0 -1
  1602. package/dist/planmagnet/pages/DashboardsProjectManagerPagePage.d.ts.map +0 -1
  1603. package/dist/planmagnet/pages/DashboardsProjectManagerPagePage.js.map +0 -1
  1604. package/dist/planmagnet/pages/DashboardsTeamUtilizationPagePage.d.ts.map +0 -1
  1605. package/dist/planmagnet/pages/DashboardsTeamUtilizationPagePage.js.map +0 -1
  1606. package/dist/planmagnet/pages/DocsDocDetailPagePage.d.ts.map +0 -1
  1607. package/dist/planmagnet/pages/DocsDocDetailPagePage.js.map +0 -1
  1608. package/dist/planmagnet/pages/DocsDocsPagePage.d.ts.map +0 -1
  1609. package/dist/planmagnet/pages/DocsDocsPagePage.js.map +0 -1
  1610. package/dist/planmagnet/pages/GoalsCreateObjectivePagePage.d.ts.map +0 -1
  1611. package/dist/planmagnet/pages/GoalsCreateObjectivePagePage.js.map +0 -1
  1612. package/dist/planmagnet/pages/GoalsGoalsPagePage.d.ts.map +0 -1
  1613. package/dist/planmagnet/pages/GoalsGoalsPagePage.js.map +0 -1
  1614. package/dist/planmagnet/pages/GoalsObjectiveDetailPagePage.d.ts.map +0 -1
  1615. package/dist/planmagnet/pages/GoalsObjectiveDetailPagePage.js.map +0 -1
  1616. package/dist/planmagnet/pages/IntegrationsNewSyncPagePage.d.ts.map +0 -1
  1617. package/dist/planmagnet/pages/IntegrationsNewSyncPagePage.js.map +0 -1
  1618. package/dist/planmagnet/pages/IntegrationsSyncDetailPagePage.d.ts.map +0 -1
  1619. package/dist/planmagnet/pages/IntegrationsSyncDetailPagePage.js.map +0 -1
  1620. package/dist/planmagnet/pages/IntegrationsSyncsPagePage.d.ts.map +0 -1
  1621. package/dist/planmagnet/pages/IntegrationsSyncsPagePage.js.map +0 -1
  1622. package/dist/planmagnet/pages/IntegrationsWebhooksPagePage.d.ts.map +0 -1
  1623. package/dist/planmagnet/pages/IntegrationsWebhooksPagePage.js.map +0 -1
  1624. package/dist/planmagnet/pages/MeetingsMeetingDetailPagePage.d.ts.map +0 -1
  1625. package/dist/planmagnet/pages/MeetingsMeetingDetailPagePage.js.map +0 -1
  1626. package/dist/planmagnet/pages/MeetingsMeetingsPagePage.d.ts.map +0 -1
  1627. package/dist/planmagnet/pages/MeetingsMeetingsPagePage.js.map +0 -1
  1628. package/dist/planmagnet/pages/NotFoundPage.d.ts.map +0 -1
  1629. package/dist/planmagnet/pages/NotFoundPage.js.map +0 -1
  1630. package/dist/planmagnet/pages/PortfoliosCreatePortfolioPagePage.d.ts.map +0 -1
  1631. package/dist/planmagnet/pages/PortfoliosCreatePortfolioPagePage.js.map +0 -1
  1632. package/dist/planmagnet/pages/PortfoliosEditPortfolioPagePage.d.ts.map +0 -1
  1633. package/dist/planmagnet/pages/PortfoliosEditPortfolioPagePage.js.map +0 -1
  1634. package/dist/planmagnet/pages/PortfoliosPortfolioDetailPagePage.d.ts.map +0 -1
  1635. package/dist/planmagnet/pages/PortfoliosPortfolioDetailPagePage.js.map +0 -1
  1636. package/dist/planmagnet/pages/PortfoliosPortfoliosPagePage.d.ts.map +0 -1
  1637. package/dist/planmagnet/pages/PortfoliosPortfoliosPagePage.js.map +0 -1
  1638. package/dist/planmagnet/pages/ProductsCreateProductPagePage.d.ts.map +0 -1
  1639. package/dist/planmagnet/pages/ProductsCreateProductPagePage.js.map +0 -1
  1640. package/dist/planmagnet/pages/ProductsCreateRoadmapPagePage.d.ts.map +0 -1
  1641. package/dist/planmagnet/pages/ProductsCreateRoadmapPagePage.js.map +0 -1
  1642. package/dist/planmagnet/pages/ProductsCustomerSatisfactionPagePage.d.ts.map +0 -1
  1643. package/dist/planmagnet/pages/ProductsCustomerSatisfactionPagePage.js.map +0 -1
  1644. package/dist/planmagnet/pages/ProductsEditProductPagePage.d.ts.map +0 -1
  1645. package/dist/planmagnet/pages/ProductsEditProductPagePage.js.map +0 -1
  1646. package/dist/planmagnet/pages/ProductsEditReleasePagePage.d.ts.map +0 -1
  1647. package/dist/planmagnet/pages/ProductsEditReleasePagePage.js.map +0 -1
  1648. package/dist/planmagnet/pages/ProductsEditRoadmapPagePage.d.ts.map +0 -1
  1649. package/dist/planmagnet/pages/ProductsEditRoadmapPagePage.js.map +0 -1
  1650. package/dist/planmagnet/pages/ProductsFeatureAnalyticsPagePage.d.ts.map +0 -1
  1651. package/dist/planmagnet/pages/ProductsFeatureAnalyticsPagePage.js.map +0 -1
  1652. package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.d.ts.map +0 -1
  1653. package/dist/planmagnet/pages/ProductsFeatureDetailPagePage.js.map +0 -1
  1654. package/dist/planmagnet/pages/ProductsFeaturesPagePage.d.ts.map +0 -1
  1655. package/dist/planmagnet/pages/ProductsFeaturesPagePage.js.map +0 -1
  1656. package/dist/planmagnet/pages/ProductsNewFeaturePagePage.d.ts.map +0 -1
  1657. package/dist/planmagnet/pages/ProductsNewFeaturePagePage.js.map +0 -1
  1658. package/dist/planmagnet/pages/ProductsPrioritizationPagePage.d.ts.map +0 -1
  1659. package/dist/planmagnet/pages/ProductsPrioritizationPagePage.js.map +0 -1
  1660. package/dist/planmagnet/pages/ProductsProductDetailPagePage.d.ts.map +0 -1
  1661. package/dist/planmagnet/pages/ProductsProductDetailPagePage.js.map +0 -1
  1662. package/dist/planmagnet/pages/ProductsProductFeatureDetailPagePage.d.ts.map +0 -1
  1663. package/dist/planmagnet/pages/ProductsProductFeatureDetailPagePage.js.map +0 -1
  1664. package/dist/planmagnet/pages/ProductsProductHierarchyPagePage.d.ts.map +0 -1
  1665. package/dist/planmagnet/pages/ProductsProductHierarchyPagePage.js.map +0 -1
  1666. package/dist/planmagnet/pages/ProductsProductLinesPagePage.d.ts.map +0 -1
  1667. package/dist/planmagnet/pages/ProductsProductLinesPagePage.js.map +0 -1
  1668. package/dist/planmagnet/pages/ProductsProductsPagePage.d.ts.map +0 -1
  1669. package/dist/planmagnet/pages/ProductsProductsPagePage.js.map +0 -1
  1670. package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.d.ts.map +0 -1
  1671. package/dist/planmagnet/pages/ProductsReleaseDetailPagePage.js.map +0 -1
  1672. package/dist/planmagnet/pages/ProductsReleasesPagePage.d.ts.map +0 -1
  1673. package/dist/planmagnet/pages/ProductsReleasesPagePage.js.map +0 -1
  1674. package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.d.ts.map +0 -1
  1675. package/dist/planmagnet/pages/ProductsRoadmapAnalyticsPagePage.js.map +0 -1
  1676. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.d.ts.map +0 -1
  1677. package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js.map +0 -1
  1678. package/dist/planmagnet/pages/ProductsRoadmapsPagePage.d.ts.map +0 -1
  1679. package/dist/planmagnet/pages/ProductsRoadmapsPagePage.js.map +0 -1
  1680. package/dist/planmagnet/pages/ProgramsCreateProgramPagePage.d.ts.map +0 -1
  1681. package/dist/planmagnet/pages/ProgramsCreateProgramPagePage.js.map +0 -1
  1682. package/dist/planmagnet/pages/ProgramsEditProgramPagePage.d.ts.map +0 -1
  1683. package/dist/planmagnet/pages/ProgramsEditProgramPagePage.js.map +0 -1
  1684. package/dist/planmagnet/pages/ProgramsProgramDetailPagePage.d.ts.map +0 -1
  1685. package/dist/planmagnet/pages/ProgramsProgramDetailPagePage.js.map +0 -1
  1686. package/dist/planmagnet/pages/ProgramsProgramsPagePage.d.ts.map +0 -1
  1687. package/dist/planmagnet/pages/ProgramsProgramsPagePage.js.map +0 -1
  1688. package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.d.ts.map +0 -1
  1689. package/dist/planmagnet/pages/ProjectsActiveProjectsPagePage.js.map +0 -1
  1690. package/dist/planmagnet/pages/ProjectsAtRiskPagePage.d.ts.map +0 -1
  1691. package/dist/planmagnet/pages/ProjectsAtRiskPagePage.js.map +0 -1
  1692. package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.d.ts.map +0 -1
  1693. package/dist/planmagnet/pages/ProjectsBudgetDetailPagePage.js.map +0 -1
  1694. package/dist/planmagnet/pages/ProjectsBudgetsPagePage.d.ts.map +0 -1
  1695. package/dist/planmagnet/pages/ProjectsBudgetsPagePage.js.map +0 -1
  1696. package/dist/planmagnet/pages/ProjectsCreateProjectPagePage.d.ts.map +0 -1
  1697. package/dist/planmagnet/pages/ProjectsCreateProjectPagePage.js.map +0 -1
  1698. package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.d.ts.map +0 -1
  1699. package/dist/planmagnet/pages/ProjectsCriticalPathPagePage.js.map +0 -1
  1700. package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.d.ts.map +0 -1
  1701. package/dist/planmagnet/pages/ProjectsCustomFieldsPagePage.js.map +0 -1
  1702. package/dist/planmagnet/pages/ProjectsEditProjectPagePage.d.ts.map +0 -1
  1703. package/dist/planmagnet/pages/ProjectsEditProjectPagePage.js.map +0 -1
  1704. package/dist/planmagnet/pages/ProjectsGanttPagePage.d.ts.map +0 -1
  1705. package/dist/planmagnet/pages/ProjectsGanttPagePage.js.map +0 -1
  1706. package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.d.ts.map +0 -1
  1707. package/dist/planmagnet/pages/ProjectsMilestoneDetailPagePage.js.map +0 -1
  1708. package/dist/planmagnet/pages/ProjectsMilestonesPagePage.d.ts.map +0 -1
  1709. package/dist/planmagnet/pages/ProjectsMilestonesPagePage.js.map +0 -1
  1710. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.d.ts.map +0 -1
  1711. package/dist/planmagnet/pages/ProjectsPlanningDetailPagePage.js.map +0 -1
  1712. package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.d.ts.map +0 -1
  1713. package/dist/planmagnet/pages/ProjectsPlanningEditPagePage.js.map +0 -1
  1714. package/dist/planmagnet/pages/ProjectsPlanningPagePage.d.ts.map +0 -1
  1715. package/dist/planmagnet/pages/ProjectsPlanningPagePage.js.map +0 -1
  1716. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.d.ts.map +0 -1
  1717. package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js.map +0 -1
  1718. package/dist/planmagnet/pages/ProjectsProjectsPagePage.d.ts.map +0 -1
  1719. package/dist/planmagnet/pages/ProjectsProjectsPagePage.js.map +0 -1
  1720. package/dist/planmagnet/pages/ProjectsQualityGatesPagePage.d.ts.map +0 -1
  1721. package/dist/planmagnet/pages/ProjectsQualityGatesPagePage.js.map +0 -1
  1722. package/dist/planmagnet/pages/ProjectsWorkflowPagePage.d.ts.map +0 -1
  1723. package/dist/planmagnet/pages/ProjectsWorkflowPagePage.js.map +0 -1
  1724. package/dist/planmagnet/pages/ReportsCreateReportPagePage.d.ts.map +0 -1
  1725. package/dist/planmagnet/pages/ReportsCreateReportPagePage.js.map +0 -1
  1726. package/dist/planmagnet/pages/ReportsEditReportPagePage.d.ts.map +0 -1
  1727. package/dist/planmagnet/pages/ReportsEditReportPagePage.js.map +0 -1
  1728. package/dist/planmagnet/pages/ReportsReportPagePage.d.ts.map +0 -1
  1729. package/dist/planmagnet/pages/ReportsReportPagePage.js.map +0 -1
  1730. package/dist/planmagnet/pages/ReportsReportsPagePage.d.ts.map +0 -1
  1731. package/dist/planmagnet/pages/ReportsReportsPagePage.js.map +0 -1
  1732. package/dist/planmagnet/pages/RisksRiskDetailPagePage.d.ts.map +0 -1
  1733. package/dist/planmagnet/pages/RisksRiskDetailPagePage.js.map +0 -1
  1734. package/dist/planmagnet/pages/RisksRiskRegisterPagePage.d.ts.map +0 -1
  1735. package/dist/planmagnet/pages/RisksRiskRegisterPagePage.js.map +0 -1
  1736. package/dist/planmagnet/pages/SprintsStartSprintPagePage.d.ts.map +0 -1
  1737. package/dist/planmagnet/pages/SprintsStartSprintPagePage.js.map +0 -1
  1738. package/dist/planmagnet/pages/TasksCreateTaskPagePage.d.ts.map +0 -1
  1739. package/dist/planmagnet/pages/TasksCreateTaskPagePage.js.map +0 -1
  1740. package/dist/planmagnet/pages/TasksEditTaskPagePage.d.ts.map +0 -1
  1741. package/dist/planmagnet/pages/TasksEditTaskPagePage.js.map +0 -1
  1742. package/dist/planmagnet/pages/TasksImportPagePage.d.ts.map +0 -1
  1743. package/dist/planmagnet/pages/TasksImportPagePage.js.map +0 -1
  1744. package/dist/planmagnet/pages/TasksMyDashboardPagePage.d.ts.map +0 -1
  1745. package/dist/planmagnet/pages/TasksMyDashboardPagePage.js.map +0 -1
  1746. package/dist/planmagnet/pages/TasksMyWorkPagePage.d.ts.map +0 -1
  1747. package/dist/planmagnet/pages/TasksMyWorkPagePage.js.map +0 -1
  1748. package/dist/planmagnet/pages/TasksTaskDetailPagePage.d.ts.map +0 -1
  1749. package/dist/planmagnet/pages/TasksTaskDetailPagePage.js.map +0 -1
  1750. package/dist/planmagnet/pages/TasksTasksPagePage.d.ts.map +0 -1
  1751. package/dist/planmagnet/pages/TasksTasksPagePage.js.map +0 -1
  1752. package/dist/planmagnet/pages/TasksTimeEntriesPagePage.d.ts.map +0 -1
  1753. package/dist/planmagnet/pages/TasksTimeEntriesPagePage.js.map +0 -1
  1754. package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.d.ts.map +0 -1
  1755. package/dist/planmagnet/pages/TasksTimesheetDetailPagePage.js.map +0 -1
  1756. package/dist/planmagnet/pages/TasksTimesheetsPagePage.d.ts.map +0 -1
  1757. package/dist/planmagnet/pages/TasksTimesheetsPagePage.js.map +0 -1
  1758. package/dist/planmagnet/pages/TeamCreateTeamPagePage.d.ts.map +0 -1
  1759. package/dist/planmagnet/pages/TeamCreateTeamPagePage.js.map +0 -1
  1760. package/dist/planmagnet/pages/TeamInviteMemberPagePage.d.ts.map +0 -1
  1761. package/dist/planmagnet/pages/TeamInviteMemberPagePage.js.map +0 -1
  1762. package/dist/planmagnet/pages/TeamTeamDetailPagePage.d.ts.map +0 -1
  1763. package/dist/planmagnet/pages/TeamTeamDetailPagePage.js.map +0 -1
  1764. package/dist/planmagnet/pages/TeamTeamEditPagePage.d.ts.map +0 -1
  1765. package/dist/planmagnet/pages/TeamTeamEditPagePage.js.map +0 -1
  1766. package/dist/planmagnet/pages/TeamTeamPagePage.d.ts.map +0 -1
  1767. package/dist/planmagnet/pages/TeamTeamPagePage.js.map +0 -1
  1768. package/dist/planmagnet/pages/TeamTeamsListPagePage.d.ts.map +0 -1
  1769. package/dist/planmagnet/pages/TeamTeamsListPagePage.js.map +0 -1
  1770. package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.d.ts.map +0 -1
  1771. package/dist/planmagnet/pages/TemplatesEditTemplatePagePage.js.map +0 -1
  1772. package/dist/planmagnet/pages/TemplatesTemplatesPagePage.d.ts.map +0 -1
  1773. package/dist/planmagnet/pages/TemplatesTemplatesPagePage.js.map +0 -1
  1774. package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.d.ts.map +0 -1
  1775. package/dist/planmagnet/pages/WorkspaceCreateWorkspacePagePage.js.map +0 -1
  1776. package/dist/planmagnet/pages/analytics/DeliveryHealthCards.d.ts.map +0 -1
  1777. package/dist/planmagnet/pages/analytics/DeliveryHealthCards.js.map +0 -1
  1778. package/dist/planmagnet/pages/analytics/DeliveryKpisCard.d.ts.map +0 -1
  1779. package/dist/planmagnet/pages/analytics/DeliveryKpisCard.js.map +0 -1
  1780. package/dist/planmagnet/pages/analytics/MetricsCard.d.ts.map +0 -1
  1781. package/dist/planmagnet/pages/analytics/MetricsCard.js.map +0 -1
  1782. package/dist/planmagnet/pages/analytics/QualityMetricsCard.d.ts.map +0 -1
  1783. package/dist/planmagnet/pages/analytics/QualityMetricsCard.js.map +0 -1
  1784. package/dist/planmagnet/pages/analytics/SprintDeliveryCards.d.ts.map +0 -1
  1785. package/dist/planmagnet/pages/analytics/SprintDeliveryCards.js.map +0 -1
  1786. package/dist/planmagnet/pages/analytics/StatusFlowCard.d.ts.map +0 -1
  1787. package/dist/planmagnet/pages/analytics/StatusFlowCard.js.map +0 -1
  1788. package/dist/planmagnet/pages/analytics/ThroughputCard.d.ts.map +0 -1
  1789. package/dist/planmagnet/pages/analytics/ThroughputCard.js.map +0 -1
  1790. package/dist/planmagnet/pages/analytics/WorkBreakdownCard.d.ts.map +0 -1
  1791. package/dist/planmagnet/pages/analytics/WorkBreakdownCard.js.map +0 -1
  1792. package/dist/planmagnet/pages/analytics/analyticsRange.d.ts.map +0 -1
  1793. package/dist/planmagnet/pages/analytics/analyticsRange.js.map +0 -1
  1794. package/dist/planmagnet/people/People.d.ts.map +0 -1
  1795. package/dist/planmagnet/people/People.js.map +0 -1
  1796. package/dist/planmagnet/presence/PresenceAvatars.d.ts.map +0 -1
  1797. package/dist/planmagnet/presence/PresenceAvatars.js.map +0 -1
  1798. package/dist/planmagnet/product/FeatureLinkPanels.d.ts.map +0 -1
  1799. package/dist/planmagnet/product/FeatureLinkPanels.js.map +0 -1
  1800. package/dist/planmagnet/product/ProductControls.d.ts.map +0 -1
  1801. package/dist/planmagnet/product/ProductControls.js.map +0 -1
  1802. package/dist/planmagnet/product/ProductFeatureControls.d.ts.map +0 -1
  1803. package/dist/planmagnet/product/ProductFeatureControls.js.map +0 -1
  1804. package/dist/planmagnet/product/ProductFeatureLinkCard.d.ts.map +0 -1
  1805. package/dist/planmagnet/product/ProductFeatureLinkCard.js.map +0 -1
  1806. package/dist/planmagnet/product/ProductLineControls.d.ts.map +0 -1
  1807. package/dist/planmagnet/product/ProductLineControls.js.map +0 -1
  1808. package/dist/planmagnet/product/ProductTeamsPanel.d.ts.map +0 -1
  1809. package/dist/planmagnet/product/ProductTeamsPanel.js.map +0 -1
  1810. package/dist/planmagnet/product/WorkItemProductFeatureChip.d.ts.map +0 -1
  1811. package/dist/planmagnet/product/WorkItemProductFeatureChip.js.map +0 -1
  1812. package/dist/planmagnet/product/hierarchy.d.ts.map +0 -1
  1813. package/dist/planmagnet/product/hierarchy.js.map +0 -1
  1814. package/dist/planmagnet/product/hierarchyOperations.d.ts.map +0 -1
  1815. package/dist/planmagnet/product/hierarchyOperations.js.map +0 -1
  1816. package/dist/planmagnet/product/refusal.d.ts.map +0 -1
  1817. package/dist/planmagnet/product/refusal.js.map +0 -1
  1818. package/dist/planmagnet/product/routes.d.ts.map +0 -1
  1819. package/dist/planmagnet/product/routes.js.map +0 -1
  1820. package/dist/planmagnet/providers/PlanMagnetProvider.d.ts.map +0 -1
  1821. package/dist/planmagnet/providers/PlanMagnetProvider.js.map +0 -1
  1822. package/dist/planmagnet/releases/ReleaseChecklistCard.d.ts.map +0 -1
  1823. package/dist/planmagnet/releases/ReleaseChecklistCard.js.map +0 -1
  1824. package/dist/planmagnet/releases/ReleaseGatesCard.d.ts.map +0 -1
  1825. package/dist/planmagnet/releases/ReleaseGatesCard.js.map +0 -1
  1826. package/dist/planmagnet/releases/ReleaseNotesCard.d.ts.map +0 -1
  1827. package/dist/planmagnet/releases/ReleaseNotesCard.js.map +0 -1
  1828. package/dist/planmagnet/releases/ReleaseReadinessCard.d.ts.map +0 -1
  1829. package/dist/planmagnet/releases/ReleaseReadinessCard.js.map +0 -1
  1830. package/dist/planmagnet/releases/ReleaseWorkItemsCard.d.ts.map +0 -1
  1831. package/dist/planmagnet/releases/ReleaseWorkItemsCard.js.map +0 -1
  1832. package/dist/planmagnet/releases/useReleaseOptions.d.ts.map +0 -1
  1833. package/dist/planmagnet/releases/useReleaseOptions.js.map +0 -1
  1834. package/dist/planmagnet/reports/ExportMenu.d.ts.map +0 -1
  1835. package/dist/planmagnet/reports/ExportMenu.js.map +0 -1
  1836. package/dist/planmagnet/reports/PrintReportView.d.ts.map +0 -1
  1837. package/dist/planmagnet/reports/PrintReportView.js.map +0 -1
  1838. package/dist/planmagnet/reports/ReportBuilderCanvas.d.ts.map +0 -1
  1839. package/dist/planmagnet/reports/ReportBuilderCanvas.js.map +0 -1
  1840. package/dist/planmagnet/reports/ReportBuilderPage.d.ts.map +0 -1
  1841. package/dist/planmagnet/reports/ReportBuilderPage.js.map +0 -1
  1842. package/dist/planmagnet/reports/ReportRunHistory.d.ts.map +0 -1
  1843. package/dist/planmagnet/reports/ReportRunHistory.js.map +0 -1
  1844. package/dist/planmagnet/reports/ReportWidgetRenderer.d.ts.map +0 -1
  1845. package/dist/planmagnet/reports/ReportWidgetRenderer.js.map +0 -1
  1846. package/dist/planmagnet/reports/SchedulesPanel.d.ts.map +0 -1
  1847. package/dist/planmagnet/reports/SchedulesPanel.js.map +0 -1
  1848. package/dist/planmagnet/reports/ShareDialog.d.ts.map +0 -1
  1849. package/dist/planmagnet/reports/ShareDialog.js.map +0 -1
  1850. package/dist/planmagnet/reports/SharedReportPage.d.ts.map +0 -1
  1851. package/dist/planmagnet/reports/SharedReportPage.js.map +0 -1
  1852. package/dist/planmagnet/reports/WidgetEditorDialog.d.ts.map +0 -1
  1853. package/dist/planmagnet/reports/WidgetEditorDialog.js.map +0 -1
  1854. package/dist/planmagnet/reports/reportExportPptx.d.ts.map +0 -1
  1855. package/dist/planmagnet/reports/reportExportPptx.js.map +0 -1
  1856. package/dist/planmagnet/reports/reportExportXlsx.d.ts.map +0 -1
  1857. package/dist/planmagnet/reports/reportExportXlsx.js.map +0 -1
  1858. package/dist/planmagnet/reports/reportGraphql.d.ts.map +0 -1
  1859. package/dist/planmagnet/reports/reportGraphql.js.map +0 -1
  1860. package/dist/planmagnet/reports/reportModel.d.ts.map +0 -1
  1861. package/dist/planmagnet/reports/reportModel.js.map +0 -1
  1862. package/dist/planmagnet/reports/sharedReportRoute.d.ts.map +0 -1
  1863. package/dist/planmagnet/reports/sharedReportRoute.js.map +0 -1
  1864. package/dist/planmagnet/roadmaps/FeatureInitiativeCard.d.ts.map +0 -1
  1865. package/dist/planmagnet/roadmaps/FeatureInitiativeCard.js.map +0 -1
  1866. package/dist/planmagnet/roadmaps/RoadmapControls.d.ts.map +0 -1
  1867. package/dist/planmagnet/roadmaps/RoadmapControls.js.map +0 -1
  1868. package/dist/planmagnet/roadmaps/RoadmapNowNextLater.d.ts.map +0 -1
  1869. package/dist/planmagnet/roadmaps/RoadmapNowNextLater.js.map +0 -1
  1870. package/dist/planmagnet/roadmaps/RoadmapPresentation.d.ts.map +0 -1
  1871. package/dist/planmagnet/roadmaps/RoadmapPresentation.js.map +0 -1
  1872. package/dist/planmagnet/roadmaps/RoadmapReviewPanel.d.ts.map +0 -1
  1873. package/dist/planmagnet/roadmaps/RoadmapReviewPanel.js.map +0 -1
  1874. package/dist/planmagnet/roadmaps/RoadmapVersionsPanel.d.ts.map +0 -1
  1875. package/dist/planmagnet/roadmaps/RoadmapVersionsPanel.js.map +0 -1
  1876. package/dist/planmagnet/roadmaps/planningFocus.d.ts.map +0 -1
  1877. package/dist/planmagnet/roadmaps/planningFocus.js.map +0 -1
  1878. package/dist/planmagnet/satisfaction/DeliverySatisfactionSection.d.ts.map +0 -1
  1879. package/dist/planmagnet/satisfaction/DeliverySatisfactionSection.js.map +0 -1
  1880. package/dist/planmagnet/satisfaction/SatisfactionFigures.d.ts.map +0 -1
  1881. package/dist/planmagnet/satisfaction/SatisfactionFigures.js.map +0 -1
  1882. package/dist/planmagnet/satisfaction/SatisfactionImportDialog.d.ts.map +0 -1
  1883. package/dist/planmagnet/satisfaction/SatisfactionImportDialog.js.map +0 -1
  1884. package/dist/planmagnet/satisfaction/SatisfactionLinkFields.d.ts.map +0 -1
  1885. package/dist/planmagnet/satisfaction/SatisfactionLinkFields.js.map +0 -1
  1886. package/dist/planmagnet/satisfaction/SatisfactionReleaseSelect.d.ts.map +0 -1
  1887. package/dist/planmagnet/satisfaction/SatisfactionReleaseSelect.js.map +0 -1
  1888. package/dist/planmagnet/satisfaction/SatisfactionResponseDialog.d.ts.map +0 -1
  1889. package/dist/planmagnet/satisfaction/SatisfactionResponseDialog.js.map +0 -1
  1890. package/dist/planmagnet/satisfaction/SatisfactionResponsesTable.d.ts.map +0 -1
  1891. package/dist/planmagnet/satisfaction/SatisfactionResponsesTable.js.map +0 -1
  1892. package/dist/planmagnet/satisfaction/SatisfactionSummaryCard.d.ts.map +0 -1
  1893. package/dist/planmagnet/satisfaction/SatisfactionSummaryCard.js.map +0 -1
  1894. package/dist/planmagnet/satisfaction/SatisfactionWindowPicker.d.ts.map +0 -1
  1895. package/dist/planmagnet/satisfaction/SatisfactionWindowPicker.js.map +0 -1
  1896. package/dist/planmagnet/satisfaction/satisfaction.d.ts.map +0 -1
  1897. package/dist/planmagnet/satisfaction/satisfaction.js.map +0 -1
  1898. package/dist/planmagnet/satisfaction/satisfactionCsv.d.ts.map +0 -1
  1899. package/dist/planmagnet/satisfaction/satisfactionCsv.js.map +0 -1
  1900. package/dist/planmagnet/satisfaction/satisfactionForm.d.ts.map +0 -1
  1901. package/dist/planmagnet/satisfaction/satisfactionForm.js.map +0 -1
  1902. package/dist/planmagnet/satisfaction/satisfactionOperations.d.ts.map +0 -1
  1903. package/dist/planmagnet/satisfaction/satisfactionOperations.js.map +0 -1
  1904. package/dist/planmagnet/satisfaction/useSatisfactionAccess.d.ts.map +0 -1
  1905. package/dist/planmagnet/satisfaction/useSatisfactionAccess.js.map +0 -1
  1906. package/dist/planmagnet/skills/RequiredSkillsEditor.d.ts.map +0 -1
  1907. package/dist/planmagnet/skills/RequiredSkillsEditor.js.map +0 -1
  1908. package/dist/planmagnet/skills/SkillChips.d.ts.map +0 -1
  1909. package/dist/planmagnet/skills/SkillChips.js.map +0 -1
  1910. package/dist/planmagnet/skills/SkillCoverageCard.d.ts.map +0 -1
  1911. package/dist/planmagnet/skills/SkillCoverageCard.js.map +0 -1
  1912. package/dist/planmagnet/skills/WorkItemRequiredSkills.d.ts.map +0 -1
  1913. package/dist/planmagnet/skills/WorkItemRequiredSkills.js.map +0 -1
  1914. package/dist/planmagnet/skills/skillOperations.d.ts.map +0 -1
  1915. package/dist/planmagnet/skills/skillOperations.js.map +0 -1
  1916. package/dist/planmagnet/skills/skillTags.d.ts.map +0 -1
  1917. package/dist/planmagnet/skills/skillTags.js.map +0 -1
  1918. package/dist/planmagnet/skills/useRequiredSkillsDraft.d.ts.map +0 -1
  1919. package/dist/planmagnet/skills/useRequiredSkillsDraft.js.map +0 -1
  1920. package/dist/planmagnet/sprints/SprintControls.d.ts.map +0 -1
  1921. package/dist/planmagnet/sprints/SprintControls.js.map +0 -1
  1922. package/dist/planmagnet/sprints/SprintDates.d.ts.map +0 -1
  1923. package/dist/planmagnet/sprints/SprintDates.js.map +0 -1
  1924. package/dist/planmagnet/store/planmagnetStore.d.ts.map +0 -1
  1925. package/dist/planmagnet/store/planmagnetStore.js.map +0 -1
  1926. package/dist/planmagnet/team/PendingInvitations.d.ts.map +0 -1
  1927. package/dist/planmagnet/team/PendingInvitations.js.map +0 -1
  1928. package/dist/planmagnet/team/TeamControls.d.ts.map +0 -1
  1929. package/dist/planmagnet/team/TeamControls.js.map +0 -1
  1930. package/dist/planmagnet/team/UnmatchedCrewIdentities.d.ts.map +0 -1
  1931. package/dist/planmagnet/team/UnmatchedCrewIdentities.js.map +0 -1
  1932. package/dist/planmagnet/team/invitationEmail.d.ts.map +0 -1
  1933. package/dist/planmagnet/team/invitationEmail.js.map +0 -1
  1934. package/dist/planmagnet/time/TaskTimePanel.d.ts.map +0 -1
  1935. package/dist/planmagnet/time/TaskTimePanel.js.map +0 -1
  1936. package/dist/planmagnet/time/TimeEntryControls.d.ts.map +0 -1
  1937. package/dist/planmagnet/time/TimeEntryControls.js.map +0 -1
  1938. package/dist/planmagnet/time/TimesheetControls.d.ts.map +0 -1
  1939. package/dist/planmagnet/time/TimesheetControls.js.map +0 -1
  1940. package/dist/planmagnet/time/timeShared.d.ts.map +0 -1
  1941. package/dist/planmagnet/time/timeShared.js.map +0 -1
  1942. package/dist/planmagnet/types/index.d.ts.map +0 -1
  1943. package/dist/planmagnet/utils/cn.d.ts.map +0 -1
  1944. package/dist/planmagnet/utils/cn.js.map +0 -1
  1945. package/dist/planmagnet/utils/email.d.ts.map +0 -1
  1946. package/dist/planmagnet/utils/email.js.map +0 -1
  1947. package/dist/planmagnet/utils/formValidation.d.ts.map +0 -1
  1948. package/dist/planmagnet/utils/formValidation.js.map +0 -1
  1949. package/dist/planmagnet/utils/graphqlErrors.d.ts.map +0 -1
  1950. package/dist/planmagnet/utils/graphqlErrors.js.map +0 -1
  1951. package/dist/planmagnet/utils/lineDiff.d.ts.map +0 -1
  1952. package/dist/planmagnet/utils/lineDiff.js.map +0 -1
  1953. package/dist/planmagnet/utils/mutationResult.d.ts.map +0 -1
  1954. package/dist/planmagnet/utils/mutationResult.js.map +0 -1
  1955. package/dist/planmagnet/utils/navigation.d.ts.map +0 -1
  1956. package/dist/planmagnet/utils/navigation.js.map +0 -1
  1957. package/dist/planmagnet/utils/qualityGateCriteria.d.ts.map +0 -1
  1958. package/dist/planmagnet/utils/qualityGateCriteria.js.map +0 -1
  1959. package/dist/planmagnet/utils/rowNavigation.d.ts.map +0 -1
  1960. package/dist/planmagnet/utils/rowNavigation.js.map +0 -1
  1961. package/dist/planmagnet/utils/statusColor.d.ts.map +0 -1
  1962. package/dist/planmagnet/utils/statusColor.js.map +0 -1
  1963. package/dist/planmagnet/utils/urlParam.d.ts.map +0 -1
  1964. package/dist/planmagnet/utils/urlParam.js.map +0 -1
  1965. package/dist/planmagnet/webhooks/webhookTypes.d.ts.map +0 -1
  1966. package/dist/planmagnet/webhooks/webhookTypes.js.map +0 -1
  1967. package/dist/shared/hooks/useTr.d.ts.map +0 -1
  1968. package/dist/shared/hooks/useTr.js.map +0 -1
  1969. package/dist/shared/utils/i18n.d.ts.map +0 -1
  1970. package/dist/shared/utils/i18n.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"CodeLinksPanel.js","names":[],"sources":["../../../src/planmagnet/links/CodeLinksPanel.tsx"],"sourcesContent":["import { Card, CardContent, CardHeader, CardTitle, Badge } from '@burdenoff/fe-libs/ui';\nimport { GitCommit, GitPullRequest, Tag as TagIcon, ExternalLink, Code2 } from 'lucide-react';\n\n/**\n * Code panel on the task detail page (AUT-12): the PRs/commits/releases GitHub sync discovered that mention this\n * item's key. Purely presentational — `WorkItem.codeLinks` is already selected by the page's one detail query\n * (newest by `remoteUpdatedAt` first, capped at 50 server-side), so this never fires a query of its own.\n */\n\nexport type CodeLinkKind = 'PULL_REQUEST' | 'COMMIT' | 'RELEASE';\nexport type CodeLinkState = 'DRAFT' | 'OPEN' | 'CLOSED' | 'MERGED' | 'RELEASED';\n\nexport interface WorkItemCodeLink {\n id: string;\n kind: CodeLinkKind;\n title: string;\n url: string;\n state: CodeLinkState | null;\n number: number | null;\n authorLogin: string | null;\n mergedAt: string | null;\n ref: string | null;\n}\n\nconst KIND_ICON: Record<CodeLinkKind, typeof GitPullRequest> = {\n PULL_REQUEST: GitPullRequest,\n COMMIT: GitCommit,\n RELEASE: TagIcon,\n};\n\nconst KIND_LABEL: Record<CodeLinkKind, string> = {\n PULL_REQUEST: 'Pull request',\n COMMIT: 'Commit',\n RELEASE: 'Release',\n};\n\nconst STATE_VARIANT: Record<\n CodeLinkState,\n 'default' | 'success' | 'warning' | 'info' | 'secondary' | 'destructive' | 'outline'\n> = {\n DRAFT: 'secondary',\n OPEN: 'info',\n CLOSED: 'destructive',\n MERGED: 'success',\n RELEASED: 'success',\n};\n\nfunction CodeLinkRow({ link }: { link: WorkItemCodeLink }) {\n const Icon = KIND_ICON[link.kind];\n return (\n <li\n className=\"flex items-start justify-between gap-3 rounded-md border border-border-default p-2.5\"\n data-testid=\"code-link\"\n >\n <div className=\"flex min-w-0 items-start gap-2\">\n <Icon className=\"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground\" aria-hidden=\"true\" />\n <div className=\"min-w-0 space-y-0.5\">\n <a\n href={link.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex min-w-0 items-center gap-1 text-sm font-medium hover:underline\"\n >\n <span className=\"truncate\">{link.title}</span>\n <ExternalLink className=\"h-3 w-3 shrink-0\" aria-hidden=\"true\" />\n </a>\n <p className=\"text-xs text-muted-foreground\">\n {KIND_LABEL[link.kind]}\n {link.number != null ? ` #${link.number}` : ''}\n {link.authorLogin ? ` · @${link.authorLogin}` : ''}\n {link.ref ? ` · ${link.ref}` : ''}\n {link.mergedAt ? ` · merged ${new Date(link.mergedAt).toLocaleDateString()}` : ''}\n </p>\n </div>\n </div>\n {link.state && (\n <Badge variant={STATE_VARIANT[link.state]} className=\"shrink-0 text-[11px] capitalize\">\n {link.state.toLowerCase()}\n </Badge>\n )}\n </li>\n );\n}\n\nexport function CodeLinksPanel({ codeLinks }: { codeLinks: readonly WorkItemCodeLink[] }) {\n return (\n <Card data-testid=\"code-links\">\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Code2 className=\"h-4 w-4\" aria-hidden=\"true\" />\n Code ({codeLinks.length})\n </CardTitle>\n </CardHeader>\n <CardContent>\n {codeLinks.length === 0 ? (\n <p className=\"text-sm text-muted-foreground\">\n No code changes linked yet. GitHub sync links a PR, commit or release here once it\n mentions this item&rsquo;s key ({'\"'}fixes …{'\"'}, a branch name, a commit message).\n </p>\n ) : (\n <ul className=\"space-y-2\">\n {codeLinks.map((link) => (\n <CodeLinkRow key={link.id} link={link} />\n ))}\n </ul>\n )}\n </CardContent>\n </Card>\n );\n}\n"],"mappings":";;;;AAwBA,IAAM,IAAyD;CAC7D,cAAc;CACd,QAAQ;CACR,SAAS;CACV,EAEK,IAA2C;CAC/C,cAAc;CACd,QAAQ;CACR,SAAS;CACV,EAEK,IAGF;CACF,OAAO;CACP,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,UAAU;CACX;AAED,SAAS,EAAY,EAAE,WAAoC;CACzD,IAAM,IAAO,EAAU,EAAK;AAC5B,QACE,kBAAC,MAAD;EACE,WAAU;EACV,eAAY;YAFd,CAIE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,GAAD;IAAM,WAAU;IAAgD,eAAY;IAAS,CAAA,EACrF,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,KAAD;KACE,MAAM,EAAK;KACX,QAAO;KACP,KAAI;KACJ,WAAU;eAJZ,CAME,kBAAC,QAAD;MAAM,WAAU;gBAAY,EAAK;MAAa,CAAA,EAC9C,kBAAC,GAAD;MAAc,WAAU;MAAmB,eAAY;MAAS,CAAA,CAC9D;QACJ,kBAAC,KAAD;KAAG,WAAU;eAAb;MACG,EAAW,EAAK;MAChB,EAAK,UAAU,OAA4B,KAArB,KAAK,EAAK;MAChC,EAAK,cAAc,OAAO,EAAK,gBAAgB;MAC/C,EAAK,MAAM,MAAM,EAAK,QAAQ;MAC9B,EAAK,WAAW,aAAa,IAAI,KAAK,EAAK,SAAS,CAAC,oBAAoB,KAAK;MAC7E;OACA;MACF;MACL,EAAK,SACJ,kBAAC,GAAD;GAAO,SAAS,EAAc,EAAK;GAAQ,WAAU;aAClD,EAAK,MAAM,aAAa;GACnB,CAAA,CAEP;;;AAIT,SAAgB,EAAe,EAAE,gBAAyD;AACxF,QACE,kBAAC,GAAD;EAAM,eAAY;YAAlB,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;GAAW,WAAU;aAArB;IACE,kBAAC,GAAD;KAAO,WAAU;KAAU,eAAY;KAAS,CAAA;;IACzC,EAAU;IAAO;IACd;MACD,CAAA,EACb,kBAAC,GAAD,EAAA,UACG,EAAU,WAAW,IACpB,kBAAC,KAAD;GAAG,WAAU;aAAb;IAA6C;IAEV;IAAI;IAAQ;IAAI;IAC/C;OAEJ,kBAAC,MAAD;GAAI,WAAU;aACX,EAAU,KAAK,MACd,kBAAC,GAAD,EAAiC,SAAQ,EAAvB,EAAK,GAAkB,CACzC;GACC,CAAA,EAEK,CAAA,CACT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IssueLinksPanel.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/links/IssueLinksPanel.tsx"],"names":[],"mappings":"AAwDA,oFAAoF;AACpF,eAAO,MAAM,eAAe,yRAQlB,CAAC;AAEX,KAAK,QAAQ,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpD,+FAA+F;AAC/F,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAQ9C,CAAC;AAeF,wBAAgB,eAAe,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,2CA+MrE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IssueLinksPanel.js","names":[],"sources":["../../../src/planmagnet/links/IssueLinksPanel.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useMutation, useQuery } from '@apollo/client/react';\nimport { Badge, Button, Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport { Plus, X } from 'lucide-react';\nimport { WorkItemSearchSelect } from '../controls/Pickers';\nimport { ErrorLine } from '../controls/ConfirmButton';\nimport { usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { throwOnError } from '../utils/mutationResult';\n\n/**\n * Linked issues on the task detail page (PDM-24): blocks / is blocked by, duplicates, causes, relates to — semantic\n * links between two work items, read from THIS item's side (the server returns both directions and phrases each one\n * for the item being viewed). They never schedule anything; scheduling constraints are the Dependencies panel.\n *\n * One link per pair: the server refuses a second link between the same two items in either direction, so the way to\n * change a link is the relation select on its row, which updates the stored link (turning the verb round when the\n * row is stored on the other item).\n */\n\nconst ISSUE_LINKS = gql`\n query WorkItemIssueLinks($workItemId: ID!) {\n planmagnetWorkItemIssueLinks(workItemId: $workItemId) {\n linkId\n relation\n direction\n workItem {\n id\n key\n title\n status\n }\n }\n }\n`;\nconst LINK = gql`\n mutation WorkItemIssueLinkCreate($input: PlanmagnetCreateWorkItemLinkInput!) {\n planmagnetLinkWorkItem(input: $input) {\n id\n }\n }\n`;\nconst UPDATE = gql`\n mutation WorkItemIssueLinkUpdate($id: ID!, $input: PlanmagnetUpdateWorkItemLinkInput!) {\n planmagnetUpdateWorkItemLink(id: $id, input: $input) {\n id\n relationType\n }\n }\n`;\nconst UNLINK = gql`\n mutation WorkItemIssueLinkRemove($id: ID!) {\n planmagnetUnlinkWorkItem(id: $id)\n }\n`;\n\n/** The relations, in the order they are shown, with how each reads on this item. */\nexport const ISSUE_RELATIONS = [\n ['BLOCKS', 'Blocks'],\n ['BLOCKED_BY', 'Is blocked by'],\n ['DUPLICATES', 'Duplicates'],\n ['DUPLICATED_BY', 'Is duplicated by'],\n ['CAUSES', 'Causes'],\n ['CAUSED_BY', 'Is caused by'],\n ['RELATED_TO', 'Relates to'],\n] as const;\n\ntype Relation = (typeof ISSUE_RELATIONS)[number][0];\n\n/** The same fact read from the other item's side — mirrors the server's ISSUE_LINK_INVERSE. */\nexport const INVERSE: Record<Relation, Relation> = {\n BLOCKS: 'BLOCKED_BY',\n BLOCKED_BY: 'BLOCKS',\n DUPLICATES: 'DUPLICATED_BY',\n DUPLICATED_BY: 'DUPLICATES',\n CAUSES: 'CAUSED_BY',\n CAUSED_BY: 'CAUSES',\n RELATED_TO: 'RELATED_TO',\n};\n\nconst label = (relation: string) =>\n ISSUE_RELATIONS.find(([value]) => value === relation)?.[1] ?? relation.toLowerCase();\n\ninterface IssueLink {\n linkId: string;\n relation: Relation;\n direction: 'OUTGOING' | 'INCOMING';\n workItem: { id: string; key: string; title: string; status: string } | null;\n}\n\nconst selectClass =\n 'rounded-md border border-input bg-background px-2 py-1 text-sm disabled:opacity-60';\n\nexport function IssueLinksPanel({ workItemId }: { workItemId: string }) {\n const navigate = usePlanMagnetNavigate();\n const { data, loading, error } = useQuery<{ planmagnetWorkItemIssueLinks: IssueLink[] }>(\n ISSUE_LINKS,\n { variables: { workItemId }, skip: !workItemId }\n );\n const refetch = {\n refetchQueries: ['WorkItemIssueLinks', 'WorkItemActivity'],\n awaitRefetchQueries: true,\n };\n const [link, linkState] = useMutation(LINK, refetch);\n const [update, updateState] = useMutation(UPDATE, refetch);\n const [unlink, unlinkState] = useMutation(UNLINK, refetch);\n const [adding, setAdding] = useState(false);\n const [relation, setRelation] = useState<Relation>('BLOCKS');\n const [target, setTarget] = useState('');\n const [problem, setProblem] = useState<string | null>(null);\n const busy = linkState.loading || updateState.loading || unlinkState.loading;\n\n const links = (data?.planmagnetWorkItemIssueLinks ?? []).filter((l) => l.workItem);\n const linkedIds = links.map((l) => l.workItem?.id ?? '');\n\n const run = async (\n action: () => Promise<{ error?: unknown }>,\n fallback: string\n ): Promise<boolean> => {\n setProblem(null);\n try {\n await throwOnError(action());\n return true;\n } catch (e) {\n setProblem(e instanceof Error ? e.message : fallback);\n return false;\n }\n };\n\n const add = async () => {\n const ok = await run(\n () =>\n link({\n variables: {\n input: {\n workItemId,\n sourceProduct: 'planmagnet',\n entityType: 'WorkItem',\n entityId: target,\n relationType: relation,\n },\n },\n }),\n 'The link could not be added.'\n );\n if (ok) {\n setTarget('');\n setAdding(false);\n }\n };\n\n // A row stored on the OTHER item holds the verb from its side: turn the chosen one round before saving.\n const change = (row: IssueLink, next: Relation) =>\n run(\n () =>\n update({\n variables: {\n id: row.linkId,\n input: { relationType: row.direction === 'OUTGOING' ? next : INVERSE[next] },\n },\n }),\n 'The link could not be changed.'\n );\n\n return (\n <Card data-testid=\"issue-links\">\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0\">\n <CardTitle>Linked issues ({links.length})</CardTitle>\n {!adding && (\n <Button\n size=\"sm\"\n variant=\"outline\"\n onClick={() => setAdding(true)}\n data-testid=\"issue-links-add\"\n >\n <Plus className=\"mr-1 h-4 w-4\" /> Link issue\n </Button>\n )}\n </CardHeader>\n <CardContent className=\"space-y-2\">\n <p className=\"text-xs text-muted-foreground\">\n What this task blocks, duplicates or causes. These links do not schedule anything —\n scheduling constraints are under Dependencies.\n </p>\n {problem && <ErrorLine message={problem} />}\n {loading && !data && <p className=\"text-sm text-muted-foreground\">Loading…</p>}\n {error && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n Linked issues could not be loaded: {error.message}\n </p>\n )}\n {data && links.length === 0 && !adding && (\n <p className=\"text-sm text-muted-foreground\">No linked issues.</p>\n )}\n {links.map((row) => (\n <div\n key={row.linkId}\n className=\"flex items-center justify-between gap-2 rounded-md border p-2\"\n data-testid=\"issue-link\"\n >\n <div className=\"flex min-w-0 items-center gap-2\">\n <select\n aria-label={`How this task relates to ${row.workItem?.key ?? 'the linked task'}`}\n className={selectClass}\n value={row.relation}\n disabled={busy}\n onChange={(e) => {\n const next = e.target.value as Relation;\n if (next !== row.relation) void change(row, next);\n }}\n data-testid=\"issue-link-relation\"\n >\n {ISSUE_RELATIONS.map(([value, text]) => (\n <option key={value} value={value}>\n {text}\n </option>\n ))}\n </select>\n <button\n type=\"button\"\n className=\"min-w-0 truncate text-left text-sm hover:underline\"\n onClick={() =>\n row.workItem &&\n navigate(`/tasks/task-detail-page?taskId=${encodeURIComponent(row.workItem.id)}`)\n }\n >\n <span className=\"text-muted-foreground\">{row.workItem?.key}</span>{' '}\n {row.workItem?.title}\n </button>\n </div>\n <span className=\"flex shrink-0 items-center gap-1\">\n <Badge variant=\"outline\" className=\"text-xs capitalize\">\n {row.workItem?.status.toLowerCase().replace('_', ' ')}\n </Badge>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n aria-label={`Remove the \"${label(row.relation)}\" link to ${row.workItem?.key ?? 'this task'}`}\n disabled={busy}\n onClick={() =>\n void run(\n () => unlink({ variables: { id: row.linkId } }),\n 'The link could not be removed.'\n )\n }\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </span>\n </div>\n ))}\n {adding && (\n <div className=\"space-y-2 border-t pt-3\" data-testid=\"issue-link-form\">\n <label htmlFor=\"issue-link-relation-new\" className=\"text-xs text-muted-foreground\">\n This task…\n </label>\n <select\n id=\"issue-link-relation-new\"\n className={`${selectClass} w-full`}\n value={relation}\n onChange={(e) => setRelation(e.target.value as Relation)}\n >\n {ISSUE_RELATIONS.map(([value, text]) => (\n <option key={value} value={value}>\n {text.toLowerCase()}\n </option>\n ))}\n </select>\n <WorkItemSearchSelect\n id=\"issue-link-target\"\n value={target}\n onChange={setTarget}\n exclude={[workItemId, ...linkedIds]}\n />\n <div className=\"flex justify-end gap-2\">\n <Button\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => {\n setAdding(false);\n setTarget('');\n setProblem(null);\n }}\n >\n Cancel\n </Button>\n <Button\n size=\"sm\"\n disabled={!target || busy}\n onClick={() => void add()}\n data-testid=\"issue-link-save\"\n >\n Link\n </Button>\n </div>\n </div>\n )}\n </CardContent>\n </Card>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MeetingActionItemsPanel.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/meetings/MeetingActionItemsPanel.tsx"],"names":[],"mappings":"AAiCA,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC7E;AAID,wBAAgB,uBAAuB,CAAC,EACtC,SAAS,EACT,SAAS,EACT,WAAW,GACZ,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,2CAsNA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MeetingActionItemsPanel.js","names":[],"sources":["../../../src/planmagnet/meetings/MeetingActionItemsPanel.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useMutation } from '@apollo/client/react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Input,\n} from '@burdenoff/fe-libs/ui';\nimport { ListChecks, Plus, X } from 'lucide-react';\nimport { WorkItemSearchSelect } from '../controls/Pickers';\nimport { enumLabel } from '../controls/WorkItemControls';\nimport { ErrorLine } from '../controls/ConfirmButton';\nimport { usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { throwOnError } from '../utils/mutationResult';\nimport { mutationErrorMessage } from '../utils/graphqlErrors';\nimport {\n ADD_MEETING_ACTION_ITEM,\n REMOVE_MEETING_ACTION_ITEM,\n CREATE_MEETING_ACTION_WORK_ITEM,\n MEETING_QUERIES,\n} from './meetingGraphql';\n\n/**\n * A meeting's action items (CWF-22): real work items the meeting produced. The join only records the fact —\n * \"Add action item\" creates a real WorkItem first, then links it; \"Attach existing item\" picks one already in\n * the meeting's own project. Same two-step shape as `IssueLinksPanel`, which this mirrors.\n */\n\nconst WORK_ITEM_TYPES = ['TASK', 'BUG', 'STORY', 'SUB_TASK', 'EPIC'] as const;\n\ninterface ActionItem {\n id: string;\n workItemId: string;\n workItem: { id: string; key: string; title: string; status: string } | null;\n}\n\nconst refetch = { refetchQueries: MEETING_QUERIES, awaitRefetchQueries: true };\n\nexport function MeetingActionItemsPanel({\n meetingId,\n projectId,\n actionItems,\n}: {\n meetingId: string;\n projectId: string;\n actionItems: ActionItem[];\n}) {\n const navigate = usePlanMagnetNavigate();\n const [add, addState] = useMutation<{\n planmagnetAddMeetingActionItem: { id: string; workItemId: string };\n }>(ADD_MEETING_ACTION_ITEM, refetch);\n const [remove, removeState] = useMutation<{ planmagnetRemoveMeetingActionItem: boolean }>(\n REMOVE_MEETING_ACTION_ITEM,\n refetch\n );\n const [createWorkItem, createState] = useMutation<{\n planmagnetCreateWorkItem: { id: string; key: string; title: string; status: string };\n }>(CREATE_MEETING_ACTION_WORK_ITEM, refetch);\n const [mode, setMode] = useState<'none' | 'attach' | 'create'>('none');\n const [attachTarget, setAttachTarget] = useState('');\n const [newTitle, setNewTitle] = useState('');\n const [newType, setNewType] = useState<(typeof WORK_ITEM_TYPES)[number]>('TASK');\n const [error, setError] = useState<string | null>(null);\n const busy = addState.loading || removeState.loading || createState.loading;\n\n const items = actionItems.filter((a) => a.workItem);\n const attachedIds = items.map((a) => a.workItem!.id);\n\n const closeForms = () => {\n setMode('none');\n setAttachTarget('');\n setNewTitle('');\n setError(null);\n };\n\n const attachExisting = async () => {\n setError(null);\n try {\n await throwOnError(add({ variables: { meetingId, workItemId: attachTarget } }));\n closeForms();\n } catch (e) {\n setError(mutationErrorMessage(e, 'The item could not be attached.'));\n }\n };\n\n const createAndAttach = async () => {\n setError(null);\n const title = newTitle.trim();\n if (!title) {\n setError('A title is required.');\n return;\n }\n let created: { id: string; key: string } | undefined;\n try {\n const result = await throwOnError(\n createWorkItem({ variables: { input: { title, type: newType, projectId } } })\n );\n created = result.data?.planmagnetCreateWorkItem;\n if (!created) throw new Error('The work item was not created.');\n } catch (e) {\n setError(mutationErrorMessage(e, 'The work item could not be created.'));\n return;\n }\n try {\n await throwOnError(add({ variables: { meetingId, workItemId: created.id } }));\n closeForms();\n } catch (e) {\n // The work item is real and already saved — say so, rather than leaving the user thinking nothing\n // happened when in fact an unattached item (created.key) now exists in the project.\n setError(\n `${created.key} was created but could not be attached to this meeting: ` +\n mutationErrorMessage(e, 'unknown reason')\n );\n }\n };\n\n const handleRemove = async (workItemId: string) => {\n setError(null);\n try {\n await throwOnError(remove({ variables: { meetingId, workItemId } }));\n } catch (e) {\n setError(mutationErrorMessage(e, 'The item could not be removed.'));\n }\n };\n\n return (\n <Card data-testid=\"meeting-action-items\">\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0\">\n <CardTitle className=\"flex items-center gap-2\">\n <ListChecks className=\"h-4 w-4 text-primary\" />\n Action items ({items.length})\n </CardTitle>\n {mode === 'none' && (\n <div className=\"flex gap-2\">\n <Button\n size=\"sm\"\n variant=\"outline\"\n onClick={() => setMode('attach')}\n data-testid=\"meeting-action-items-attach-trigger\"\n >\n Attach existing\n </Button>\n <Button\n size=\"sm\"\n variant=\"outline\"\n onClick={() => setMode('create')}\n data-testid=\"meeting-action-items-add-trigger\"\n >\n <Plus className=\"mr-1 h-4 w-4\" />\n Add action item\n </Button>\n </div>\n )}\n </CardHeader>\n <CardContent className=\"space-y-2\">\n {items.length === 0 && mode === 'none' && (\n <p className=\"text-sm text-muted-foreground\">No action items yet.</p>\n )}\n {items.map((a) => (\n <div\n key={a.id}\n className=\"flex items-center justify-between gap-2 rounded-md border p-2\"\n data-testid=\"meeting-action-item-row\"\n >\n <button\n type=\"button\"\n className=\"min-w-0 truncate text-left text-sm hover:underline\"\n onClick={() =>\n navigate(`/tasks/task-detail-page?taskId=${encodeURIComponent(a.workItem!.id)}`)\n }\n >\n <span className=\"text-muted-foreground\">{a.workItem!.key}</span> {a.workItem!.title}\n </button>\n <span className=\"flex shrink-0 items-center gap-2\">\n <Badge variant=\"outline\" className=\"text-xs capitalize\">\n {enumLabel(a.workItem!.status)}\n </Badge>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n aria-label={`Remove ${a.workItem!.key} from this meeting's action items`}\n disabled={busy}\n onClick={() => void handleRemove(a.workItem!.id)}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </span>\n </div>\n ))}\n\n {mode === 'attach' && (\n <div className=\"space-y-2 border-t pt-3\" data-testid=\"meeting-action-items-attach-form\">\n <WorkItemSearchSelect\n id=\"meeting-action-item-attach\"\n projectId={projectId}\n value={attachTarget}\n onChange={setAttachTarget}\n exclude={attachedIds}\n />\n {error && <ErrorLine message={error} />}\n <div className=\"flex justify-end gap-2\">\n <Button size=\"sm\" variant=\"ghost\" onClick={closeForms}>\n Cancel\n </Button>\n <Button\n size=\"sm\"\n disabled={!attachTarget || busy}\n onClick={() => void attachExisting()}\n data-testid=\"meeting-action-items-attach-save\"\n >\n Attach\n </Button>\n </div>\n </div>\n )}\n\n {mode === 'create' && (\n <div className=\"space-y-2 border-t pt-3\" data-testid=\"meeting-action-items-create-form\">\n <div className=\"grid grid-cols-[1fr_auto] gap-2\">\n <Input\n aria-label=\"New action item title\"\n placeholder=\"What needs doing?\"\n value={newTitle}\n onChange={(e) => setNewTitle(e.target.value)}\n data-testid=\"meeting-action-items-new-title\"\n />\n <select\n aria-label=\"Work item type\"\n className=\"rounded-md border border-input bg-background px-2 py-1 text-sm\"\n value={newType}\n onChange={(e) => setNewType(e.target.value as (typeof WORK_ITEM_TYPES)[number])}\n >\n {WORK_ITEM_TYPES.map((t) => (\n <option key={t} value={t}>\n {enumLabel(t)}\n </option>\n ))}\n </select>\n </div>\n {error && <ErrorLine message={error} />}\n <div className=\"flex justify-end gap-2\">\n <Button size=\"sm\" variant=\"ghost\" onClick={closeForms}>\n Cancel\n </Button>\n <Button\n size=\"sm\"\n disabled={!newTitle.trim() || busy}\n onClick={() => void createAndAttach()}\n data-testid=\"meeting-action-items-create-save\"\n >\n Create &amp; attach\n </Button>\n </div>\n </div>\n )}\n\n {mode === 'none' && error && <ErrorLine message={error} />}\n </CardContent>\n </Card>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MeetingsCard.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/meetings/MeetingsCard.tsx"],"names":[],"mappings":"AAiCA,wBAAgB,YAAY,CAAC,EAC3B,WAAW,EACX,SAAS,EACT,QAAQ,GACT,EAAE;IACD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,2CAkGA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MeetingsCard.js","names":[],"sources":["../../../src/planmagnet/meetings/MeetingsCard.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useQuery } from '@apollo/client/react';\nimport { Badge, Card, CardContent, CardHeader, CardTitle } from '@burdenoff/fe-libs/ui';\nimport { CalendarClock, ExternalLink, ListChecks } from 'lucide-react';\nimport { usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport {\n ROW_LINK_CLASS,\n rowLinkProps,\n detailPath,\n stopRowActivation,\n} from '../utils/rowNavigation';\nimport { isForbidden } from '../utils/graphqlErrors';\nimport { enumLabel } from '../controls/WorkItemControls';\nimport { summarizeRecurrence, type MeetingKind } from './meetingModel';\nimport { LIST_PLANMAGNET_MEETINGS } from './meetingGraphql';\nimport { ScheduleMeetingDialog } from './ScheduleMeetingDialog';\n\n/**\n * A project's (or, scoped to one sprint, that sprint's) meetings — upcoming first (GAP-06). Self-fetching, same\n * convention as the other project-detail cards (`ProjectRiskSummaryCard`, `ResourceForecastCard`).\n */\n\ninterface MeetingRow {\n id: string;\n title: string;\n kind: MeetingKind;\n startsAt: string;\n endsAt: string;\n calendarEventId: string;\n recurrenceRule: string | null;\n actionItems: { id: string }[];\n}\n\nexport function MeetingsCard({\n workspaceId,\n projectId,\n sprintId,\n}: {\n workspaceId?: string | null;\n projectId: string;\n /** Scopes the card to one sprint's meetings instead of the whole project's. */\n sprintId?: string | null;\n}) {\n const navigate = usePlanMagnetNavigate();\n const { data, loading, error, refetch } = useQuery<{\n planmagnetMeetings: { items: MeetingRow[]; totalCount: number };\n }>(LIST_PLANMAGNET_MEETINGS, {\n variables: {\n workspaceId,\n filter: sprintId ? { projectId, sprintId } : { projectId },\n pagination: { first: 100 },\n },\n skip: !workspaceId || !projectId,\n });\n\n // Fixed for the life of the card — a refetch (e.g. right after scheduling a meeting) must not shift the\n // upcoming/past split underneath the reader (same fix as `DashboardsExecutivePagePage`'s own `now`).\n const [now] = useState(() => Date.now());\n const items = data?.planmagnetMeetings.items ?? [];\n const upcoming = items\n .filter((m) => new Date(m.startsAt).getTime() >= now)\n .sort((a, b) => a.startsAt.localeCompare(b.startsAt));\n const past = items\n .filter((m) => new Date(m.startsAt).getTime() < now)\n .sort((a, b) => b.startsAt.localeCompare(a.startsAt));\n const ordered = [...upcoming, ...past];\n\n return (\n <Card data-testid=\"meetings-card\">\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0\">\n <CardTitle className=\"flex items-center gap-2\">\n <CalendarClock className=\"h-4 w-4 text-primary\" />\n Meetings ({data?.planmagnetMeetings.totalCount ?? items.length})\n </CardTitle>\n <ScheduleMeetingDialog\n projectId={projectId}\n sprintId={sprintId}\n triggerLabel=\"Schedule\"\n onScheduled={() => void refetch()}\n />\n </CardHeader>\n <CardContent className=\"space-y-2\">\n {loading && !data && <p className=\"text-sm text-muted-foreground\">Loading…</p>}\n {error && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n {isForbidden(error)\n ? \"You don't have access to this project's meetings.\"\n : `Meetings could not be loaded: ${error.message}`}\n </p>\n )}\n {data && ordered.length === 0 && (\n <p className=\"text-sm text-muted-foreground text-center py-2\">\n No meetings scheduled yet.\n </p>\n )}\n {ordered.map((m) => (\n <div\n key={m.id}\n {...rowLinkProps(\n () => navigate(detailPath('/meetings/meeting-detail-page', m.id)),\n m.title\n )}\n className={`space-y-1 border-b pb-2 last:border-0 ${ROW_LINK_CLASS}`}\n data-testid=\"meetings-card-row\"\n >\n <div className=\"flex items-center justify-between gap-2\">\n <span className=\"text-sm font-medium truncate\">{m.title}</span>\n <Badge variant=\"outline\" className=\"text-xs shrink-0\">\n {enumLabel(m.kind)}\n </Badge>\n </div>\n <div className=\"flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground\">\n <span>\n {new Date(m.startsAt).toLocaleString(undefined, {\n dateStyle: 'medium',\n timeStyle: 'short',\n })}\n </span>\n <span>{summarizeRecurrence(m.recurrenceRule)}</span>\n {m.actionItems.length > 0 && (\n <span className=\"inline-flex items-center gap-1\">\n <ListChecks className=\"h-3 w-3\" />\n {m.actionItems.length} action item{m.actionItems.length === 1 ? '' : 's'}\n </span>\n )}\n <a\n href={`/calendar/event/${encodeURIComponent(m.calendarEventId)}`}\n onClick={stopRowActivation}\n className=\"inline-flex items-center gap-1 text-primary hover:underline\"\n data-testid=\"meetings-card-open-in-calendar\"\n >\n Open in calendar\n <ExternalLink className=\"h-3 w-3\" />\n </a>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAiCA,SAAgB,EAAa,EAC3B,gBACA,cACA,eAMC;CACD,IAAM,IAAW,GAAuB,EAClC,EAAE,SAAM,YAAS,UAAO,eAAY,EAEvC,GAA0B;EAC3B,WAAW;GACT;GACA,QAAQ,IAAW;IAAE;IAAW;IAAU,GAAG,EAAE,cAAW;GAC1D,YAAY,EAAE,OAAO,KAAK;GAC3B;EACD,MAAM,CAAC,KAAe,CAAC;EACxB,CAAC,EAII,CAAC,KAAO,QAAe,KAAK,KAAK,CAAC,EAClC,IAAQ,GAAM,mBAAmB,SAAS,EAAE,EAC5C,IAAW,EACd,QAAQ,MAAM,IAAI,KAAK,EAAE,SAAS,CAAC,SAAS,IAAI,EAAI,CACpD,MAAM,GAAG,MAAM,EAAE,SAAS,cAAc,EAAE,SAAS,CAAC,EACjD,IAAO,EACV,QAAQ,MAAM,IAAI,KAAK,EAAE,SAAS,CAAC,SAAS,GAAG,EAAI,CACnD,MAAM,GAAG,MAAM,EAAE,SAAS,cAAc,EAAE,SAAS,CAAC,EACjD,IAAU,CAAC,GAAG,GAAU,GAAG,EAAK;AAEtC,QACE,kBAAC,GAAD;EAAM,eAAY;YAAlB,CACE,kBAAC,GAAD;GAAY,WAAU;aAAtB,CACE,kBAAC,GAAD;IAAW,WAAU;cAArB;KACE,kBAAC,GAAD,EAAe,WAAU,wBAAyB,CAAA;;KACvC,GAAM,mBAAmB,cAAc,EAAM;KAAO;KACrD;OACZ,kBAAC,GAAD;IACa;IACD;IACV,cAAa;IACb,mBAAmB,KAAK,GAAS;IACjC,CAAA,CACS;MACb,kBAAC,GAAD;GAAa,WAAU;aAAvB;IACG,KAAW,CAAC,KAAQ,kBAAC,KAAD;KAAG,WAAU;eAAgC;KAAY,CAAA;IAC7E,KACC,kBAAC,KAAD;KAAG,MAAK;KAAQ,WAAU;eACvB,EAAY,EAAM,GACf,sDACA,iCAAiC,EAAM;KACzC,CAAA;IAEL,KAAQ,EAAQ,WAAW,KAC1B,kBAAC,KAAD;KAAG,WAAU;eAAiD;KAE1D,CAAA;IAEL,EAAQ,KAAK,MACZ,kBAAC,OAAD;KAEE,GAAI,QACI,EAAS,EAAW,iCAAiC,EAAE,GAAG,CAAC,EACjE,EAAE,MACH;KACD,WAAW,yCAAyC;KACpD,eAAY;eAPd,CASE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,QAAD;OAAM,WAAU;iBAAgC,EAAE;OAAa,CAAA,EAC/D,kBAAC,GAAD;OAAO,SAAQ;OAAU,WAAU;iBAChC,EAAU,EAAE,KAAK;OACZ,CAAA,CACJ;SACN,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,QAAD,EAAA,UACG,IAAI,KAAK,EAAE,SAAS,CAAC,eAAe,KAAA,GAAW;QAC9C,WAAW;QACX,WAAW;QACZ,CAAC,EACG,CAAA;OACP,kBAAC,QAAD,EAAA,UAAO,EAAoB,EAAE,eAAe,EAAQ,CAAA;OACnD,EAAE,YAAY,SAAS,KACtB,kBAAC,QAAD;QAAM,WAAU;kBAAhB;SACE,kBAAC,GAAD,EAAY,WAAU,WAAY,CAAA;SACjC,EAAE,YAAY;SAAO;SAAa,EAAE,YAAY,WAAW,IAAI,KAAK;SAChE;;OAET,kBAAC,KAAD;QACE,MAAM,mBAAmB,mBAAmB,EAAE,gBAAgB;QAC9D,SAAS;QACT,WAAU;QACV,eAAY;kBAJd,CAKC,oBAEC,kBAAC,GAAD,EAAc,WAAU,WAAY,CAAA,CAClC;;OACA;QACF;OAtCC,EAAE,GAsCH,CACN;IACU;KACT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScheduleCeremoniesDialog.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/meetings/ScheduleCeremoniesDialog.tsx"],"names":[],"mappings":"AA6GA,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,QAAQ,EACR,SAAS,EACT,OAAO,GACR,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB;sCACkC;IAClC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,2CA2PA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScheduleCeremoniesDialog.js","names":[],"sources":["../../../src/planmagnet/meetings/ScheduleCeremoniesDialog.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useMutation, useQuery } from '@apollo/client/react';\nimport {\n Button,\n Input,\n ResponsiveDialog,\n ResponsiveDialogContent,\n ResponsiveDialogDescription,\n ResponsiveDialogFooter,\n ResponsiveDialogHeader,\n ResponsiveDialogTitle,\n ResponsiveDialogTrigger,\n} from '@burdenoff/fe-libs/ui';\nimport { CalendarRange, CheckCircle2, XCircle } from 'lucide-react';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { detailPath } from '../utils/rowNavigation';\nimport { ErrorLine } from '../controls/ConfirmButton';\nimport {\n type MeetingKind,\n DURATION_OPTIONS_MINUTES,\n localInputValueToISO,\n addMinutesIso,\n viewerTimeZone,\n rruleUntil,\n} from './meetingModel';\nimport {\n SCHEDULE_MEETING_CALENDARS,\n CREATE_CALENDAR_EVENT,\n DELETE_CALENDAR_EVENT,\n LINK_PLANMAGNET_MEETING,\n MEETING_QUERIES,\n} from './meetingGraphql';\nimport { createAndLinkMeeting, meetingScheduleErrorMessage } from './meetingActions';\n\n/**\n * CWF-23: propose a sprint's standard ceremonies from its start/end dates (Planning at start, a weekday Daily\n * standup for the sprint's length, Review and Retrospective at the end), let the times be edited, then create\n * them one at a time — reporting each one's own success or failure, since a partial result (three ceremonies\n * scheduled, one refused) is a real possible outcome, never collapsed into one pass/fail.\n */\n\nconst fieldClass =\n 'mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm disabled:opacity-60';\n\n/** A sprint's planned start/end are UTC-midnight calendar days (`SprintDates.tsx`'s convention) — combine the\n * day as-is with a local time-of-day rather than converting the UTC instant to local, which could shift the\n * calendar day itself near a time-zone boundary. */\nfunction combineDayAndTime(dayIso: string, hhmm: string): string {\n return `${dayIso.slice(0, 10)}T${hhmm}`;\n}\n\ninterface CeremonyDraft {\n key: 'PLANNING' | 'STANDUP' | 'REVIEW' | 'RETROSPECTIVE';\n label: string;\n kind: MeetingKind;\n startLocal: string;\n durationMinutes: number;\n /** Only the standup repeats — every weekday through the sprint's last day. */\n recurs: boolean;\n}\n\nfunction defaultCeremonies(startDate: string, endDate: string): CeremonyDraft[] {\n return [\n {\n key: 'PLANNING',\n label: 'Planning',\n kind: 'PLANNING',\n startLocal: combineDayAndTime(startDate, '10:00'),\n durationMinutes: 60,\n recurs: false,\n },\n {\n key: 'STANDUP',\n label: 'Daily standup',\n kind: 'STANDUP',\n startLocal: combineDayAndTime(startDate, '09:30'),\n durationMinutes: 15,\n recurs: true,\n },\n {\n key: 'REVIEW',\n label: 'Review',\n kind: 'REVIEW',\n startLocal: combineDayAndTime(endDate, '14:00'),\n durationMinutes: 60,\n recurs: false,\n },\n {\n key: 'RETROSPECTIVE',\n label: 'Retrospective',\n kind: 'RETROSPECTIVE',\n startLocal: combineDayAndTime(endDate, '15:15'),\n durationMinutes: 45,\n recurs: false,\n },\n ];\n}\n\ninterface CalendarOption {\n id: string;\n name: string;\n isDefault: boolean;\n}\n\ntype CeremonyResult = {\n key: CeremonyDraft['key'];\n label: string;\n} & ({ status: 'success'; meetingId: string } | { status: 'error'; message: string });\n\nexport function ScheduleCeremoniesDialog({\n projectId,\n sprintId,\n startDate,\n endDate,\n}: {\n projectId: string;\n sprintId: string;\n /** Planned start/end (UTC-midnight calendar days). Null disables the whole flow — a sprint with no dates has\n * nothing to propose against. */\n startDate: string | null;\n endDate: string | null;\n}) {\n const { workspaceId } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n const [open, setOpen] = useState(false);\n const [calendarId, setCalendarId] = useState('');\n const [ceremonies, setCeremonies] = useState<CeremonyDraft[]>([]);\n const [submitting, setSubmitting] = useState(false);\n const [results, setResults] = useState<CeremonyResult[] | null>(null);\n const [error, setError] = useState<string | null>(null);\n\n const { data: calendarsData, loading: calendarsLoading } = useQuery<{\n calendars: { calendars: CalendarOption[] };\n }>(SCHEDULE_MEETING_CALENDARS, { variables: { pagination: { limit: 100 } }, skip: !open });\n const calendars = calendarsData?.calendars.calendars ?? [];\n\n const [createEvent] = useMutation<{ createEvent: { id: string } }>(CREATE_CALENDAR_EVENT);\n const [linkMeeting] = useMutation<{ planmagnetLinkMeeting: { id: string } }>(\n LINK_PLANMAGNET_MEETING,\n { refetchQueries: MEETING_QUERIES, awaitRefetchQueries: true }\n );\n const [deleteEvent] = useMutation<{ deleteEvent: boolean }>(DELETE_CALENDAR_EVENT);\n\n const canSchedule = Boolean(startDate && endDate);\n\n const openDialog = (next: boolean) => {\n setOpen(next);\n setError(null);\n setResults(null);\n setSubmitting(false);\n if (next && startDate && endDate) {\n setCeremonies(defaultCeremonies(startDate, endDate));\n setCalendarId('');\n }\n };\n\n const updateCeremony = (key: CeremonyDraft['key'], patch: Partial<CeremonyDraft>) =>\n setCeremonies((prev) => prev.map((c) => (c.key === key ? { ...c, ...patch } : c)));\n\n const scheduleAll = async () => {\n if (!workspaceId || !calendarId || !startDate || !endDate) {\n setError('Pick a calendar first.');\n return;\n }\n setError(null);\n setSubmitting(true);\n const outcomes: CeremonyResult[] = [];\n // One at a time (not Promise.all): a partial result must still report which ceremonies actually succeeded,\n // and a later failure must never be mistaken for an earlier one.\n for (const c of ceremonies) {\n const startIso = localInputValueToISO(c.startLocal);\n if (!startIso) {\n outcomes.push({\n key: c.key,\n label: c.label,\n status: 'error',\n message: 'Invalid start time.',\n });\n continue;\n }\n const endIso = addMinutesIso(startIso, c.durationMinutes);\n // The standup's series runs through the sprint's own last day — end of that UTC calendar day, so the\n // final standup still falls on the sprint's actual end date regardless of the viewer's own time zone.\n const until = c.recurs ? new Date(`${endDate.slice(0, 10)}T23:59:59.000Z`) : null;\n const rrule = c.recurs\n ? `FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR;UNTIL=${rruleUntil(until!)}`\n : undefined;\n try {\n const meeting = await createAndLinkMeeting({\n createEvent,\n linkMeeting,\n deleteEvent,\n workspaceId,\n calendarId,\n title: c.label,\n startIso,\n endIso,\n kind: c.kind,\n projectId,\n sprintId,\n agenda: '',\n rrule,\n timezone: viewerTimeZone(),\n });\n outcomes.push({ key: c.key, label: c.label, status: 'success', meetingId: meeting.id });\n } catch (e) {\n outcomes.push({\n key: c.key,\n label: c.label,\n status: 'error',\n message: meetingScheduleErrorMessage(e),\n });\n }\n }\n setResults(outcomes);\n setSubmitting(false);\n };\n\n return (\n <ResponsiveDialog open={open} onOpenChange={openDialog}>\n <div className=\"flex flex-col items-end gap-1\">\n {/* Not wrapped together with the explanation text in one `asChild` child: that would make clicking the\n text (outside the disabled button but inside a shared wrapper) still fire the Radix trigger. A plain\n disabled <button> never dispatches a click at all, so keeping it as the trigger's one child is what\n actually blocks opening the dialog — the explanation stays a separate sibling. */}\n <ResponsiveDialogTrigger asChild>\n <Button\n size=\"sm\"\n variant=\"outline\"\n disabled={!canSchedule}\n data-testid=\"schedule-ceremonies-trigger\"\n >\n <CalendarRange className=\"mr-1 h-4 w-4\" />\n Schedule ceremonies\n </Button>\n </ResponsiveDialogTrigger>\n {!canSchedule && (\n <span className=\"text-xs text-muted-foreground text-right max-w-[14rem]\">\n Set this sprint&apos;s start and end dates to propose its ceremonies.\n </span>\n )}\n </div>\n <ResponsiveDialogContent className=\"max-w-xl\">\n <ResponsiveDialogHeader>\n <ResponsiveDialogTitle>Schedule ceremonies</ResponsiveDialogTitle>\n <ResponsiveDialogDescription>\n Planning at the sprint&apos;s start, a weekday daily standup through its length, and\n Review + Retrospective at its end. Edit any time before scheduling.\n </ResponsiveDialogDescription>\n </ResponsiveDialogHeader>\n {results ? (\n <div className=\"space-y-2\" data-testid=\"schedule-ceremonies-results\">\n {results.map((r) => (\n <div\n key={r.key}\n className=\"flex items-center justify-between gap-2 rounded-md border p-2 text-sm\"\n data-testid=\"schedule-ceremonies-result-row\"\n >\n <span className=\"flex items-center gap-2\">\n {r.status === 'success' ? (\n <CheckCircle2 className=\"h-4 w-4 text-status-success-text\" />\n ) : (\n <XCircle className=\"h-4 w-4 text-destructive\" />\n )}\n {r.label}\n </span>\n {r.status === 'success' ? (\n <button\n type=\"button\"\n className=\"text-primary hover:underline\"\n onClick={() => {\n setOpen(false);\n navigate(detailPath('/meetings/meeting-detail-page', r.meetingId));\n }}\n >\n View\n </button>\n ) : (\n <span className=\"text-destructive text-xs\">{r.message}</span>\n )}\n </div>\n ))}\n </div>\n ) : (\n <div className=\"space-y-3\">\n <div>\n <label htmlFor=\"ceremonies-calendar\" className=\"text-sm font-medium\">\n Calendar\n </label>\n <select\n id=\"ceremonies-calendar\"\n className={fieldClass}\n value={calendarId}\n disabled={calendarsLoading}\n onChange={(e) => setCalendarId(e.target.value)}\n data-testid=\"ceremonies-calendar\"\n >\n <option value=\"\">\n {calendarsLoading ? 'Loading calendars…' : 'Choose a calendar'}\n </option>\n {calendars.map((c) => (\n <option key={c.id} value={c.id}>\n {c.name}\n {c.isDefault ? ' (default)' : ''}\n </option>\n ))}\n </select>\n </div>\n {ceremonies.map((c) => (\n <div key={c.key} className=\"grid grid-cols-[1fr_auto_auto] items-end gap-2\">\n <div>\n <label\n htmlFor={`ceremony-start-${c.key}`}\n className=\"text-xs text-muted-foreground\"\n >\n {c.label}\n {c.recurs ? ' (weekdays, first occurrence)' : ''}\n </label>\n <Input\n id={`ceremony-start-${c.key}`}\n type=\"datetime-local\"\n className=\"mt-1\"\n value={c.startLocal}\n onChange={(e) => updateCeremony(c.key, { startLocal: e.target.value })}\n data-testid={`ceremony-start-${c.key}`}\n />\n </div>\n <div>\n <label\n htmlFor={`ceremony-duration-${c.key}`}\n className=\"text-xs text-muted-foreground\"\n >\n Duration\n </label>\n <select\n id={`ceremony-duration-${c.key}`}\n className={fieldClass}\n value={c.durationMinutes}\n onChange={(e) =>\n updateCeremony(c.key, { durationMinutes: Number(e.target.value) })\n }\n data-testid={`ceremony-duration-${c.key}`}\n >\n {DURATION_OPTIONS_MINUTES.map((m) => (\n <option key={m} value={m}>\n {m}m\n </option>\n ))}\n </select>\n </div>\n </div>\n ))}\n {error && <ErrorLine message={error} />}\n </div>\n )}\n <ResponsiveDialogFooter>\n <Button variant=\"outline\" onClick={() => setOpen(false)}>\n {results ? 'Close' : 'Cancel'}\n </Button>\n {!results && (\n <Button\n onClick={() => void scheduleAll()}\n disabled={submitting || !calendarId}\n data-testid=\"schedule-ceremonies-submit\"\n >\n {submitting ? 'Scheduling…' : `Schedule ${ceremonies.length} ceremonies`}\n </Button>\n )}\n </ResponsiveDialogFooter>\n </ResponsiveDialogContent>\n </ResponsiveDialog>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScheduleMeetingDialog.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/meetings/ScheduleMeetingDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAkBjD,OAAO,EAEL,KAAK,WAAW,EAWjB,MAAM,gBAAgB,CAAC;AA0BxB,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,QAAe,EACf,WAAkB,EAClB,WAAqB,EACrB,QAAgB,EAChB,YAAiB,EACjB,OAAO,EACP,YAAiC,EACjC,WAAW,GACZ,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,wFAAwF;IACxF,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,+GAA+G;IAC/G,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACjD,2CAqRA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScheduleMeetingDialog.js","names":[],"sources":["../../../src/planmagnet/meetings/ScheduleMeetingDialog.tsx"],"sourcesContent":["import { useState, type ReactNode } from 'react';\nimport { useMutation, useQuery } from '@apollo/client/react';\nimport {\n Button,\n Input,\n Textarea,\n ResponsiveDialog,\n ResponsiveDialogContent,\n ResponsiveDialogDescription,\n ResponsiveDialogFooter,\n ResponsiveDialogHeader,\n ResponsiveDialogTitle,\n ResponsiveDialogTrigger,\n} from '@burdenoff/fe-libs/ui';\nimport { CalendarPlus } from 'lucide-react';\nimport { usePlanMagnet } from '../providers/PlanMagnetProvider';\nimport { enumLabel } from '../controls/WorkItemControls';\nimport { ErrorLine } from '../controls/ConfirmButton';\nimport {\n MEETING_KINDS,\n type MeetingKind,\n RECURRENCE_OPTIONS,\n RECURRENCE_LABELS,\n type RecurrenceOption,\n DURATION_OPTIONS_MINUTES,\n localInputValueToISO,\n addMinutesIso,\n defaultLocalStart,\n viewerTimeZone,\n buildRRule,\n validateMeetingDraft,\n} from './meetingModel';\nimport {\n SCHEDULE_MEETING_CALENDARS,\n CREATE_CALENDAR_EVENT,\n DELETE_CALENDAR_EVENT,\n LINK_PLANMAGNET_MEETING,\n MEETING_QUERIES,\n} from './meetingGraphql';\nimport { createAndLinkMeeting, meetingScheduleErrorMessage } from './meetingActions';\n\n/**\n * Reusable \"schedule a meeting\" dialog (GAP-06, CWF-22). Opened with a FIXED project and an optional sprint or\n * milestone — see `createAndLinkMeeting` for the create-event-then-link flow, including what happens when the\n * link is refused after the calendar event was already created.\n */\n\nconst fieldClass =\n 'mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm disabled:opacity-60';\n\ninterface CalendarOption {\n id: string;\n name: string;\n isDefault: boolean;\n calendarType: string;\n}\n\nexport function ScheduleMeetingDialog({\n projectId,\n sprintId = null,\n milestoneId = null,\n defaultKind = 'OTHER',\n lockKind = false,\n defaultTitle = '',\n trigger,\n triggerLabel = 'Schedule meeting',\n onScheduled,\n}: {\n projectId: string;\n sprintId?: string | null;\n milestoneId?: string | null;\n /** Pre-selects a kind — e.g. MILESTONE_CELEBRATION/DEMO from a milestone's own page. */\n defaultKind?: MeetingKind;\n /** Hides the kind picker, for a trigger whose kind the context already decided (Schedule celebration/demo). */\n lockKind?: boolean;\n defaultTitle?: string;\n trigger?: ReactNode;\n triggerLabel?: string;\n onScheduled?: (meeting: { id: string }) => void;\n}) {\n const { workspaceId } = usePlanMagnet();\n const [open, setOpen] = useState(false);\n const [title, setTitle] = useState(defaultTitle);\n const [kind, setKind] = useState<MeetingKind>(defaultKind);\n const [calendarId, setCalendarId] = useState('');\n const [startLocal, setStartLocal] = useState<string>(() => defaultLocalStart());\n const [duration, setDuration] = useState<number>(30);\n const [recurrence, setRecurrence] = useState<RecurrenceOption>('NONE');\n const [agenda, setAgenda] = useState('');\n const [error, setError] = useState<string | null>(null);\n const [submitting, setSubmitting] = useState(false);\n\n const { data: calendarsData, loading: calendarsLoading } = useQuery<{\n calendars: { calendars: CalendarOption[]; total: number };\n }>(SCHEDULE_MEETING_CALENDARS, {\n variables: { pagination: { limit: 100 } },\n skip: !open,\n });\n const calendars = calendarsData?.calendars.calendars ?? [];\n // The workspace default calendar, derived rather than synced through an effect: `calendarId` only ever holds\n // an EXPLICIT user choice (empty until they pick one), and this fills in the default for both the `<select>`\n // and submission until they do — so the default appears the moment calendars arrive, with no separate\n // render pass, and never fights a choice the user already made.\n const defaultCalendarId = (calendars.find((c) => c.isDefault) ?? calendars[0])?.id ?? '';\n const effectiveCalendarId = calendarId || defaultCalendarId;\n\n const [createEvent] = useMutation<{ createEvent: { id: string } }>(CREATE_CALENDAR_EVENT);\n const [linkMeeting] = useMutation<{ planmagnetLinkMeeting: { id: string } }>(\n LINK_PLANMAGNET_MEETING,\n { refetchQueries: MEETING_QUERIES, awaitRefetchQueries: true }\n );\n const [deleteEvent] = useMutation<{ deleteEvent: boolean }>(DELETE_CALENDAR_EVENT);\n\n const reset = () => {\n setTitle(defaultTitle);\n setKind(defaultKind);\n setCalendarId('');\n setStartLocal(defaultLocalStart());\n setDuration(30);\n setRecurrence('NONE');\n setAgenda('');\n setError(null);\n };\n\n const schedule = async () => {\n const problem = validateMeetingDraft({\n title,\n calendarId: effectiveCalendarId,\n startLocal,\n durationMinutes: duration,\n kind,\n milestoneId,\n });\n if (problem) {\n setError(problem);\n return;\n }\n const startIso = localInputValueToISO(startLocal);\n if (!startIso || !workspaceId) {\n setError('Pick a start time.');\n return;\n }\n setError(null);\n setSubmitting(true);\n try {\n const endIso = addMinutesIso(startIso, duration);\n const rrule = buildRRule(recurrence, startLocal);\n const meeting = await createAndLinkMeeting({\n createEvent,\n linkMeeting,\n deleteEvent,\n workspaceId,\n calendarId: effectiveCalendarId,\n title: title.trim(),\n startIso,\n endIso,\n kind,\n projectId,\n sprintId,\n milestoneId,\n agenda: agenda.trim(),\n rrule,\n timezone: viewerTimeZone(),\n });\n setOpen(false);\n reset();\n onScheduled?.(meeting);\n } catch (e) {\n setError(meetingScheduleErrorMessage(e));\n } finally {\n setSubmitting(false);\n }\n };\n\n const noCalendars = open && !calendarsLoading && calendars.length === 0;\n const contextLabel = milestoneId ? 'milestone' : sprintId ? 'sprint' : 'project';\n\n return (\n <ResponsiveDialog\n open={open}\n onOpenChange={(next) => {\n setOpen(next);\n if (next) reset();\n else setError(null);\n }}\n >\n <ResponsiveDialogTrigger asChild>\n {trigger ?? (\n <Button size=\"sm\" variant=\"outline\" data-testid=\"schedule-meeting-trigger\">\n <CalendarPlus className=\"mr-1 h-4 w-4\" />\n {triggerLabel}\n </Button>\n )}\n </ResponsiveDialogTrigger>\n <ResponsiveDialogContent className=\"max-w-lg\">\n <ResponsiveDialogHeader>\n <ResponsiveDialogTitle>Schedule a meeting</ResponsiveDialogTitle>\n <ResponsiveDialogDescription>\n Creates a calendar event and links it to this {contextLabel}.\n </ResponsiveDialogDescription>\n </ResponsiveDialogHeader>\n {noCalendars ? (\n <div className=\"space-y-2 text-sm\" data-testid=\"schedule-meeting-no-calendars\">\n <p className=\"text-muted-foreground\">\n You have no calendars yet. Create one in Calendar settings, then come back to schedule\n this meeting.\n </p>\n <a\n href=\"/calendar/settings\"\n className=\"text-primary hover:underline\"\n data-testid=\"schedule-meeting-calendar-settings-link\"\n >\n Open Calendar settings\n </a>\n </div>\n ) : (\n <div className=\"space-y-3\">\n <div>\n <label htmlFor=\"schedule-meeting-title\" className=\"text-sm font-medium\">\n Title\n </label>\n <Input\n id=\"schedule-meeting-title\"\n className=\"mt-1\"\n value={title}\n onChange={(e) => setTitle(e.target.value)}\n data-testid=\"schedule-meeting-title\"\n />\n </div>\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <label htmlFor=\"schedule-meeting-kind\" className=\"text-sm font-medium\">\n Kind\n </label>\n <select\n id=\"schedule-meeting-kind\"\n className={fieldClass}\n value={kind}\n disabled={lockKind}\n onChange={(e) => setKind(e.target.value as MeetingKind)}\n data-testid=\"schedule-meeting-kind\"\n >\n {MEETING_KINDS.map((k) => (\n <option key={k} value={k}>\n {enumLabel(k)}\n </option>\n ))}\n </select>\n </div>\n <div>\n <label htmlFor=\"schedule-meeting-calendar\" className=\"text-sm font-medium\">\n Calendar\n </label>\n <select\n id=\"schedule-meeting-calendar\"\n className={fieldClass}\n value={effectiveCalendarId}\n disabled={calendarsLoading}\n onChange={(e) => setCalendarId(e.target.value)}\n data-testid=\"schedule-meeting-calendar\"\n >\n {calendarsLoading && <option value=\"\">Loading calendars…</option>}\n {calendars.map((c) => (\n <option key={c.id} value={c.id}>\n {c.name}\n {c.isDefault ? ' (default)' : ''}\n </option>\n ))}\n </select>\n </div>\n </div>\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <label htmlFor=\"schedule-meeting-start\" className=\"text-sm font-medium\">\n Start\n </label>\n <Input\n id=\"schedule-meeting-start\"\n type=\"datetime-local\"\n className=\"mt-1\"\n value={startLocal}\n onChange={(e) => setStartLocal(e.target.value)}\n data-testid=\"schedule-meeting-start\"\n />\n </div>\n <div>\n <label htmlFor=\"schedule-meeting-duration\" className=\"text-sm font-medium\">\n Duration\n </label>\n <select\n id=\"schedule-meeting-duration\"\n className={fieldClass}\n value={duration}\n onChange={(e) => setDuration(Number(e.target.value))}\n data-testid=\"schedule-meeting-duration\"\n >\n {DURATION_OPTIONS_MINUTES.map((m) => (\n <option key={m} value={m}>\n {m < 60 ? `${m} minutes` : `${m / 60} hour${m === 60 ? '' : 's'}`}\n </option>\n ))}\n </select>\n </div>\n </div>\n <div>\n <label htmlFor=\"schedule-meeting-recurrence\" className=\"text-sm font-medium\">\n Repeats\n </label>\n <select\n id=\"schedule-meeting-recurrence\"\n className={fieldClass}\n value={recurrence}\n onChange={(e) => setRecurrence(e.target.value as RecurrenceOption)}\n data-testid=\"schedule-meeting-recurrence\"\n >\n {RECURRENCE_OPTIONS.map((r) => (\n <option key={r} value={r}>\n {RECURRENCE_LABELS[r]}\n </option>\n ))}\n </select>\n </div>\n <div>\n <label htmlFor=\"schedule-meeting-agenda\" className=\"text-sm font-medium\">\n Agenda (optional)\n </label>\n <Textarea\n id=\"schedule-meeting-agenda\"\n className=\"mt-1 min-h-[72px]\"\n value={agenda}\n onChange={(e) => setAgenda(e.target.value)}\n data-testid=\"schedule-meeting-agenda\"\n />\n </div>\n {error && <ErrorLine message={error} />}\n </div>\n )}\n <ResponsiveDialogFooter>\n <Button variant=\"outline\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n {!noCalendars && (\n <Button\n onClick={() => void schedule()}\n // Not before the calendars have loaded: until then the default calendar is unknown, and a click\n // would be refused with \"Pick a calendar.\" just before the default appears in the picker.\n disabled={submitting || calendarsLoading || !effectiveCalendarId}\n data-testid=\"schedule-meeting-submit\"\n >\n {submitting ? 'Scheduling…' : 'Schedule meeting'}\n </Button>\n )}\n </ResponsiveDialogFooter>\n </ResponsiveDialogContent>\n </ResponsiveDialog>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"UnlinkMeetingDialog.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/meetings/UnlinkMeetingDialog.tsx"],"names":[],"mappings":"AAwBA;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,eAAe,EACf,YAAY,EACZ,UAAU,GACX,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,2CA6GA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"UnlinkMeetingDialog.js","names":[],"sources":["../../../src/planmagnet/meetings/UnlinkMeetingDialog.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useApolloClient, useMutation } from '@apollo/client/react';\nimport { clearGraphqlFetchResponseCache } from '@burdenoff/fe-libs/shared/graphql';\nimport {\n Button,\n Checkbox,\n ResponsiveDialog,\n ResponsiveDialogContent,\n ResponsiveDialogDescription,\n ResponsiveDialogFooter,\n ResponsiveDialogHeader,\n ResponsiveDialogTitle,\n ResponsiveDialogTrigger,\n} from '@burdenoff/fe-libs/ui';\nimport { Unlink } from 'lucide-react';\nimport { ErrorLine } from '../controls/ConfirmButton';\nimport { throwOnError, LEAVES_PAGE_CONTEXT } from '../utils/mutationResult';\nimport { mutationErrorMessage } from '../utils/graphqlErrors';\nimport {\n UNLINK_PLANMAGNET_MEETING,\n DELETE_CALENDAR_EVENT,\n MEETING_QUERIES,\n} from './meetingGraphql';\n\n/**\n * Unlinking a meeting removes PlanMagnet's own record of it (agenda/notes/action-item links) but — by\n * default — leaves the calendar event itself alone, since the event may still matter to its attendees even\n * once PlanMagnet stops tracking it. The opt-in checkbox deletes that event too, AS THE USER (same\n * `deleteEvent` the create-link compensation path uses), so an \"also delete\" refusal is shown exactly like any\n * other mutation refusal rather than silently leaving the event behind.\n */\nexport function UnlinkMeetingDialog({\n meetingId,\n calendarEventId,\n meetingTitle,\n onUnlinked,\n}: {\n meetingId: string;\n calendarEventId: string;\n meetingTitle: string;\n onUnlinked: () => void;\n}) {\n const [open, setOpen] = useState(false);\n const [alsoDeleteEvent, setAlsoDeleteEvent] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const client = useApolloClient();\n // Excludes 'GetPlanmagnetMeeting' — this PAGE's own query, for the meeting we are about to leave. Refetching\n // it would re-run against a now-unlinked meeting (see `LEAVES_PAGE_CONTEXT`'s doc comment); the list page\n // this navigates to reads 'ListPlanmagnetMeetings' fresh on its own mount regardless. That reasoning only\n // holds on the SUCCESS path, though — when the opt-in `deleteEvent` compensation below fails, we deliberately\n // stay on this page, and `GetPlanmagnetMeeting` is force-refetched there instead (see that catch block).\n const [unlink, unlinkState] = useMutation(UNLINK_PLANMAGNET_MEETING, {\n refetchQueries: MEETING_QUERIES.filter((q) => q !== 'GetPlanmagnetMeeting'),\n context: LEAVES_PAGE_CONTEXT,\n });\n // Only ever called right after a successful unlink, on the way OUT of this page (see `confirm` below) — same\n // `LEAVES_PAGE_CONTEXT` reasoning as `unlink` above applies here too.\n const [deleteEvent, deleteState] = useMutation(DELETE_CALENDAR_EVENT, {\n context: LEAVES_PAGE_CONTEXT,\n });\n const busy = unlinkState.loading || deleteState.loading;\n\n const confirm = async () => {\n setError(null);\n try {\n await throwOnError(unlink({ variables: { id: meetingId } }));\n } catch (e) {\n setError(mutationErrorMessage(e, 'The meeting could not be unlinked.'));\n return;\n }\n if (alsoDeleteEvent) {\n try {\n await throwOnError(\n // No scope: the calendar refuses ALL_EVENTS on a recurring event, and its default delete removes the\n // whole event, series included (see meetingActions.ts).\n deleteEvent({ variables: { id: calendarEventId } })\n );\n } catch (e) {\n // The unlink already succeeded — say so, rather than leaving a \"nothing happened\" impression when\n // PlanMagnet in fact no longer tracks this meeting; only the calendar event itself stayed behind.\n // Force this page's own `GetPlanmagnetMeeting` to refetch now (it was deliberately excluded from\n // `unlink`'s refetchQueries above, for the success path that navigates away before a refetch would\n // matter — this path doesn't navigate away, so the page must not keep showing the fully-populated,\n // now-stale meeting). `planmagnetMeeting(id)` is nullable and resolves to null for an unlinked\n // meeting, so this refetch falls through to the page's existing \"Meeting not found\" state. The cache\n // drop must come first: fe-libs' 15 s fetch-layer response cache would otherwise replay the\n // pre-unlink read if the refetch lands inside that window (same reasoning as `useLiveRefresh.ts`).\n clearGraphqlFetchResponseCache();\n void client.refetchQueries({ include: ['GetPlanmagnetMeeting'] });\n setError(\n `This meeting was unlinked, but the calendar event could not be deleted: ` +\n mutationErrorMessage(e, 'unknown reason')\n );\n return;\n }\n }\n setOpen(false);\n onUnlinked();\n };\n\n return (\n <ResponsiveDialog\n open={open}\n onOpenChange={(next) => {\n setOpen(next);\n if (!next) {\n setAlsoDeleteEvent(false);\n setError(null);\n }\n }}\n >\n <ResponsiveDialogTrigger asChild>\n <Button size=\"sm\" variant=\"outline\" data-testid=\"unlink-meeting-trigger\">\n <Unlink className=\"mr-1 h-4 w-4\" />\n Unlink\n </Button>\n </ResponsiveDialogTrigger>\n <ResponsiveDialogContent>\n <ResponsiveDialogHeader>\n <ResponsiveDialogTitle>Unlink &quot;{meetingTitle}&quot;?</ResponsiveDialogTitle>\n <ResponsiveDialogDescription>\n PlanMagnet stops tracking this meeting — its agenda, notes and action-item links are\n gone. The calendar event itself stays, unless you also delete it below.\n </ResponsiveDialogDescription>\n </ResponsiveDialogHeader>\n <label className=\"flex cursor-pointer items-start gap-2 text-sm\">\n <Checkbox\n checked={alsoDeleteEvent}\n onCheckedChange={(checked) => setAlsoDeleteEvent(checked === true)}\n data-testid=\"unlink-meeting-also-delete-event\"\n />\n <span>Also delete the calendar event (cannot be undone here).</span>\n </label>\n {error && <ErrorLine message={error} />}\n <ResponsiveDialogFooter>\n <Button variant=\"outline\" onClick={() => setOpen(false)} disabled={busy}>\n Keep it\n </Button>\n <Button\n onClick={() => void confirm()}\n disabled={busy}\n className=\"bg-destructive text-destructive-foreground hover:bg-destructive/90\"\n data-testid=\"unlink-meeting-confirm\"\n >\n {busy ? 'Unlinking…' : 'Unlink meeting'}\n </Button>\n </ResponsiveDialogFooter>\n </ResponsiveDialogContent>\n </ResponsiveDialog>\n );\n}\n"],"mappings":";;;;;;;;;;;AA+BA,SAAgB,EAAoB,EAClC,cACA,oBACA,iBACA,iBAMC;CACD,IAAM,CAAC,GAAM,KAAW,EAAS,GAAM,EACjC,CAAC,GAAiB,KAAsB,EAAS,GAAM,EACvD,CAAC,GAAO,KAAY,EAAwB,KAAK,EACjD,IAAS,GAAiB,EAM1B,CAAC,GAAQ,KAAe,EAAY,GAA2B;EACnE,gBAAgB,EAAgB,QAAQ,MAAM,MAAM,uBAAuB;EAC3E,SAAS;EACV,CAAC,EAGI,CAAC,GAAa,KAAe,EAAY,GAAuB,EACpE,SAAS,GACV,CAAC,EACI,IAAO,EAAY,WAAW,EAAY,SAE1C,IAAU,YAAY;AAC1B,IAAS,KAAK;AACd,MAAI;AACF,SAAM,EAAa,EAAO,EAAE,WAAW,EAAE,IAAI,GAAW,EAAE,CAAC,CAAC;WACrD,GAAG;AACV,KAAS,EAAqB,GAAG,qCAAqC,CAAC;AACvE;;AAEF,MAAI,EACF,KAAI;AACF,SAAM,EAGJ,EAAY,EAAE,WAAW,EAAE,IAAI,GAAiB,EAAE,CAAC,CACpD;WACM,GAAG;AAYV,GAFA,GAAgC,EAC3B,EAAO,eAAe,EAAE,SAAS,CAAC,uBAAuB,EAAE,CAAC,EACjE,EACE,6EACE,EAAqB,GAAG,iBAAiB,CAC5C;AACD;;AAIJ,EADA,EAAQ,GAAM,EACd,GAAY;;AAGd,QACE,kBAAC,GAAD;EACQ;EACN,eAAe,MAAS;AAEtB,GADA,EAAQ,EAAK,EACR,MACH,EAAmB,GAAM,EACzB,EAAS,KAAK;;YANpB,CAUE,kBAAC,GAAD;GAAyB,SAAA;aACvB,kBAAC,GAAD;IAAQ,MAAK;IAAK,SAAQ;IAAU,eAAY;cAAhD,CACE,kBAAC,GAAD,EAAQ,WAAU,gBAAiB,CAAA,EAAA,SAE5B;;GACe,CAAA,EAC1B,kBAAC,GAAD,EAAA,UAAA;GACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UAAA;IAAuB;IAAc;IAAa;IAA+B,EAAA,CAAA,EACjF,kBAAC,GAAD,EAAA,UAA6B,gKAGC,CAAA,CACP,EAAA,CAAA;GACzB,kBAAC,SAAD;IAAO,WAAU;cAAjB,CACE,kBAAC,GAAD;KACE,SAAS;KACT,kBAAkB,MAAY,EAAmB,MAAY,GAAK;KAClE,eAAY;KACZ,CAAA,EACF,kBAAC,QAAD,EAAA,UAAM,2DAA8D,CAAA,CAC9D;;GACP,KAAS,kBAAC,GAAD,EAAW,SAAS,GAAS,CAAA;GACvC,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;IAAQ,SAAQ;IAAU,eAAe,EAAQ,GAAM;IAAE,UAAU;cAAM;IAEhE,CAAA,EACT,kBAAC,GAAD;IACE,eAAe,KAAK,GAAS;IAC7B,UAAU;IACV,WAAU;IACV,eAAY;cAEX,IAAO,eAAe;IAChB,CAAA,CACc,EAAA,CAAA;GACD,EAAA,CAAA,CACT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"meetingActions.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/meetings/meetingActions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;yEACyE;AACzE,KAAK,QAAQ,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE;IAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,KAAK,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAEjD,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,QAAQ,CAAC;QAAE,WAAW,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;IACvD,WAAW,EAAE,QAAQ,CAAC;QAAE,qBAAqB,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;IACjE,WAAW,EAAE,QAAQ,CAAC;QAAE,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAoDjG;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAE9D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"meetingActions.js","names":[],"sources":["../../../src/planmagnet/meetings/meetingActions.ts"],"sourcesContent":["import { throwOnError } from '../utils/mutationResult';\nimport { mutationErrorMessage } from '../utils/graphqlErrors';\nimport type { MeetingKind } from './meetingModel';\n\n/** The slice of an Apollo `useMutation` tuple's first element this helper needs — typed narrowly so a caller can\n * pass its real mutate function straight through without an adapter. */\ntype MutateFn<TData> = (options: {\n variables: Record<string, unknown>;\n}) => Promise<{ data?: TData; error?: unknown }>;\n\nexport interface CreateAndLinkMeetingParams {\n createEvent: MutateFn<{ createEvent: { id: string } }>;\n linkMeeting: MutateFn<{ planmagnetLinkMeeting: { id: string } }>;\n deleteEvent: MutateFn<{ deleteEvent: boolean }>;\n workspaceId: string;\n calendarId: string;\n title: string;\n startIso: string;\n endIso: string;\n kind: MeetingKind;\n projectId: string;\n sprintId?: string | null;\n milestoneId?: string | null;\n agenda?: string;\n rrule?: string;\n timezone: string;\n}\n\n/**\n * Creates the calendar event AS THE USER, then records the PlanMagnet link — the architecture every meeting\n * feature in this MFE is built on (`PlanmagnetMeeting`'s doc comment, `graphql/wspace.graphql`:\n * `planmagnetLinkMeeting` \"never calls the Calendar API itself; it only validates and stores the link\").\n *\n * If the link is refused, the event just created is deleted (best-effort, with no scope: the platform calendar\n * refuses `ALL_EVENTS` on a recurring event — \"not yet fully implemented\" — while its default delete removes the\n * whole event, series included; verified in prod 2026-10-01) so a failed \"schedule\" never leaves an orphaned\n * calendar event behind. A compensation failure is swallowed deliberately: the caller must see the LINK refusal (the real\n * reason scheduling failed), never a secondary \"cleanup also failed\" message in its place.\n *\n * Both call sites (`ScheduleMeetingDialog`, `ScheduleCeremoniesDialog`) await this already wrapped in\n * `throwOnError` semantics — every mutation inside is itself awaited through `throwOnError`, so nothing here\n * can resolve silently on a refusal.\n */\nexport async function createAndLinkMeeting(p: CreateAndLinkMeetingParams): Promise<{ id: string }> {\n const eventResult = await throwOnError(\n p.createEvent({\n variables: {\n input: {\n calendarId: p.calendarId,\n title: p.title,\n startTime: p.startIso,\n endTime: p.endIso,\n eventType: 'MEETING',\n rrule: p.rrule,\n isRecurring: Boolean(p.rrule),\n timezone: p.timezone,\n description: p.agenda || undefined,\n },\n },\n })\n );\n const calendarEventId = eventResult.data?.createEvent.id;\n if (!calendarEventId) throw new Error('The calendar event was not created.');\n\n try {\n const linkResult = await throwOnError(\n p.linkMeeting({\n variables: {\n workspaceId: p.workspaceId,\n input: {\n calendarEventId,\n title: p.title,\n kind: p.kind,\n projectId: p.projectId,\n sprintId: p.sprintId || undefined,\n milestoneId: p.milestoneId || undefined,\n startsAt: p.startIso,\n endsAt: p.endIso,\n agenda: p.agenda || undefined,\n recurrenceRule: p.rrule,\n },\n },\n })\n );\n const meeting = linkResult.data?.planmagnetLinkMeeting;\n if (!meeting) throw new Error('The meeting could not be linked.');\n return meeting;\n } catch (linkError) {\n try {\n await throwOnError(p.deleteEvent({ variables: { id: calendarEventId } }));\n } catch {\n // Best-effort compensation only — see doc comment above.\n }\n throw linkError;\n }\n}\n\nexport function meetingScheduleErrorMessage(e: unknown): string {\n return mutationErrorMessage(e, 'The meeting could not be scheduled.');\n}\n"],"mappings":";;;AA2CA,eAAsB,EAAqB,GAAwD;CAkBjG,IAAM,KAjBc,MAAM,EACxB,EAAE,YAAY,EACZ,WAAW,EACT,OAAO;EACL,YAAY,EAAE;EACd,OAAO,EAAE;EACT,WAAW,EAAE;EACb,SAAS,EAAE;EACX,WAAW;EACX,OAAO,EAAE;EACT,aAAa,EAAQ,EAAE;EACvB,UAAU,EAAE;EACZ,aAAa,EAAE,UAAU,KAAA;EAC1B,EACF,EACF,CAAC,CACH,EACmC,MAAM,YAAY;AACtD,KAAI,CAAC,EAAiB,OAAU,MAAM,sCAAsC;AAE5E,KAAI;EAoBF,IAAM,KAnBa,MAAM,EACvB,EAAE,YAAY,EACZ,WAAW;GACT,aAAa,EAAE;GACf,OAAO;IACL;IACA,OAAO,EAAE;IACT,MAAM,EAAE;IACR,WAAW,EAAE;IACb,UAAU,EAAE,YAAY,KAAA;IACxB,aAAa,EAAE,eAAe,KAAA;IAC9B,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,QAAQ,EAAE,UAAU,KAAA;IACpB,gBAAgB,EAAE;IACnB;GACF,EACF,CAAC,CACH,EAC0B,MAAM;AACjC,MAAI,CAAC,EAAS,OAAU,MAAM,mCAAmC;AACjE,SAAO;UACA,GAAW;AAClB,MAAI;AACF,SAAM,EAAa,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,GAAiB,EAAE,CAAC,CAAC;UACnE;AAGR,QAAM;;;AAIV,SAAgB,EAA4B,GAAoB;AAC9D,QAAO,EAAqB,GAAG,sCAAsC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"meetingGraphql.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/meetings/meetingGraphql.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAIH,eAAO,MAAM,0BAA0B,gCAatC,CAAC;AAEF,eAAO,MAAM,qBAAqB,gCAQjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,gCAIjC,CAAC;AAIF,kDAAkD;AAClD,eAAO,MAAM,eAAe,UAAqD,CAAC;AAElF,eAAO,MAAM,wBAAwB,gCAiCpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,gCA2ClC,CAAC;AAEF,eAAO,MAAM,uBAAuB,gCAenC,CAAC;AAEF,eAAO,MAAM,yBAAyB,gCAarC,CAAC;AAEF,eAAO,MAAM,yBAAyB,gCAIrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,gCAanC,CAAC;AAEF,eAAO,MAAM,0BAA0B,gCAItC,CAAC;AAEF,8GAA8G;AAC9G,eAAO,MAAM,+BAA+B,gCAS3C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"meetingGraphql.js","names":[],"sources":["../../../src/planmagnet/meetings/meetingGraphql.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\n/**\n * GraphQL documents for PlanMagnet meetings (GAP-06, CWF-22/23), from two different subgraphs:\n *\n * - The platform **Calendar** module (`calendars`, `createEvent`, `deleteEvent`) — a meeting's real schedule\n * lives here. The UI creates the calendar event AS THE USER, then links it below.\n * - **PlanMagnet** itself (`planmagnetMeeting(s)`, `planmagnetLinkMeeting`, `planmagnetUpdateMeeting`,\n * `planmagnetUnlinkMeeting`, the action-item mutations) — PlanMagnet-owned content (agenda/notes/kind) plus a\n * read-only snapshot of the schedule for listing/sorting. See `PlanmagnetMeeting`'s doc comment in\n * `graphql/wspace.graphql` for the full split, and `meetingActions.ts` for how the two are composed.\n *\n * Selection sets are written out in full rather than shared via fragment interpolation, same convention as\n * `reports/reportGraphql.ts` (one literal per `gql` call; validated by `bun run validate:schema` against\n * `graphql/wspace.graphql`).\n */\n\n// ─── Platform Calendar ──────────────────────────────────────────────────────────────────────────────────────\n\nexport const SCHEDULE_MEETING_CALENDARS = gql`\n query ScheduleMeetingCalendars($pagination: CalendarPaginationInput) {\n calendars(pagination: $pagination) {\n calendars {\n id\n name\n isDefault\n calendarType\n }\n hasMore\n total\n }\n }\n`;\n\nexport const CREATE_CALENDAR_EVENT = gql`\n mutation ScheduleMeetingCreateEvent($input: CreateEventInput!) {\n createEvent(input: $input) {\n id\n startTime\n endTime\n }\n }\n`;\n\nexport const DELETE_CALENDAR_EVENT = gql`\n mutation ScheduleMeetingDeleteEvent($id: ID!, $scope: UpdateScope) {\n deleteEvent(id: $id, scope: $scope)\n }\n`;\n\n// ─── PlanMagnet meetings ────────────────────────────────────────────────────────────────────────────────────\n\n/** Every query a meeting write should refresh. */\nexport const MEETING_QUERIES = ['ListPlanmagnetMeetings', 'GetPlanmagnetMeeting'];\n\nexport const LIST_PLANMAGNET_MEETINGS = gql`\n query ListPlanmagnetMeetings(\n $workspaceId: ID!\n $filter: PlanmagnetMeetingFilter\n $pagination: PlanmagnetPaginationInput\n ) {\n planmagnetMeetings(workspaceId: $workspaceId, filter: $filter, pagination: $pagination) {\n items {\n id\n title\n kind\n startsAt\n endsAt\n calendarEventId\n recurrenceRule\n projectId\n project {\n id\n name\n }\n sprintId\n milestoneId\n actionItems {\n id\n }\n }\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n`;\n\nexport const GET_PLANMAGNET_MEETING = gql`\n query GetPlanmagnetMeeting($id: ID!) {\n planmagnetMeeting(id: $id) {\n id\n title\n kind\n agenda\n notes\n startsAt\n endsAt\n calendarEventId\n recurrenceRule\n projectId\n project {\n id\n name\n }\n sprintId\n sprint {\n id\n name\n }\n milestoneId\n milestone {\n id\n name\n }\n createdBy\n createdAt\n updatedBy\n updatedAt\n actionItems {\n id\n workItemId\n workItem {\n id\n key\n title\n status\n }\n }\n }\n }\n`;\n\nexport const LINK_PLANMAGNET_MEETING = gql`\n mutation ScheduleMeetingLink($workspaceId: ID!, $input: PlanmagnetLinkMeetingInput!) {\n planmagnetLinkMeeting(workspaceId: $workspaceId, input: $input) {\n id\n title\n kind\n startsAt\n endsAt\n calendarEventId\n recurrenceRule\n projectId\n sprintId\n milestoneId\n }\n }\n`;\n\nexport const UPDATE_PLANMAGNET_MEETING = gql`\n mutation MeetingDetailUpdate($id: ID!, $input: PlanmagnetUpdateMeetingInput!) {\n planmagnetUpdateMeeting(id: $id, input: $input) {\n id\n title\n kind\n agenda\n notes\n startsAt\n endsAt\n recurrenceRule\n }\n }\n`;\n\nexport const UNLINK_PLANMAGNET_MEETING = gql`\n mutation MeetingDetailUnlink($id: ID!) {\n planmagnetUnlinkMeeting(id: $id)\n }\n`;\n\nexport const ADD_MEETING_ACTION_ITEM = gql`\n mutation MeetingAddActionItem($meetingId: ID!, $workItemId: ID!) {\n planmagnetAddMeetingActionItem(meetingId: $meetingId, workItemId: $workItemId) {\n id\n workItemId\n workItem {\n id\n key\n title\n status\n }\n }\n }\n`;\n\nexport const REMOVE_MEETING_ACTION_ITEM = gql`\n mutation MeetingRemoveActionItem($meetingId: ID!, $workItemId: ID!) {\n planmagnetRemoveMeetingActionItem(meetingId: $meetingId, workItemId: $workItemId)\n }\n`;\n\n/** Minimal create, for \"Add action item\" (a brand-new work item attached to the meeting it was raised in). */\nexport const CREATE_MEETING_ACTION_WORK_ITEM = gql`\n mutation MeetingCreateActionWorkItem($input: PlanmagnetCreateWorkItemInput!) {\n planmagnetCreateWorkItem(input: $input) {\n id\n key\n title\n status\n }\n }\n`;\n"],"mappings":";;AAmBA,IAAa,IAA6B,CAAG;;;;;;;;;;;;;GAehC,IAAwB,CAAG;;;;;;;;GAU3B,IAAwB,CAAG;;;;GAS3B,IAAkB,CAAC,0BAA0B,uBAAuB,EAEpE,IAA2B,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmC9B,IAAyB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6C5B,IAA0B,CAAG;;;;;;;;;;;;;;;GAiB7B,IAA4B,CAAG;;;;;;;;;;;;;GAe/B,IAA4B,CAAG;;;;GAM/B,IAA0B,CAAG;;;;;;;;;;;;;GAe7B,IAA6B,CAAG;;;;GAOhC,IAAkC,CAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"meetingModel.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/meetings/meetingModel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;gBAEgB;AAChB,eAAO,MAAM,aAAa,uGAQhB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;oDACoD;AACpD,eAAO,MAAM,+BAA+B,EAAE,WAAW,CAAC,WAAW,CAEnE,CAAC;AAEH,eAAO,MAAM,kBAAkB,8CAA+C,CAAC;AAC/E,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAI9D,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,wBAAwB,oCAAqC,CAAC;AAI3E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAKxE;AAED;;8BAE8B;AAC9B,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIjE;AAED,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,uGAAuG;AACvG,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,IAAiB,GAAG,MAAM,CASjE;AAED;iGACiG;AACjG,wBAAgB,cAAc,IAAI,MAAM,CAMvC;AAaD;;mFAEmF;AACnF,wBAAgB,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAK9C;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,GAClB,MAAM,GAAG,SAAS,CAOpB;AAED;6DAC6D;AAC7D,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAe5E;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAWvE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"meetingModel.js","names":[],"sources":["../../../src/planmagnet/meetings/meetingModel.ts"],"sourcesContent":["/**\n * Shared types, RRULE helpers and client-side validation for PlanMagnet meetings (GAP-06, CWF-22/23).\n *\n * A meeting is scheduled through the platform Calendar module (`createEvent`) and then recorded here\n * (`planmagnetLinkMeeting`) — see `graphql/wspace.graphql`'s `PlanmagnetMeeting` doc comment and\n * `meetingActions.ts` for the \"who creates the calendar event\" split this file's helpers serve.\n */\n\n/** Mirrors `PlanmagnetMeetingKind` (graphql/wspace.graphql). TEXT-backed server-side, not a Postgres enum, so a\n * future value never needs an `ALTER TYPE` — this list is the only client-side validator, same contract as the\n * server's. */\nexport const MEETING_KINDS = [\n 'STANDUP',\n 'PLANNING',\n 'REVIEW',\n 'RETROSPECTIVE',\n 'DEMO',\n 'MILESTONE_CELEBRATION',\n 'OTHER',\n] as const;\nexport type MeetingKind = (typeof MEETING_KINDS)[number];\n\n/** Server rule mirrored client-side (see `PlanmagnetMeetingKind.MILESTONE_CELEBRATION`'s doc comment in the\n * schema): only this kind requires a milestone. */\nexport const MEETING_KIND_REQUIRES_MILESTONE: ReadonlySet<MeetingKind> = new Set([\n 'MILESTONE_CELEBRATION',\n]);\n\nexport const RECURRENCE_OPTIONS = ['NONE', 'EVERY_WEEKDAY', 'WEEKLY'] as const;\nexport type RecurrenceOption = (typeof RECURRENCE_OPTIONS)[number];\n\nexport const RECURRENCE_LABELS: Record<RecurrenceOption, string> = {\n NONE: 'Does not repeat',\n EVERY_WEEKDAY: 'Every weekday',\n WEEKLY: 'Weekly',\n};\n\n/** Common meeting lengths, in minutes, for the duration select. */\nexport const DURATION_OPTIONS_MINUTES = [15, 30, 45, 60, 90, 120] as const;\n\nconst pad = (n: number): string => String(n).padStart(2, '0');\n\n/**\n * An ISO (UTC) instant -> the value a `<input type=\"datetime-local\">` needs, in the VIEWER's own zone. Distinct\n * from `timeShared.ts`'s `toDateInputValue`, which is for pure calendar-day fields and stays UTC — a meeting's\n * start is a real moment, read in local wall-clock time (repo convention: moments show local, calendar days\n * show UTC).\n */\nexport function toLocalInputValue(iso: string | null | undefined): string {\n if (!iso) return '';\n const d = new Date(iso);\n if (Number.isNaN(d.getTime())) return '';\n return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}T${pad(d.getHours())}:${pad(d.getMinutes())}`;\n}\n\n/** The reverse of `toLocalInputValue`: a `datetime-local` value (viewer's local wall-clock, no zone suffix) -> an\n * ISO UTC instant for the wire. `Date` parses a zone-less date-time string as local time, which is exactly the\n * conversion wanted here. */\nexport function localInputValueToISO(value: string): string | null {\n if (!value) return null;\n const d = new Date(value);\n return Number.isNaN(d.getTime()) ? null : d.toISOString();\n}\n\n/** `startIso` plus a duration in minutes, as an ISO UTC instant. */\nexport function addMinutesIso(startIso: string, minutes: number): string {\n return new Date(new Date(startIso).getTime() + minutes * 60_000).toISOString();\n}\n\n/** Now, rounded up to the next half hour, as a `datetime-local` value — the dialog's default start. */\nexport function defaultLocalStart(from: Date = new Date()): string {\n const d = new Date(from);\n d.setSeconds(0, 0);\n if (d.getMinutes() > 30) {\n d.setHours(d.getHours() + 1, 0, 0, 0);\n } else if (d.getMinutes() > 0) {\n d.setMinutes(30, 0, 0);\n }\n return toLocalInputValue(d.toISOString());\n}\n\n/** The viewer's IANA time zone, sent to `createEvent` so the server (and any other client) can re-derive what\n * \"every weekday\" means for this series. Falls back to UTC if the runtime cannot report one. */\nexport function viewerTimeZone(): string {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC';\n } catch {\n return 'UTC';\n }\n}\n\nconst WEEKDAY_CODES = ['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'] as const;\nconst WEEKDAY_LABELS: Record<string, string> = {\n SU: 'Sun',\n MO: 'Mon',\n TU: 'Tue',\n WE: 'Wed',\n TH: 'Thu',\n FR: 'Fri',\n SA: 'Sat',\n};\n\n/** An RFC 5545 UTC `UNTIL` value: `YYYYMMDDTHHMMSSZ`. Exported for callers (`ScheduleCeremoniesDialog`) that\n * build an UNTIL-bearing RRULE by hand rather than through `buildRRule` (the standup's UNTIL is the sprint's\n * own end day, not something the WEEKLY/EVERY_WEEKDAY picker above expresses). */\nexport function rruleUntil(until: Date): string {\n return until\n .toISOString()\n .replace(/[-:]/g, '')\n .replace(/\\.\\d{3}Z$/, 'Z');\n}\n\n/**\n * Builds the RRULE written to BOTH the calendar event (`createEvent.input.rrule`) and the link's\n * `recurrenceRule` snapshot — the two must agree, since the snapshot is display-only and the calendar event\n * stays the source of truth for the real schedule (`PlanmagnetMeeting.recurrenceRule` doc comment).\n *\n * `startLocalValue` is the `datetime-local` value the recurrence's weekday is read from (the viewer's own\n * wall-clock day — reading it from a UTC-shifted instant could land on the wrong day near midnight).\n * `until`, when given, is the last UTC instant the series may recur through (sprint ceremonies' daily standup).\n */\nexport function buildRRule(\n option: RecurrenceOption,\n startLocalValue: string,\n until?: Date | null\n): string | undefined {\n if (option === 'NONE') return undefined;\n const untilPart = until ? `;UNTIL=${rruleUntil(until)}` : '';\n if (option === 'EVERY_WEEKDAY') return `FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR${untilPart}`;\n const start = new Date(startLocalValue);\n const day = Number.isNaN(start.getTime()) ? 'MO' : WEEKDAY_CODES[start.getDay()];\n return `FREQ=WEEKLY;BYDAY=${day}${untilPart}`;\n}\n\n/** A short, human summary of a calendar RRULE snapshot (display only — see `PlanmagnetMeeting.recurrenceRule`'s\n * doc comment; the calendar event is the real schedule). */\nexport function summarizeRecurrence(rrule: string | null | undefined): string {\n if (!rrule) return 'Does not repeat';\n const byday = /BYDAY=([^;]+)/.exec(rrule)?.[1];\n const until = /UNTIL=(\\d{4})(\\d{2})(\\d{2})/.exec(rrule);\n let base: string;\n if (byday === 'MO,TU,WE,TH,FR') base = 'Every weekday';\n else if (byday) {\n base = `Weekly on ${byday\n .split(',')\n .map((d) => WEEKDAY_LABELS[d] ?? d)\n .join(', ')}`;\n } else if (/FREQ=DAILY/.test(rrule)) base = 'Daily';\n else base = 'Repeats';\n if (until) base += ` until ${until[2]}/${until[3]}/${until[1]}`;\n return base;\n}\n\nexport interface MeetingDraft {\n title: string;\n calendarId: string;\n startLocal: string;\n durationMinutes: number;\n kind: MeetingKind;\n milestoneId?: string | null;\n}\n\n/**\n * Client-side mirror of the rules `MeetingService` enforces: a calendar and a start are required to create the\n * event at all; a positive duration keeps `endsAt` structurally after `startsAt` (these dialogs only ever take a\n * start + a duration, never an independent end); `MILESTONE_CELEBRATION` requires a milestone (the schema's own\n * doc comment on that enum value). Text-length caps are deliberately NOT mirrored here — the schema documents\n * `agenda`/`notes` as \"Length-capped\" without publishing the number, so an over-length value is left to the\n * server's own refusal, shown verbatim (never a guessed client-side limit that could be wrong in either\n * direction).\n */\nexport function validateMeetingDraft(draft: MeetingDraft): string | null {\n if (!draft.title.trim()) return 'A title is required.';\n if (!draft.calendarId) return 'Pick a calendar.';\n if (!draft.startLocal) return 'Pick a start time.';\n if (!Number.isFinite(draft.durationMinutes) || draft.durationMinutes <= 0) {\n return 'Duration must be at least 1 minute.';\n }\n if (MEETING_KIND_REQUIRES_MILESTONE.has(draft.kind) && !draft.milestoneId) {\n return 'A milestone celebration needs a milestone.';\n }\n return null;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MilestoneControls.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/milestones/MilestoneControls.tsx"],"names":[],"mappings":"AA6GA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,gHAAgH;AAChH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;;;;EAmC1B;AAKD,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,SAAS,EACT,KAAK,EACL,QAAQ,GACT,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,2CAsBA;AAED,oGAAoG;AACpG,wBAAgB,uBAAuB,CAAC,EACtC,UAAU,EACV,SAAS,EACT,WAAW,GACZ,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,2CAuCA;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,iHAAiH;AACjH,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,iBAAiB,CAAA;CAAE,2CA0BjF;AAWD,4GAA4G;AAC5G,wBAAgB,sBAAsB,CAAC,EACrC,WAAW,EACX,SAAS,GACV,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,2CAkPA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MilestoneControls.js","names":[],"sources":["../../../src/planmagnet/milestones/MilestoneControls.tsx"],"sourcesContent":["import { useDeferredValue, useEffect, useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useMutation, useQuery } from '@apollo/client/react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Input,\n} from '@burdenoff/fe-libs/ui';\nimport { Plus, X } from 'lucide-react';\nimport { ErrorLine } from '../controls/ConfirmButton';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { throwOnError } from '../utils/mutationResult';\n\n/**\n * Work items grouped under a milestone (PDM-22). The service accepts only a milestone of the item's own project and\n * refuses anything else with a reason, which every control here shows. Progress is counted by the server\n * (Milestone.workItemProgress), never from the page of items the browser happens to hold.\n */\n\nconst PROJECT_MILESTONES = gql`\n query MilestoneOptions(\n $workspaceId: ID!\n $filter: PlanmagnetMilestoneFilter\n $pagination: PlanmagnetPaginationInput\n ) {\n planmagnetMilestones(workspaceId: $workspaceId, filter: $filter, pagination: $pagination) {\n items {\n id\n name\n status\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n`;\n\n/** A project's milestones are read page by page up to this many, so a picker never silently stops at the first 100. */\nconst MAX_MILESTONE_OPTIONS = 500;\n\nconst MILESTONE_ITEMS_PAGE = 50;\nconst MILESTONE_WORK_ITEMS = gql`\n query MilestoneWorkItems(\n $workspaceId: ID!\n $filter: PlanmagnetWorkItemFilter\n $pagination: PlanmagnetPaginationInput\n ) {\n planmagnetWorkItems(workspaceId: $workspaceId, filter: $filter, pagination: $pagination) {\n items {\n id\n key\n title\n status\n type\n priority\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n totalCount\n }\n }\n`;\n\nconst CANDIDATES = gql`\n query MilestoneWorkItemCandidates($workspaceId: ID!, $filter: PlanmagnetWorkItemFilter) {\n planmagnetWorkItems(workspaceId: $workspaceId, filter: $filter, pagination: { first: 20 }) {\n items {\n id\n key\n title\n status\n milestone {\n id\n name\n }\n }\n totalCount\n }\n }\n`;\n\nconst SET_MILESTONE = gql`\n mutation WorkItemSetMilestone($id: ID!, $input: PlanmagnetUpdateWorkItemInput!) {\n planmagnetUpdateWorkItem(id: $id, input: $input) {\n id\n milestoneId\n }\n }\n`;\n\n/** Every query that shows which milestone an item is in, or a milestone's items and progress. */\nconst MILESTONE_QUERIES = [\n 'GetWorkItemDetail',\n 'WorkItemActivity',\n 'GetWorkItems',\n 'MilestoneWorkItems',\n 'MilestoneWorkItemCandidates',\n 'GetMilestonesForDetail',\n 'GetMilestones',\n];\n\nexport interface MilestoneOption {\n id: string;\n name: string;\n status: string;\n}\n\n/** The milestones of one project, for a picker. Cancelled ones are left out unless one is the current value. */\nexport function useProjectMilestones(\n projectId: string | null | undefined,\n currentId?: string | null\n) {\n const { workspaceId } = usePlanMagnet();\n const { data, loading, error, fetchMore } = useQuery<{\n planmagnetMilestones: {\n items: MilestoneOption[];\n pageInfo: { hasNextPage: boolean; endCursor: string | null };\n };\n }>(PROJECT_MILESTONES, {\n variables: { workspaceId, filter: { projectId }, pagination: { first: 100 } },\n skip: !workspaceId || !projectId,\n });\n const loaded = data?.planmagnetMilestones.items ?? [];\n const hasNextPage = data?.planmagnetMilestones.pageInfo.hasNextPage ?? false;\n const endCursor = data?.planmagnetMilestones.pageInfo.endCursor ?? null;\n // Read the remaining pages of a project past 100 milestones, appending by cursor, up to the cap.\n useEffect(() => {\n if (!hasNextPage || !endCursor || loaded.length >= MAX_MILESTONE_OPTIONS) return;\n fetchMore({\n variables: { pagination: { first: 100, after: endCursor } },\n updateQuery: (prev, { fetchMoreResult }) => ({\n planmagnetMilestones: {\n ...fetchMoreResult.planmagnetMilestones,\n items: [\n ...prev.planmagnetMilestones.items,\n ...fetchMoreResult.planmagnetMilestones.items,\n ],\n },\n }),\n }).catch(() => {\n // A failed extra page leaves the milestones already loaded usable.\n });\n }, [hasNextPage, endCursor, loaded.length, fetchMore]);\n const options = loaded.filter((m) => m.status !== 'CANCELLED' || m.id === currentId);\n return { options, loading: loading && !data, error };\n}\n\nconst selectClass =\n 'mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm disabled:opacity-60';\n\n/** A form field: pick one of the project's milestones, or none. */\nexport function MilestoneSelect({\n id,\n projectId,\n value,\n onChange,\n}: {\n id: string;\n projectId: string | null | undefined;\n value: string;\n onChange: (milestoneId: string) => void;\n}) {\n const { options, loading } = useProjectMilestones(projectId, value);\n return (\n <select\n id={id}\n data-testid=\"task-milestone\"\n className={selectClass}\n value={value}\n disabled={!projectId}\n onChange={(e) => onChange(e.target.value)}\n >\n <option value=\"\">{loading ? 'Loading milestones…' : 'No milestone'}</option>\n {options.map((m) => (\n <option key={m.id} value={m.id}>\n {m.name}\n {m.status === 'COMPLETED' || m.status === 'CANCELLED'\n ? ` (${m.status.toLowerCase()})`\n : ''}\n </option>\n ))}\n </select>\n );\n}\n\n/** The task detail's inline milestone control: saves on change and shows a refusal below itself. */\nexport function WorkItemMilestoneSelect({\n workItemId,\n projectId,\n milestoneId,\n}: {\n workItemId: string;\n projectId: string;\n milestoneId: string | null;\n}) {\n const { options, loading } = useProjectMilestones(projectId, milestoneId);\n const [update, state] = useMutation(SET_MILESTONE, {\n refetchQueries: MILESTONE_QUERIES,\n awaitRefetchQueries: true,\n });\n const [error, setError] = useState<string | null>(null);\n const save = async (next: string) => {\n setError(null);\n try {\n await throwOnError(\n update({ variables: { id: workItemId, input: { milestoneId: next || null } } })\n );\n } catch (e) {\n setError(e instanceof Error ? e.message : 'The milestone could not be changed.');\n }\n };\n return (\n <div className=\"flex flex-col items-end gap-1\">\n <select\n aria-label=\"Milestone\"\n data-testid=\"task-milestone\"\n className=\"rounded-md border border-input bg-background px-2 py-1 text-sm disabled:opacity-60 max-w-[12rem]\"\n value={milestoneId ?? ''}\n disabled={state.loading}\n onChange={(e) => {\n if (e.target.value !== (milestoneId ?? '')) void save(e.target.value);\n }}\n >\n <option value=\"\">{loading ? 'Loading…' : 'No milestone'}</option>\n {options.map((m) => (\n <option key={m.id} value={m.id}>\n {m.name}\n </option>\n ))}\n </select>\n {error && <ErrorLine message={error} />}\n </div>\n );\n}\n\nexport interface MilestoneProgress {\n total: number;\n done: number;\n cancelled: number;\n open: number;\n percentComplete: number | null;\n}\n\n/** \"3 of 5 done\" with a bar. Cancelled items are shown but do not count towards the percentage (server rule). */\nexport function MilestoneProgressBar({ progress }: { progress: MilestoneProgress }) {\n if (progress.total === 0) {\n return <p className=\"text-xs text-muted-foreground\">No work items grouped under it yet.</p>;\n }\n const counted = progress.total - progress.cancelled;\n return (\n <div className=\"space-y-1\" data-testid=\"milestone-progress\">\n <div className=\"flex justify-between text-xs text-muted-foreground\">\n <span>\n {progress.done} of {counted} done\n {progress.cancelled > 0 ? ` · ${progress.cancelled} cancelled` : ''}\n </span>\n {progress.percentComplete != null && <span>{progress.percentComplete}%</span>}\n </div>\n <div\n className=\"h-2 w-full overflow-hidden rounded-full bg-muted\"\n role=\"progressbar\"\n aria-label=\"Work items done\"\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={progress.percentComplete ?? 0}\n >\n <div className=\"h-full bg-primary\" style={{ width: `${progress.percentComplete ?? 0}%` }} />\n </div>\n </div>\n );\n}\n\ninterface MilestoneWorkItem {\n id: string;\n key: string;\n title: string;\n status: string;\n type: string;\n priority: string;\n}\n\n/** The milestone detail's list of grouped work items: add from the milestone's project, or take one out. */\nexport function MilestoneWorkItemsCard({\n milestoneId,\n projectId,\n}: {\n milestoneId: string;\n projectId: string;\n}) {\n const { workspaceId } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n const [adding, setAdding] = useState(false);\n const [search, setSearch] = useState('');\n const [error, setError] = useState<string | null>(null);\n const term = useDeferredValue(search.trim());\n\n const grouped = useQuery<{\n planmagnetWorkItems: {\n items: MilestoneWorkItem[];\n pageInfo: { hasNextPage: boolean; endCursor: string | null };\n totalCount: number;\n };\n }>(MILESTONE_WORK_ITEMS, {\n variables: {\n workspaceId,\n filter: { milestoneId },\n pagination: { first: MILESTONE_ITEMS_PAGE },\n },\n skip: !workspaceId,\n });\n const items = grouped.data?.planmagnetWorkItems.items ?? [];\n const total = grouped.data?.planmagnetWorkItems.totalCount ?? 0;\n const hasMore = grouped.data?.planmagnetWorkItems.pageInfo.hasNextPage ?? false;\n const [loadingMore, setLoadingMore] = useState(false);\n // Every grouped item is reachable (and removable) here: the next page is appended by cursor.\n const loadMore = async () => {\n const after = grouped.data?.planmagnetWorkItems.pageInfo.endCursor;\n if (!after) return;\n setLoadingMore(true);\n setError(null);\n try {\n await grouped.fetchMore({\n variables: { pagination: { first: MILESTONE_ITEMS_PAGE, after } },\n updateQuery: (prev, { fetchMoreResult }) => ({\n planmagnetWorkItems: {\n ...fetchMoreResult.planmagnetWorkItems,\n items: [\n ...prev.planmagnetWorkItems.items,\n ...fetchMoreResult.planmagnetWorkItems.items,\n ],\n },\n }),\n });\n } catch (e) {\n setError(e instanceof Error ? e.message : 'More work items could not be loaded.');\n } finally {\n setLoadingMore(false);\n }\n };\n\n const candidates = useQuery<{\n planmagnetWorkItems: {\n items: {\n id: string;\n key: string;\n title: string;\n status: string;\n milestone: { id: string; name: string } | null;\n }[];\n totalCount: number;\n };\n }>(CANDIDATES, {\n // Items already here are excluded on the server, so a full page of them never reads as \"nothing to add\".\n variables: {\n workspaceId,\n filter: { projectId, excludeIds: items.map((i) => i.id), ...(term ? { search: term } : {}) },\n },\n skip: !adding || !workspaceId,\n });\n const offered = candidates.data?.planmagnetWorkItems.items ?? [];\n const moreCandidates = (candidates.data?.planmagnetWorkItems.totalCount ?? 0) - offered.length;\n\n const [update, updateState] = useMutation(SET_MILESTONE, {\n refetchQueries: MILESTONE_QUERIES,\n awaitRefetchQueries: true,\n });\n const setMilestone = async (workItemId: string, next: string | null, fallback: string) => {\n setError(null);\n try {\n await throwOnError(update({ variables: { id: workItemId, input: { milestoneId: next } } }));\n } catch (e) {\n setError(e instanceof Error ? e.message : fallback);\n }\n };\n\n return (\n <Card data-testid=\"milestone-work-items\">\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0\">\n <CardTitle>Work Items ({total})</CardTitle>\n {!adding && (\n <Button\n size=\"sm\"\n variant=\"outline\"\n onClick={() => setAdding(true)}\n data-testid=\"milestone-items-add\"\n >\n <Plus className=\"mr-1 h-4 w-4\" /> Add work items\n </Button>\n )}\n </CardHeader>\n <CardContent className=\"space-y-2\">\n {error && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n {error}\n </p>\n )}\n {grouped.loading && !grouped.data && (\n <p className=\"text-sm text-muted-foreground\">Loading…</p>\n )}\n {grouped.error && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n Work items could not be loaded: {grouped.error.message}\n </p>\n )}\n {grouped.data && items.length === 0 && (\n <p className=\"text-sm text-muted-foreground\">\n No work items are grouped under this milestone yet.\n </p>\n )}\n {items.map((item) => (\n <div\n key={item.id}\n className=\"flex items-center justify-between gap-2 rounded-md border p-3\"\n data-testid=\"milestone-item\"\n >\n <button\n type=\"button\"\n className=\"min-w-0 text-left\"\n onClick={() =>\n navigate(`/tasks/task-detail-page?taskId=${encodeURIComponent(item.id)}`)\n }\n >\n <p className=\"truncate text-sm font-medium hover:underline\">\n <span className=\"text-muted-foreground\">{item.key}</span> {item.title}\n </p>\n <p className=\"text-xs capitalize text-muted-foreground\">\n {item.type.toLowerCase().replace('_', ' ')} &middot; {item.priority.toLowerCase()}{' '}\n priority\n </p>\n </button>\n <span className=\"flex shrink-0 items-center gap-1\">\n <Badge variant=\"outline\" className=\"text-xs capitalize\">\n {item.status.toLowerCase().replace('_', ' ')}\n </Badge>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n aria-label={`Take ${item.title} out of this milestone`}\n disabled={updateState.loading}\n onClick={() => setMilestone(item.id, null, 'The work item could not be taken out.')}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </span>\n </div>\n ))}\n {hasMore && (\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"w-full\"\n disabled={loadingMore}\n onClick={() => void loadMore()}\n data-testid=\"milestone-items-more\"\n >\n {loadingMore ? 'Loading…' : `Show more (${items.length} of ${total})`}\n </Button>\n )}\n {adding && (\n <div className=\"space-y-2 border-t pt-3\">\n <div className=\"flex gap-2\">\n <Input\n aria-label=\"Find work items in this milestone's project\"\n placeholder=\"Find work items in this project\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n <Button\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => {\n setAdding(false);\n setSearch('');\n }}\n >\n Done\n </Button>\n </div>\n {candidates.loading && !candidates.data && (\n <p className=\"text-sm text-muted-foreground\">Loading…</p>\n )}\n {candidates.error && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n Work items could not be loaded: {candidates.error.message}\n </p>\n )}\n {candidates.data && offered.length === 0 && (\n <p className=\"text-sm text-muted-foreground\">\n {term\n ? 'No other work items match.'\n : 'Every work item in this project is already under this milestone.'}\n </p>\n )}\n {moreCandidates > 0 && (\n <p className=\"text-xs text-muted-foreground\">\n {moreCandidates} more — type a key or title to narrow the list.\n </p>\n )}\n <ul className=\"space-y-1\">\n {offered.map((c) => (\n <li key={c.id} className=\"flex items-center justify-between gap-2 text-sm\">\n <span className=\"min-w-0 truncate\">\n <span className=\"text-muted-foreground\">{c.key}</span> {c.title}\n {c.milestone && (\n <span className=\"text-xs text-muted-foreground\">\n {' '}\n · in {c.milestone.name}\n </span>\n )}\n </span>\n <Button\n size=\"sm\"\n variant=\"outline\"\n className=\"h-7 shrink-0 text-xs\"\n disabled={updateState.loading}\n data-testid=\"milestone-item-candidate-add\"\n onClick={() =>\n setMilestone(c.id, milestoneId, 'The work item could not be added.')\n }\n >\n {c.milestone ? 'Move here' : 'Add'}\n </Button>\n </li>\n ))}\n </ul>\n </div>\n )}\n </CardContent>\n </Card>\n );\n}\n"],"mappings":";;;;;;;;;;AAuBA,IAAM,IAAqB,CAAG;;;;;;;;;;;;;;;;;;GAqBxB,IAAwB,KAExB,IAAuB,IACvB,IAAuB,CAAG;;;;;;;;;;;;;;;;;;;;;;GAwB1B,IAAa,CAAG;;;;;;;;;;;;;;;;GAkBhB,IAAgB,CAAG;;;;;;;GAUnB,IAAoB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AASD,SAAgB,EACd,GACA,GACA;CACA,IAAM,EAAE,mBAAgB,GAAe,EACjC,EAAE,SAAM,YAAS,UAAO,iBAAc,EAKzC,GAAoB;EACrB,WAAW;GAAE;GAAa,QAAQ,EAAE,cAAW;GAAE,YAAY,EAAE,OAAO,KAAK;GAAE;EAC7E,MAAM,CAAC,KAAe,CAAC;EACxB,CAAC,EACI,IAAS,GAAM,qBAAqB,SAAS,EAAE,EAC/C,IAAc,GAAM,qBAAqB,SAAS,eAAe,IACjE,IAAY,GAAM,qBAAqB,SAAS,aAAa;AAoBnE,QAlBA,QAAgB;AACV,GAAC,KAAe,CAAC,KAAa,EAAO,UAAU,KACnD,EAAU;GACR,WAAW,EAAE,YAAY;IAAE,OAAO;IAAK,OAAO;IAAW,EAAE;GAC3D,cAAc,GAAM,EAAE,0BAAuB,EAC3C,sBAAsB;IACpB,GAAG,EAAgB;IACnB,OAAO,CACL,GAAG,EAAK,qBAAqB,OAC7B,GAAG,EAAgB,qBAAqB,MACzC;IACF,EACF;GACF,CAAC,CAAC,YAAY,GAEb;IACD;EAAC;EAAa;EAAW,EAAO;EAAQ;EAAU,CAAC,EAE/C;EAAE,SADO,EAAO,QAAQ,MAAM,EAAE,WAAW,eAAe,EAAE,OAAO,EAAU;EAClE,SAAS,KAAW,CAAC;EAAM;EAAO;;AAGtD,IAAM,IACJ;AAGF,SAAgB,EAAgB,EAC9B,OACA,cACA,UACA,eAMC;CACD,IAAM,EAAE,YAAS,eAAY,EAAqB,GAAW,EAAM;AACnE,QACE,kBAAC,UAAD;EACM;EACJ,eAAY;EACZ,WAAW;EACJ;EACP,UAAU,CAAC;EACX,WAAW,MAAM,EAAS,EAAE,OAAO,MAAM;YAN3C,CAQE,kBAAC,UAAD;GAAQ,OAAM;aAAI,IAAU,wBAAwB;GAAwB,CAAA,EAC3E,EAAQ,KAAK,MACZ,kBAAC,UAAD;GAAmB,OAAO,EAAE;aAA5B,CACG,EAAE,MACF,EAAE,WAAW,eAAe,EAAE,WAAW,cACtC,KAAK,EAAE,OAAO,aAAa,CAAC,KAC5B,GACG;KALI,EAAE,GAKN,CACT,CACK;;;AAKb,SAAgB,EAAwB,EACtC,eACA,cACA,kBAKC;CACD,IAAM,EAAE,YAAS,eAAY,EAAqB,GAAW,EAAY,EACnE,CAAC,GAAQ,KAAS,EAAY,GAAe;EACjD,gBAAgB;EAChB,qBAAqB;EACtB,CAAC,EACI,CAAC,GAAO,KAAY,EAAwB,KAAK,EACjD,IAAO,OAAO,MAAiB;AACnC,IAAS,KAAK;AACd,MAAI;AACF,SAAM,EACJ,EAAO,EAAE,WAAW;IAAE,IAAI;IAAY,OAAO,EAAE,aAAa,KAAQ,MAAM;IAAE,EAAE,CAAC,CAChF;WACM,GAAG;AACV,KAAS,aAAa,QAAQ,EAAE,UAAU,sCAAsC;;;AAGpF,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,UAAD;GACE,cAAW;GACX,eAAY;GACZ,WAAU;GACV,OAAO,KAAe;GACtB,UAAU,EAAM;GAChB,WAAW,MAAM;AACf,IAAI,EAAE,OAAO,WAAW,KAAe,OAAU,EAAK,EAAE,OAAO,MAAM;;aAPzE,CAUE,kBAAC,UAAD;IAAQ,OAAM;cAAI,IAAU,aAAa;IAAwB,CAAA,EAChE,EAAQ,KAAK,MACZ,kBAAC,UAAD;IAAmB,OAAO,EAAE;cACzB,EAAE;IACI,EAFI,EAAE,GAEN,CACT,CACK;MACR,KAAS,kBAAC,GAAD,EAAW,SAAS,GAAS,CAAA,CACnC;;;AAaV,SAAgB,EAAqB,EAAE,eAA6C;AAClF,KAAI,EAAS,UAAU,EACrB,QAAO,kBAAC,KAAD;EAAG,WAAU;YAAgC;EAAuC,CAAA;CAE7F,IAAM,IAAU,EAAS,QAAQ,EAAS;AAC1C,QACE,kBAAC,OAAD;EAAK,WAAU;EAAY,eAAY;YAAvC,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,QAAD,EAAA,UAAA;IACG,EAAS;IAAK;IAAK;IAAQ;IAC3B,EAAS,YAAY,IAAI,MAAM,EAAS,UAAU,cAAc;IAC5D,EAAA,CAAA,EACN,EAAS,mBAAmB,QAAQ,kBAAC,QAAD,EAAA,UAAA,CAAO,EAAS,iBAAgB,IAAQ,EAAA,CAAA,CACzE;MACN,kBAAC,OAAD;GACE,WAAU;GACV,MAAK;GACL,cAAW;GACX,iBAAe;GACf,iBAAe;GACf,iBAAe,EAAS,mBAAmB;aAE3C,kBAAC,OAAD;IAAK,WAAU;IAAoB,OAAO,EAAE,OAAO,GAAG,EAAS,mBAAmB,EAAE,IAAI;IAAI,CAAA;GACxF,CAAA,CACF;;;AAcV,SAAgB,EAAuB,EACrC,gBACA,gBAIC;CACD,IAAM,EAAE,mBAAgB,GAAe,EACjC,IAAW,GAAuB,EAClC,CAAC,GAAQ,KAAa,EAAS,GAAM,EACrC,CAAC,GAAQ,KAAa,EAAS,GAAG,EAClC,CAAC,GAAO,KAAY,EAAwB,KAAK,EACjD,IAAO,EAAiB,EAAO,MAAM,CAAC,EAEtC,IAAU,EAMb,GAAsB;EACvB,WAAW;GACT;GACA,QAAQ,EAAE,gBAAa;GACvB,YAAY,EAAE,OAAO,GAAsB;GAC5C;EACD,MAAM,CAAC;EACR,CAAC,EACI,IAAQ,EAAQ,MAAM,oBAAoB,SAAS,EAAE,EACrD,IAAQ,EAAQ,MAAM,oBAAoB,cAAc,GACxD,IAAU,EAAQ,MAAM,oBAAoB,SAAS,eAAe,IACpE,CAAC,GAAa,KAAkB,EAAS,GAAM,EAE/C,IAAW,YAAY;EAC3B,IAAM,IAAQ,EAAQ,MAAM,oBAAoB,SAAS;AACpD,SAEL;GADA,EAAe,GAAK,EACpB,EAAS,KAAK;AACd,OAAI;AACF,UAAM,EAAQ,UAAU;KACtB,WAAW,EAAE,YAAY;MAAE,OAAO;MAAsB;MAAO,EAAE;KACjE,cAAc,GAAM,EAAE,0BAAuB,EAC3C,qBAAqB;MACnB,GAAG,EAAgB;MACnB,OAAO,CACL,GAAG,EAAK,oBAAoB,OAC5B,GAAG,EAAgB,oBAAoB,MACxC;MACF,EACF;KACF,CAAC;YACK,GAAG;AACV,MAAS,aAAa,QAAQ,EAAE,UAAU,uCAAuC;aACzE;AACR,MAAe,GAAM;;;IAInB,IAAa,EAWhB,GAAY;EAEb,WAAW;GACT;GACA,QAAQ;IAAE;IAAW,YAAY,EAAM,KAAK,MAAM,EAAE,GAAG;IAAE,GAAI,IAAO,EAAE,QAAQ,GAAM,GAAG,EAAE;IAAG;GAC7F;EACD,MAAM,CAAC,KAAU,CAAC;EACnB,CAAC,EACI,IAAU,EAAW,MAAM,oBAAoB,SAAS,EAAE,EAC1D,KAAkB,EAAW,MAAM,oBAAoB,cAAc,KAAK,EAAQ,QAElF,CAAC,GAAQ,KAAe,EAAY,GAAe;EACvD,gBAAgB;EAChB,qBAAqB;EACtB,CAAC,EACI,IAAe,OAAO,GAAoB,GAAqB,MAAqB;AACxF,IAAS,KAAK;AACd,MAAI;AACF,SAAM,EAAa,EAAO,EAAE,WAAW;IAAE,IAAI;IAAY,OAAO,EAAE,aAAa,GAAM;IAAE,EAAE,CAAC,CAAC;WACpF,GAAG;AACV,KAAS,aAAa,QAAQ,EAAE,UAAU,EAAS;;;AAIvD,QACE,kBAAC,GAAD;EAAM,eAAY;YAAlB,CACE,kBAAC,GAAD;GAAY,WAAU;aAAtB,CACE,kBAAC,GAAD,EAAA,UAAA;IAAW;IAAa;IAAM;IAAa,EAAA,CAAA,EAC1C,CAAC,KACA,kBAAC,GAAD;IACE,MAAK;IACL,SAAQ;IACR,eAAe,EAAU,GAAK;IAC9B,eAAY;cAJd,CAME,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAAA,kBAC1B;MAEA;MACb,kBAAC,GAAD;GAAa,WAAU;aAAvB;IACG,KACC,kBAAC,KAAD;KAAG,MAAK;KAAQ,WAAU;eACvB;KACC,CAAA;IAEL,EAAQ,WAAW,CAAC,EAAQ,QAC3B,kBAAC,KAAD;KAAG,WAAU;eAAgC;KAAY,CAAA;IAE1D,EAAQ,SACP,kBAAC,KAAD;KAAG,MAAK;KAAQ,WAAU;eAA1B,CAAqD,oCAClB,EAAQ,MAAM,QAC7C;;IAEL,EAAQ,QAAQ,EAAM,WAAW,KAChC,kBAAC,KAAD;KAAG,WAAU;eAAgC;KAEzC,CAAA;IAEL,EAAM,KAAK,MACV,kBAAC,OAAD;KAEE,WAAU;KACV,eAAY;eAHd,CAKE,kBAAC,UAAD;MACE,MAAK;MACL,WAAU;MACV,eACE,EAAS,kCAAkC,mBAAmB,EAAK,GAAG,GAAG;gBAJ7E,CAOE,kBAAC,KAAD;OAAG,WAAU;iBAAb;QACE,kBAAC,QAAD;SAAM,WAAU;mBAAyB,EAAK;SAAW,CAAA;;QAAE,EAAK;QAC9D;UACJ,kBAAC,KAAD;OAAG,WAAU;iBAAb;QACG,EAAK,KAAK,aAAa,CAAC,QAAQ,KAAK,IAAI;QAAC;QAAW,EAAK,SAAS,aAAa;QAAE;QAAI;QAErF;SACG;SACT,kBAAC,QAAD;MAAM,WAAU;gBAAhB,CACE,kBAAC,GAAD;OAAO,SAAQ;OAAU,WAAU;iBAChC,EAAK,OAAO,aAAa,CAAC,QAAQ,KAAK,IAAI;OACtC,CAAA,EACR,kBAAC,GAAD;OACE,MAAK;OACL,SAAQ;OACR,cAAY,QAAQ,EAAK,MAAM;OAC/B,UAAU,EAAY;OACtB,eAAe,EAAa,EAAK,IAAI,MAAM,wCAAwC;iBAEnF,kBAAC,GAAD,EAAG,WAAU,WAAY,CAAA;OAClB,CAAA,CACJ;QACH;OAjCC,EAAK,GAiCN,CACN;IACD,KACC,kBAAC,GAAD;KACE,MAAK;KACL,SAAQ;KACR,WAAU;KACV,UAAU;KACV,eAAe,KAAK,GAAU;KAC9B,eAAY;eAEX,IAAc,aAAa,cAAc,EAAM,OAAO,MAAM,EAAM;KAC5D,CAAA;IAEV,KACC,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,GAAD;QACE,cAAW;QACX,aAAY;QACZ,OAAO;QACP,WAAW,MAAM,EAAU,EAAE,OAAO,MAAM;QAC1C,CAAA,EACF,kBAAC,GAAD;QACE,MAAK;QACL,SAAQ;QACR,eAAe;AAEb,SADA,EAAU,GAAM,EAChB,EAAU,GAAG;;kBAEhB;QAEQ,CAAA,CACL;;MACL,EAAW,WAAW,CAAC,EAAW,QACjC,kBAAC,KAAD;OAAG,WAAU;iBAAgC;OAAY,CAAA;MAE1D,EAAW,SACV,kBAAC,KAAD;OAAG,MAAK;OAAQ,WAAU;iBAA1B,CAAqD,oCAClB,EAAW,MAAM,QAChD;;MAEL,EAAW,QAAQ,EAAQ,WAAW,KACrC,kBAAC,KAAD;OAAG,WAAU;iBACV,IACG,+BACA;OACF,CAAA;MAEL,IAAiB,KAChB,kBAAC,KAAD;OAAG,WAAU;iBAAb,CACG,GAAe,kDACd;;MAEN,kBAAC,MAAD;OAAI,WAAU;iBACX,EAAQ,KAAK,MACZ,kBAAC,MAAD;QAAe,WAAU;kBAAzB,CACE,kBAAC,QAAD;SAAM,WAAU;mBAAhB;UACE,kBAAC,QAAD;WAAM,WAAU;qBAAyB,EAAE;WAAW,CAAA;;UAAE,EAAE;UACzD,EAAE,aACD,kBAAC,QAAD;WAAM,WAAU;qBAAhB;YACG;YAAI;YACC,EAAE,UAAU;YACb;;UAEJ;YACP,kBAAC,GAAD;SACE,MAAK;SACL,SAAQ;SACR,WAAU;SACV,UAAU,EAAY;SACtB,eAAY;SACZ,eACE,EAAa,EAAE,IAAI,GAAa,oCAAoC;mBAGrE,EAAE,YAAY,cAAc;SACtB,CAAA,CACN;UAtBI,EAAE,GAsBN,CACL;OACC,CAAA;MACD;;IAEI;KACT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActivityActivityPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/ActivityActivityPagePage.tsx"],"names":[],"mappings":"AA8GA,wBAAgB,wBAAwB,4CA6QvC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActivityActivityPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/ActivityActivityPagePage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n Checkbox,\n EmptyState,\n Input,\n Switch,\n} from '@burdenoff/fe-libs/ui';\nimport { History, Loader2 } from 'lucide-react';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { ProjectSelect, TeamSelect } from '../controls/Pickers';\nimport { PersonName } from '../people/People';\nimport { rowLinkProps } from '../utils/rowNavigation';\nimport { readUrlParam, writeUrlParam } from '../utils/urlParam';\nimport { isForbidden } from '../utils/graphqlErrors';\nimport {\n ACTIVITY_EVENT_TYPES,\n ActivityEventSentence,\n activityEventTypeLabel,\n type ActivityEventType,\n} from '../activity/activityDescribe';\nimport { relativeTime } from '../activity/relativeTime';\n\n/**\n * Workspace Activity (CWF-09): a merged, newest-first stream of work-item events — creation, status changes,\n * comments and tracked field edits — across every project, reading `planmagnetActivityFeed`. Linked from the\n * main nav, and filtered on arrival from the \"Project activity\" / \"Team activity\" entry points on the project\n * and team detail pages (`?projectId=`/`?teamId=` — read once on mount below, the same convention\n * `ProductsRoadmapDetailPagePage`'s `?view=` uses).\n *\n * No `totalCount` on this query by design (see the SDL) — \"Load more\" is driven by `pageInfo.hasNextPage` alone,\n * same as `AiActivityPagePage`.\n */\n\nconst PAGE_SIZE = 30;\n\nconst ACTIVITY_FEED = gql`\n query PlanMagnetActivityFeed(\n $workspaceId: ID!\n $filter: PlanmagnetActivityFeedFilter\n $pagination: PlanmagnetPaginationInput\n ) {\n planmagnetActivityFeed(workspaceId: $workspaceId, filter: $filter, pagination: $pagination) {\n items {\n id\n type\n at\n actorId\n field\n fromValue\n toValue\n fromStatus\n toStatus\n excerpt\n commentId\n workItem {\n id\n key\n title\n projectId\n }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n`;\n\ninterface ActivityFeedEvent {\n id: string;\n type: string;\n at: string;\n actorId: string | null;\n field: string | null;\n fromValue: string | null;\n toValue: string | null;\n fromStatus: string | null;\n toStatus: string | null;\n excerpt: string | null;\n commentId: string | null;\n workItem: { id: string; key: string; title: string; projectId: string };\n}\n\ninterface ActivityFeedData {\n planmagnetActivityFeed: {\n items: ActivityFeedEvent[];\n pageInfo: { hasNextPage: boolean; endCursor: string | null };\n };\n}\n\n/** `types` is stored in the URL as a comma list; unrecognised tokens (a stale link from a future event type) are\n * dropped rather than sent on to the server as-is. */\nfunction readInitialTypes(): Set<ActivityEventType> {\n const raw = readUrlParam('types');\n const set = new Set<ActivityEventType>();\n if (!raw) return set;\n for (const token of raw.split(',')) {\n if ((ACTIVITY_EVENT_TYPES as readonly string[]).includes(token))\n set.add(token as ActivityEventType);\n }\n return set;\n}\n\nexport function ActivityActivityPagePage() {\n const { workspaceId } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n\n const [mine, setMineState] = useState(() => readUrlParam('mine') === '1');\n const [projectId, setProjectIdState] = useState(() => readUrlParam('projectId') ?? '');\n const [teamId, setTeamIdState] = useState(() => readUrlParam('teamId') ?? '');\n const [types, setTypes] = useState<Set<ActivityEventType>>(readInitialTypes);\n const [from, setFromState] = useState(() => readUrlParam('from') ?? '');\n const [to, setToState] = useState(() => readUrlParam('to') ?? '');\n const [loadingMore, setLoadingMore] = useState(false);\n\n const setMine = (next: boolean) => {\n setMineState(next);\n writeUrlParam('mine', next ? '1' : null);\n };\n const setProjectId = (next: string) => {\n setProjectIdState(next);\n writeUrlParam('projectId', next || null);\n };\n const setTeamId = (next: string) => {\n setTeamIdState(next);\n writeUrlParam('teamId', next || null);\n };\n const toggleType = (type: ActivityEventType) => {\n setTypes((prev) => {\n const next = new Set(prev);\n if (next.has(type)) next.delete(type);\n else next.add(type);\n writeUrlParam('types', next.size > 0 ? Array.from(next).join(',') : null);\n return next;\n });\n };\n const setFrom = (next: string) => {\n setFromState(next);\n writeUrlParam('from', next || null);\n };\n const setTo = (next: string) => {\n setToState(next);\n writeUrlParam('to', next || null);\n };\n\n const filter: Record<string, unknown> = {};\n if (mine) filter.mine = true;\n if (projectId) filter.projectIds = [projectId];\n if (teamId) filter.teamId = teamId;\n // Empty selection = no restriction (every type shown), same as the checkboxes all starting unchecked.\n if (types.size > 0) filter.types = Array.from(types);\n // The SDL takes a bare `from` as UTC midnight; `to` is pushed to the END of the chosen day so picking one day\n // includes everything that happened on it, not just its first instant.\n if (from) filter.from = new Date(`${from}T00:00:00.000Z`).toISOString();\n if (to) filter.to = new Date(`${to}T23:59:59.999Z`).toISOString();\n\n const { data, loading, error, fetchMore } = useQuery<ActivityFeedData>(ACTIVITY_FEED, {\n variables: { workspaceId: workspaceId ?? '', filter, pagination: { first: PAGE_SIZE } },\n skip: !workspaceId,\n });\n\n const events = data?.planmagnetActivityFeed.items ?? [];\n const hasMore = data?.planmagnetActivityFeed.pageInfo.hasNextPage ?? false;\n\n const loadMore = async () => {\n const after = data?.planmagnetActivityFeed.pageInfo.endCursor;\n if (!after) return;\n setLoadingMore(true);\n try {\n await fetchMore({\n variables: { pagination: { first: PAGE_SIZE, after } },\n updateQuery: (prev, { fetchMoreResult }) => ({\n planmagnetActivityFeed: {\n ...fetchMoreResult.planmagnetActivityFeed,\n items: [\n ...prev.planmagnetActivityFeed.items,\n ...fetchMoreResult.planmagnetActivityFeed.items,\n ],\n },\n }),\n });\n } finally {\n setLoadingMore(false);\n }\n };\n\n const openWorkItem = (id: string) =>\n navigate(`/tasks/task-detail-page?taskId=${encodeURIComponent(id)}`);\n\n // First load only — a filter change refetches in place and must not blank the page mid-toggle.\n if (loading && !data) {\n return (\n <div className=\"flex items-center justify-center p-12\">\n <Loader2 className=\"h-8 w-8 animate-spin text-muted-foreground\" />\n </div>\n );\n }\n\n return (\n <div className=\"max-w-4xl space-y-4 p-6\" data-testid=\"activity-page\">\n <div>\n <h1 className=\"flex items-center gap-2 text-2xl font-semibold\">\n <History className=\"h-6 w-6\" />\n Activity\n </h1>\n <p className=\"text-sm text-muted-foreground\">\n What happened across this workspace&apos;s projects, newest first.\n </p>\n </div>\n\n <div className=\"flex flex-wrap items-end gap-4 rounded-md border p-3\">\n <label className=\"flex items-center gap-2 text-sm\">\n <Switch\n checked={mine}\n onCheckedChange={setMine}\n aria-label=\"Mine only\"\n data-testid=\"activity-filter-mine\"\n />\n Mine only\n </label>\n\n <div className=\"space-y-1\">\n <label htmlFor=\"activity-filter-project-select\" className=\"text-xs text-muted-foreground\">\n Project\n </label>\n <div data-testid=\"activity-filter-project\">\n <ProjectSelect\n id=\"activity-filter-project-select\"\n value={projectId}\n onChange={setProjectId}\n noneLabel=\"Any project\"\n />\n </div>\n </div>\n\n <div className=\"space-y-1\">\n <label htmlFor=\"activity-filter-team-select\" className=\"text-xs text-muted-foreground\">\n Team\n </label>\n <div data-testid=\"activity-filter-team\">\n <TeamSelect\n id=\"activity-filter-team-select\"\n value={teamId}\n onChange={setTeamId}\n noneLabel=\"Any team\"\n />\n </div>\n </div>\n\n <fieldset className=\"space-y-1 border-0 p-0\" data-testid=\"activity-filter-type\">\n <legend className=\"text-xs text-muted-foreground\">Event type</legend>\n <div className=\"flex flex-wrap gap-3\">\n {ACTIVITY_EVENT_TYPES.map((type) => {\n const inputId = `activity-filter-type-${type}`;\n return (\n <label key={type} htmlFor={inputId} className=\"flex items-center gap-1.5 text-sm\">\n <Checkbox\n id={inputId}\n data-testid={inputId}\n checked={types.has(type)}\n onCheckedChange={() => toggleType(type)}\n />\n {activityEventTypeLabel(type)}\n </label>\n );\n })}\n </div>\n </fieldset>\n\n <div className=\"flex items-end gap-2\">\n <div className=\"space-y-1\">\n <label htmlFor=\"activity-filter-from\" className=\"text-xs text-muted-foreground\">\n From\n </label>\n <Input\n id=\"activity-filter-from\"\n type=\"date\"\n className=\"h-9 w-36\"\n value={from}\n onChange={(e) => setFrom(e.target.value)}\n />\n </div>\n <div className=\"space-y-1\">\n <label htmlFor=\"activity-filter-to\" className=\"text-xs text-muted-foreground\">\n To\n </label>\n <Input\n id=\"activity-filter-to\"\n type=\"date\"\n className=\"h-9 w-36\"\n value={to}\n onChange={(e) => setTo(e.target.value)}\n />\n </div>\n </div>\n </div>\n\n {error &&\n (isForbidden(error) ? (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n You do not have access to workspace activity.\n </p>\n ) : (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n Activity could not be loaded: {error.message}\n </p>\n ))}\n\n {!error && events.length === 0 && (\n <EmptyState\n icon={<History className=\"h-8 w-8 text-muted-foreground\" />}\n title=\"No activity yet\"\n description=\"Nothing matches these filters yet.\"\n />\n )}\n\n {events.length > 0 && (\n <div className=\"space-y-2\">\n {events.map((event) => (\n <Card\n key={event.id}\n data-testid=\"activity-row\"\n {...rowLinkProps(() => openWorkItem(event.workItem.id), event.workItem.title)}\n >\n <CardContent className=\"space-y-1.5 p-3\">\n <div className=\"flex flex-wrap items-center gap-2 text-sm\">\n <Badge variant=\"outline\">{activityEventTypeLabel(event.type)}</Badge>\n <span className=\"min-w-0 flex-1\">\n {event.actorId ? <PersonName id={event.actorId} /> : 'Unknown'}{' '}\n <ActivityEventSentence\n event={{\n kind: event.type,\n fromStatus: event.fromStatus,\n toStatus: event.toStatus,\n excerpt: event.excerpt,\n field: event.field,\n fromValue: event.fromValue,\n toValue: event.toValue,\n }}\n />\n </span>\n <time\n dateTime={event.at}\n title={new Date(event.at).toLocaleString()}\n className=\"shrink-0 text-xs text-muted-foreground\"\n >\n {relativeTime(event.at)}\n </time>\n </div>\n <p className=\"truncate text-xs text-muted-foreground\">\n {event.workItem.key} — {event.workItem.title}\n </p>\n </CardContent>\n </Card>\n ))}\n {hasMore && (\n <div className=\"flex justify-center\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n disabled={loadingMore}\n onClick={() => void loadMore()}\n data-testid=\"activity-load-more\"\n >\n {loadingMore ? 'Loading…' : `Load more (${events.length} so far)`}\n </Button>\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AAuCA,IAAM,IAAY,IAEZ,IAAgB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DzB,SAAS,IAA2C;CAClD,IAAM,IAAM,EAAa,QAAQ,EAC3B,oBAAM,IAAI,KAAwB;AACxC,KAAI,CAAC,EAAK,QAAO;AACjB,MAAK,IAAM,KAAS,EAAI,MAAM,IAAI,CAChC,CAAK,EAA2C,SAAS,EAAM,IAC7D,EAAI,IAAI,EAA2B;AAEvC,QAAO;;AAGT,SAAgB,IAA2B;CACzC,IAAM,EAAE,mBAAgB,GAAe,EACjC,IAAW,GAAuB,EAElC,CAAC,GAAM,KAAgB,QAAe,EAAa,OAAO,KAAK,IAAI,EACnE,CAAC,GAAW,KAAqB,QAAe,EAAa,YAAY,IAAI,GAAG,EAChF,CAAC,GAAQ,KAAkB,QAAe,EAAa,SAAS,IAAI,GAAG,EACvE,CAAC,GAAO,KAAY,EAAiC,EAAiB,EACtE,CAAC,GAAM,KAAgB,QAAe,EAAa,OAAO,IAAI,GAAG,EACjE,CAAC,GAAI,KAAc,QAAe,EAAa,KAAK,IAAI,GAAG,EAC3D,CAAC,GAAa,KAAkB,EAAS,GAAM,EAE/C,KAAW,MAAkB;AAEjC,EADA,EAAa,EAAK,EAClB,EAAc,QAAQ,IAAO,MAAM,KAAK;IAEpC,KAAgB,MAAiB;AAErC,EADA,EAAkB,EAAK,EACvB,EAAc,aAAa,KAAQ,KAAK;IAEpC,KAAa,MAAiB;AAElC,EADA,EAAe,EAAK,EACpB,EAAc,UAAU,KAAQ,KAAK;IAEjC,KAAc,MAA4B;AAC9C,KAAU,MAAS;GACjB,IAAM,IAAO,IAAI,IAAI,EAAK;AAI1B,UAHI,EAAK,IAAI,EAAK,GAAE,EAAK,OAAO,EAAK,GAChC,EAAK,IAAI,EAAK,EACnB,EAAc,SAAS,EAAK,OAAO,IAAI,MAAM,KAAK,EAAK,CAAC,KAAK,IAAI,GAAG,KAAK,EAClE;IACP;IAEE,KAAW,MAAiB;AAEhC,EADA,EAAa,EAAK,EAClB,EAAc,QAAQ,KAAQ,KAAK;IAE/B,KAAS,MAAiB;AAE9B,EADA,EAAW,EAAK,EAChB,EAAc,MAAM,KAAQ,KAAK;IAG7B,IAAkC,EAAE;AAS1C,CARI,MAAM,EAAO,OAAO,KACpB,MAAW,EAAO,aAAa,CAAC,EAAU,GAC1C,MAAQ,EAAO,SAAS,IAExB,EAAM,OAAO,MAAG,EAAO,QAAQ,MAAM,KAAK,EAAM,GAGhD,MAAM,EAAO,wBAAO,IAAI,KAAK,GAAG,EAAK,gBAAgB,EAAC,aAAa,GACnE,MAAI,EAAO,sBAAK,IAAI,KAAK,GAAG,EAAG,gBAAgB,EAAC,aAAa;CAEjE,IAAM,EAAE,SAAM,YAAS,UAAO,kBAAc,GAA2B,GAAe;EACpF,WAAW;GAAE,aAAa,KAAe;GAAI;GAAQ,YAAY,EAAE,OAAO,GAAW;GAAE;EACvF,MAAM,CAAC;EACR,CAAC,EAEI,IAAS,GAAM,uBAAuB,SAAS,EAAE,EACjD,KAAU,GAAM,uBAAuB,SAAS,eAAe,IAE/D,KAAW,YAAY;EAC3B,IAAM,IAAQ,GAAM,uBAAuB,SAAS;AAC/C,SACL;KAAe,GAAK;AACpB,OAAI;AACF,UAAM,GAAU;KACd,WAAW,EAAE,YAAY;MAAE,OAAO;MAAW;MAAO,EAAE;KACtD,cAAc,GAAM,EAAE,0BAAuB,EAC3C,wBAAwB;MACtB,GAAG,EAAgB;MACnB,OAAO,CACL,GAAG,EAAK,uBAAuB,OAC/B,GAAG,EAAgB,uBAAuB,MAC3C;MACF,EACF;KACF,CAAC;aACM;AACR,MAAe,GAAM;;;IAInB,MAAgB,MACpB,EAAS,kCAAkC,mBAAmB,EAAG,GAAG;AAWtE,QARI,KAAW,CAAC,IAEZ,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD,EAAS,WAAU,8CAA+C,CAAA;EAC9D,CAAA,GAKR,kBAAC,OAAD;EAAK,WAAU;EAA0B,eAAY;YAArD;GACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,GAAD,EAAS,WAAU,WAAY,CAAA,EAAA,WAE5B;OACL,kBAAC,KAAD;IAAG,WAAU;cAAgC;IAEzC,CAAA,CACA,EAAA,CAAA;GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,SAAD;MAAO,WAAU;gBAAjB,CACE,kBAAC,IAAD;OACE,SAAS;OACT,iBAAiB;OACjB,cAAW;OACX,eAAY;OACZ,CAAA,EAAA,YAEI;;KAER,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,SAAD;OAAO,SAAQ;OAAiC,WAAU;iBAAgC;OAElF,CAAA,EACR,kBAAC,OAAD;OAAK,eAAY;iBACf,kBAAC,GAAD;QACE,IAAG;QACH,OAAO;QACP,UAAU;QACV,WAAU;QACV,CAAA;OACE,CAAA,CACF;;KAEN,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,SAAD;OAAO,SAAQ;OAA8B,WAAU;iBAAgC;OAE/E,CAAA,EACR,kBAAC,OAAD;OAAK,eAAY;iBACf,kBAAC,GAAD;QACE,IAAG;QACH,OAAO;QACP,UAAU;QACV,WAAU;QACV,CAAA;OACE,CAAA,CACF;;KAEN,kBAAC,YAAD;MAAU,WAAU;MAAyB,eAAY;gBAAzD,CACE,kBAAC,UAAD;OAAQ,WAAU;iBAAgC;OAAmB,CAAA,EACrE,kBAAC,OAAD;OAAK,WAAU;iBACZ,EAAqB,KAAK,MAAS;QAClC,IAAM,IAAU,wBAAwB;AACxC,eACE,kBAAC,SAAD;SAAkB,SAAS;SAAS,WAAU;mBAA9C,CACE,kBAAC,GAAD;UACE,IAAI;UACJ,eAAa;UACb,SAAS,EAAM,IAAI,EAAK;UACxB,uBAAuB,EAAW,EAAK;UACvC,CAAA,EACD,EAAuB,EAAK,CACvB;WARI,EAQJ;SAEV;OACE,CAAA,CACG;;KAEX,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,SAAD;QAAO,SAAQ;QAAuB,WAAU;kBAAgC;QAExE,CAAA,EACR,kBAAC,GAAD;QACE,IAAG;QACH,MAAK;QACL,WAAU;QACV,OAAO;QACP,WAAW,MAAM,EAAQ,EAAE,OAAO,MAAM;QACxC,CAAA,CACE;UACN,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,SAAD;QAAO,SAAQ;QAAqB,WAAU;kBAAgC;QAEtE,CAAA,EACR,kBAAC,GAAD;QACE,IAAG;QACH,MAAK;QACL,WAAU;QACV,OAAO;QACP,WAAW,MAAM,EAAM,EAAE,OAAO,MAAM;QACtC,CAAA,CACE;SACF;;KACF;;GAEL,MACE,GAAY,EAAM,GACjB,kBAAC,KAAD;IAAG,MAAK;IAAQ,WAAU;cAA2B;IAEjD,CAAA,GAEJ,kBAAC,KAAD;IAAG,MAAK;IAAQ,WAAU;cAA1B,CAAqD,kCACpB,EAAM,QACnC;;GAGP,CAAC,KAAS,EAAO,WAAW,KAC3B,kBAAC,GAAD;IACE,MAAM,kBAAC,GAAD,EAAS,WAAU,iCAAkC,CAAA;IAC3D,OAAM;IACN,aAAY;IACZ,CAAA;GAGH,EAAO,SAAS,KACf,kBAAC,OAAD;IAAK,WAAU;cAAf,CACG,EAAO,KAAK,MACX,kBAAC,GAAD;KAEE,eAAY;KACZ,GAAI,QAAmB,GAAa,EAAM,SAAS,GAAG,EAAE,EAAM,SAAS,MAAM;eAE7E,kBAAC,GAAD;MAAa,WAAU;gBAAvB,CACE,kBAAC,OAAD;OAAK,WAAU;iBAAf;QACE,kBAAC,GAAD;SAAO,SAAQ;mBAAW,EAAuB,EAAM,KAAK;SAAS,CAAA;QACrE,kBAAC,QAAD;SAAM,WAAU;mBAAhB;UACG,EAAM,UAAU,kBAAC,GAAD,EAAY,IAAI,EAAM,SAAW,CAAA,GAAG;UAAW;UAChE,kBAAC,GAAD,EACE,OAAO;WACL,MAAM,EAAM;WACZ,YAAY,EAAM;WAClB,UAAU,EAAM;WAChB,SAAS,EAAM;WACf,OAAO,EAAM;WACb,WAAW,EAAM;WACjB,SAAS,EAAM;WAChB,EACD,CAAA;UACG;;QACP,kBAAC,QAAD;SACE,UAAU,EAAM;SAChB,OAAO,IAAI,KAAK,EAAM,GAAG,CAAC,gBAAgB;SAC1C,WAAU;mBAET,EAAa,EAAM,GAAG;SAClB,CAAA;QACH;UACN,kBAAC,KAAD;OAAG,WAAU;iBAAb;QACG,EAAM,SAAS;QAAI;QAAI,EAAM,SAAS;QACrC;SACQ;;KACT,EAjCA,EAAM,GAiCN,CACP,EACD,MACC,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,GAAD;MACE,SAAQ;MACR,MAAK;MACL,UAAU;MACV,eAAe,KAAK,IAAU;MAC9B,eAAY;gBAEX,IAAc,aAAa,cAAc,EAAO,OAAO;MACjD,CAAA;KACL,CAAA,CAEJ;;GAEJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AiActivityPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/AiActivityPagePage.tsx"],"names":[],"mappings":"AAgGA,wBAAgB,kBAAkB,4CAoOjC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AiActivityPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/AiActivityPagePage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\nimport { Badge, Button, Card, CardContent, EmptyState } from '@burdenoff/fe-libs/ui';\nimport { Bot, ChevronDown, ChevronRight, Sparkles } from 'lucide-react';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\n\n/**\n * AI-24: the caller's OWN AI calls in this workspace, newest first (`planmagnetMyAgentRuns` filters to the\n * calling actor server-side — see the field's own doc comment in graphql/wspace.graphql). This is a personal\n * ledger, not a workspace-wide audit log: every member currently holds VIEWER on planmagnet-admin (BOFF-7868), so\n * a workspace-wide view needs its own policy decision and is out of scope here.\n */\n\nconst MY_AGENT_RUNS = gql`\n query MyAgentRuns(\n $workspaceId: ID!\n $filter: PlanmagnetAgentRunFilter\n $pagination: PlanmagnetPaginationInput\n ) {\n planmagnetMyAgentRuns(workspaceId: $workspaceId, filter: $filter, pagination: $pagination) {\n items {\n id\n actorId\n trigger\n provider\n model\n promptSummary\n decision\n tokensIn\n tokensOut\n latencyMs\n status\n error\n createdAt\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n totalCount\n }\n }\n`;\n\nconst PAGE_SIZE = 20;\n\ntype RunStatus = 'SUCCEEDED' | 'FAILED';\ntype StatusFilter = 'ALL' | RunStatus;\n\ninterface AgentRunRow {\n id: string;\n actorId: string;\n trigger: string;\n provider: string;\n model: string;\n promptSummary: string;\n decision: unknown;\n tokensIn: number | null;\n tokensOut: number | null;\n latencyMs: number | null;\n status: RunStatus;\n error: string | null;\n createdAt: string;\n}\n\ninterface MyAgentRunsData {\n planmagnetMyAgentRuns: {\n items: AgentRunRow[];\n pageInfo: { hasNextPage: boolean; endCursor: string | null };\n totalCount: number;\n };\n}\n\nconst STATUS_VARIANT: Record<RunStatus, 'success' | 'destructive'> = {\n SUCCEEDED: 'success',\n FAILED: 'destructive',\n};\n\nconst STATUS_FILTERS: StatusFilter[] = ['ALL', 'SUCCEEDED', 'FAILED'];\n\nfunction statusFilterLabel(f: StatusFilter): string {\n return f === 'ALL' ? 'All' : f.charAt(0) + f.slice(1).toLowerCase();\n}\n\n/** `decision`'s own titles when it looks like a breakdown result, else null — the row falls back to raw JSON. */\nfunction decisionSuggestionTitles(decision: unknown): string[] | null {\n if (!decision || typeof decision !== 'object') return null;\n const suggestions = (decision as { suggestions?: unknown }).suggestions;\n if (!Array.isArray(suggestions)) return null;\n const titles = suggestions\n .map((s) => (s && typeof s === 'object' ? (s as { title?: unknown }).title : null))\n .filter((t): t is string => typeof t === 'string');\n return titles.length > 0 ? titles : null;\n}\n\nexport function AiActivityPagePage() {\n const { workspaceId } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n const [statusFilter, setStatusFilter] = useState<StatusFilter>('ALL');\n const [expanded, setExpanded] = useState<Set<string>>(new Set());\n const [loadingMore, setLoadingMore] = useState(false);\n\n const { data, loading, error, fetchMore } = useQuery<MyAgentRunsData>(MY_AGENT_RUNS, {\n variables: {\n workspaceId: workspaceId ?? '',\n filter: statusFilter === 'ALL' ? undefined : { status: statusFilter },\n pagination: { first: PAGE_SIZE },\n },\n skip: !workspaceId,\n });\n\n const runs = data?.planmagnetMyAgentRuns.items ?? [];\n const total = data?.planmagnetMyAgentRuns.totalCount ?? 0;\n const hasMore = data?.planmagnetMyAgentRuns.pageInfo.hasNextPage ?? false;\n\n const loadMore = async () => {\n const after = data?.planmagnetMyAgentRuns.pageInfo.endCursor;\n if (!after) return;\n setLoadingMore(true);\n try {\n await fetchMore({\n variables: { pagination: { first: PAGE_SIZE, after } },\n updateQuery: (prev, { fetchMoreResult }) => ({\n planmagnetMyAgentRuns: {\n ...fetchMoreResult.planmagnetMyAgentRuns,\n items: [\n ...prev.planmagnetMyAgentRuns.items,\n ...fetchMoreResult.planmagnetMyAgentRuns.items,\n ],\n },\n }),\n });\n } finally {\n setLoadingMore(false);\n }\n };\n\n const toggleExpanded = (id: string) => {\n setExpanded((prev) => {\n const next = new Set(prev);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n };\n\n // First load only — a refetch from the status filter must not blank the page mid-toggle.\n if (loading && !data) {\n return (\n <div className=\"flex items-center justify-center p-12\">\n <div className=\"h-8 w-8 animate-spin rounded-full border-2 border-primary border-t-transparent\" />\n </div>\n );\n }\n\n return (\n <div className=\"max-w-4xl space-y-4 p-6\" data-testid=\"ai-activity-page\">\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <div>\n <h1 className=\"flex items-center gap-2 text-2xl font-semibold\">\n <Bot className=\"h-6 w-6\" />\n AI activity\n </h1>\n <p className=\"text-sm text-muted-foreground\" data-testid=\"ai-activity-scope-note\">\n Only your own AI calls in this workspace are listed.\n </p>\n </div>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => navigate('/ai/plan-page')}\n data-testid=\"ai-activity-suggest-link\"\n >\n <Sparkles className=\"mr-1 h-4 w-4\" />\n Suggest a breakdown\n </Button>\n </div>\n\n <div className=\"flex items-center gap-2\" data-testid=\"ai-activity-status-filter\">\n {STATUS_FILTERS.map((f) => (\n <button\n key={f}\n type=\"button\"\n onClick={() => setStatusFilter(f)}\n data-testid={`ai-activity-status-filter-${f}`}\n className={`rounded-md px-2 py-1 text-xs ${\n statusFilter === f\n ? 'bg-primary text-primary-foreground'\n : 'bg-muted text-muted-foreground'\n }`}\n >\n {statusFilterLabel(f)}\n </button>\n ))}\n </div>\n\n {error && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n AI activity could not be loaded: {error.message}\n </p>\n )}\n\n {!error && runs.length === 0 && (\n <EmptyState\n icon={<Bot className=\"h-8 w-8 text-muted-foreground\" />}\n title=\"No AI calls yet\"\n description={\n statusFilter === 'ALL'\n ? 'Calls you make from the AI breakdown page will show up here.'\n : `No calls with status ${statusFilterLabel(statusFilter).toLowerCase()} yet.`\n }\n />\n )}\n\n {runs.length > 0 && (\n <div className=\"space-y-2\">\n {runs.map((run) => {\n const isExpanded = expanded.has(run.id);\n const titles = decisionSuggestionTitles(run.decision);\n return (\n <Card key={run.id} data-testid=\"ai-activity-row\">\n <CardContent className=\"space-y-2 p-3\">\n <button\n type=\"button\"\n className=\"flex w-full flex-wrap items-start justify-between gap-2 text-left\"\n onClick={() => toggleExpanded(run.id)}\n data-testid=\"ai-activity-row-toggle\"\n aria-expanded={isExpanded}\n >\n <div className=\"flex min-w-0 items-start gap-2\">\n {isExpanded ? (\n <ChevronDown className=\"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground\" />\n ) : (\n <ChevronRight className=\"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground\" />\n )}\n <div className=\"min-w-0 space-y-1\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <Badge\n variant={STATUS_VARIANT[run.status]}\n data-testid=\"ai-activity-row-status\"\n >\n {run.status.toLowerCase()}\n </Badge>\n <span className=\"text-xs text-muted-foreground\">\n {new Date(run.createdAt).toLocaleString()}\n </span>\n <span className=\"text-xs text-muted-foreground\">\n {run.provider} / {run.model}\n </span>\n </div>\n <p className=\"truncate text-sm\">{run.promptSummary}</p>\n </div>\n </div>\n <div className=\"shrink-0 text-right text-xs text-muted-foreground\">\n <p>\n {run.tokensIn ?? '—'} in · {run.tokensOut ?? '—'} out\n </p>\n <p>{run.latencyMs != null ? `${run.latencyMs}ms` : '—'}</p>\n </div>\n </button>\n {run.status === 'FAILED' && run.error && (\n <p\n role=\"alert\"\n className=\"pl-6 text-xs text-destructive\"\n data-testid=\"ai-activity-row-error\"\n >\n {run.error}\n </p>\n )}\n {isExpanded && (\n <div\n className=\"ml-6 space-y-1 border-t pt-2\"\n data-testid=\"ai-activity-row-decision\"\n >\n {titles ? (\n <>\n <p className=\"text-xs font-medium text-muted-foreground\">\n Suggested titles\n </p>\n <ul className=\"list-inside list-disc text-sm\">\n {titles.map((title, index) => (\n <li key={index}>{title}</li>\n ))}\n </ul>\n </>\n ) : run.decision != null ? (\n <>\n <p className=\"text-xs font-medium text-muted-foreground\">\n Recorded decision\n </p>\n <pre className=\"overflow-x-auto rounded-md bg-muted p-2 text-xs\">\n {JSON.stringify(run.decision, null, 2)}\n </pre>\n </>\n ) : (\n <p className=\"text-xs text-muted-foreground\">Nothing was recorded.</p>\n )}\n </div>\n )}\n </CardContent>\n </Card>\n );\n })}\n <p className=\"text-xs text-muted-foreground\">\n Showing {runs.length} of {total}.\n </p>\n {hasMore && (\n <div className=\"flex justify-center\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n disabled={loadingMore}\n onClick={() => void loadMore()}\n data-testid=\"ai-activity-show-more\"\n >\n {loadingMore ? 'Loading…' : 'Show more'}\n </Button>\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AiPlanPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/AiPlanPagePage.tsx"],"names":[],"mappings":"AAgGA,wBAAgB,cAAc,4CAoa7B"}