@burdenoff/microfe-planmagnet 2026.1008.2 → 2026.1008.4

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 +93 -82
  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 +0 -2
  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.d.ts +2 -1
  793. package/dist/planmagnet/satisfaction/satisfaction.js +2 -4
  794. package/dist/planmagnet/satisfaction/satisfactionCsv.js +0 -2
  795. package/dist/planmagnet/satisfaction/satisfactionForm.js +0 -2
  796. package/dist/planmagnet/satisfaction/satisfactionOperations.js +0 -2
  797. package/dist/planmagnet/satisfaction/useSatisfactionAccess.js +0 -2
  798. package/dist/planmagnet/skills/RequiredSkillsEditor.js +0 -2
  799. package/dist/planmagnet/skills/SkillChips.js +0 -2
  800. package/dist/planmagnet/skills/SkillCoverageCard.js +0 -2
  801. package/dist/planmagnet/skills/WorkItemRequiredSkills.js +0 -2
  802. package/dist/planmagnet/skills/skillOperations.js +0 -2
  803. package/dist/planmagnet/skills/skillTags.js +0 -2
  804. package/dist/planmagnet/skills/useRequiredSkillsDraft.js +0 -2
  805. package/dist/planmagnet/sprints/SprintControls.js +0 -2
  806. package/dist/planmagnet/sprints/SprintDates.js +0 -2
  807. package/dist/planmagnet/store/planmagnetStore.js +0 -2
  808. package/dist/planmagnet/team/PendingInvitations.js +0 -2
  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":"DashboardsLeadershipPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/DashboardsLeadershipPagePage.tsx"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH,wBAAgB,4BAA4B,4CA0E3C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DashboardsLeadershipPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/DashboardsLeadershipPagePage.tsx"],"sourcesContent":["import { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { Crown } from 'lucide-react';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { ObjectivesProgressCard } from '../dashboards/cards/ObjectivesProgressCard';\nimport { RoadmapHorizonCard } from '../dashboards/cards/RoadmapHorizonCard';\nimport { TeamCapacityCard } from '../dashboards/cards/TeamCapacityCard';\nimport { useLiveRefresh } from '../hooks/useLiveRefresh';\nimport { LiveStatus } from '../controls/LiveStatus';\n\n/** Every card's own query on this page (CWF-31). */\nconst LEADERSHIP_QUERIES = [\n 'DashboardActiveObjectives',\n 'DashboardRoadmapList',\n 'DashboardRoadmapHorizonCounts',\n 'DashboardTeamCapacity',\n];\n\n/**\n * Leadership dashboard (CWF-31): one combined view of product strategy (objective/key-result progress,\n * roadmap Now/Next/Later counts) and a team utilization summary. Reuses the exact card components the\n * Executive (ANR-06) and Team Utilization (ANR-28) dashboards use — `ObjectivesProgressCard` and\n * `TeamCapacityCard` are the same components, not rebuilt here.\n */\nexport function DashboardsLeadershipPagePage() {\n const { workspaceId } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n const { t } = useI18n();\n // Live updates (ANR-23): workspace-wide work item events, throttled to at most once per 15s.\n const live = useLiveRefresh({\n kind: 'workItem',\n queries: LEADERSHIP_QUERIES,\n minIntervalMs: 15000,\n });\n\n return (\n <div data-testid=\"dashboard-leadership\" className=\"space-y-6 p-6\">\n <div>\n <div className=\"flex items-center gap-2\">\n <h1 className=\"flex items-center gap-2 text-2xl font-semibold\">\n <Crown className=\"h-5 w-5 text-primary\" />\n {t('planmagnet.dashboards.leadership.title', 'Leadership dashboard')}\n </h1>\n <LiveStatus mode={live.mode} />\n </div>\n <p className=\"text-sm text-muted-foreground\">\n {t(\n 'planmagnet.dashboards.leadership.subtitle',\n 'Product strategy and team utilization, combined.'\n )}\n </p>\n </div>\n\n <section className=\"space-y-3\">\n <h2 className=\"text-lg font-semibold\">\n {t('planmagnet.dashboards.leadership.strategy', 'Product strategy')}\n </h2>\n <div className=\"grid grid-cols-1 gap-6 lg:grid-cols-2\">\n <ObjectivesProgressCard\n workspaceId={workspaceId}\n title={t(\n 'planmagnet.dashboards.leadership.objectives.title',\n 'Objectives & key results'\n )}\n definition={t(\n 'planmagnet.dashboards.leadership.objectives.definition',\n \"Company objectives and their progress — the average of each one's key results.\"\n )}\n onDrillDown={() => navigate('/goals/goals-page')}\n />\n <RoadmapHorizonCard\n workspaceId={workspaceId}\n onDrillDown={() => navigate('/products/roadmaps-page')}\n />\n </div>\n </section>\n\n <section className=\"space-y-3\">\n <h2 className=\"text-lg font-semibold\">\n {t('planmagnet.dashboards.leadership.utilization', 'Team utilization summary')}\n </h2>\n <div className=\"grid grid-cols-1 gap-6 lg:grid-cols-2\">\n <TeamCapacityCard\n workspaceId={workspaceId}\n title={t('planmagnet.dashboards.leadership.teams.title', 'Teams: capacity')}\n definition={t(\n 'planmagnet.dashboards.leadership.teams.definition',\n \"Every team's sprint capacity. Open a team for its live open-workload breakdown.\"\n )}\n onDrillDown={() => navigate('/team/teams-page')}\n onOpenTeam={(teamId) =>\n navigate(`/dashboards/team-utilization-page?team=${encodeURIComponent(teamId)}`)\n }\n />\n </div>\n </section>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AAUA,IAAM,IAAqB;CACzB;CACA;CACA;CACA;CACD;AAQD,SAAgB,IAA+B;CAC7C,IAAM,EAAE,mBAAgB,GAAe,EACjC,IAAW,GAAuB,EAClC,EAAE,SAAM,GAAS,EAEjB,IAAO,EAAe;EAC1B,MAAM;EACN,SAAS;EACT,eAAe;EAChB,CAAC;AAEF,QACE,kBAAC,OAAD;EAAK,eAAY;EAAuB,WAAU;YAAlD;GACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,MAAD;KAAI,WAAU;eAAd,CACE,kBAAC,GAAD,EAAO,WAAU,wBAAyB,CAAA,EACzC,EAAE,0CAA0C,uBAAuB,CACjE;QACL,kBAAC,GAAD,EAAY,MAAM,EAAK,MAAQ,CAAA,CAC3B;OACN,kBAAC,KAAD;IAAG,WAAU;cACV,EACC,6CACA,mDACD;IACC,CAAA,CACA,EAAA,CAAA;GAEN,kBAAC,WAAD;IAAS,WAAU;cAAnB,CACE,kBAAC,MAAD;KAAI,WAAU;eACX,EAAE,6CAA6C,mBAAmB;KAChE,CAAA,EACL,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MACe;MACb,OAAO,EACL,qDACA,2BACD;MACD,YAAY,EACV,0DACA,iFACD;MACD,mBAAmB,EAAS,oBAAoB;MAChD,CAAA,EACF,kBAAC,GAAD;MACe;MACb,mBAAmB,EAAS,0BAA0B;MACtD,CAAA,CACE;OACE;;GAEV,kBAAC,WAAD;IAAS,WAAU;cAAnB,CACE,kBAAC,MAAD;KAAI,WAAU;eACX,EAAE,gDAAgD,2BAA2B;KAC3E,CAAA,EACL,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,GAAD;MACe;MACb,OAAO,EAAE,gDAAgD,kBAAkB;MAC3E,YAAY,EACV,qDACA,kFACD;MACD,mBAAmB,EAAS,mBAAmB;MAC/C,aAAa,MACX,EAAS,0CAA0C,mBAAmB,EAAO,GAAG;MAElF,CAAA;KACE,CAAA,CACE;;GACN"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DashboardsProjectManagerPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/DashboardsProjectManagerPagePage.tsx"],"names":[],"mappings":"AAsDA;;;;GAIG;AACH,wBAAgB,gCAAgC,4CA0I/C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DashboardsProjectManagerPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/DashboardsProjectManagerPagePage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { ClipboardList } from 'lucide-react';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { ProjectSelect } from '../controls/Pickers';\nimport { readUrlParam, writeUrlParam } from '../utils/urlParam';\nimport { detailPath } from '../utils/rowNavigation';\nimport { DashboardCardShell } from '../dashboards/DashboardUI';\nimport { TaskCompletionCard } from '../dashboards/cards/TaskCompletionCard';\nimport { QualityMetricsCard } from '../dashboards/cards/QualityMetricsCard';\nimport { RiskSeverityCard } from '../dashboards/cards/RiskSeverityCard';\nimport { SprintCapacityCard } from '../dashboards/cards/SprintCapacityCard';\nimport { SprintBurndownCard, SprintVelocityCard } from './analytics/SprintDeliveryCards';\nimport { SkillCoverageCard } from '../skills/SkillCoverageCard';\nimport { useLiveRefresh, combineLiveRefreshModes } from '../hooks/useLiveRefresh';\nimport { LiveStatus } from '../controls/LiveStatus';\n\nconst THIRTY_DAYS_MS = 30 * 24 * 60 * 60 * 1000;\n\n/** Every card's own query on this page (ANR-07), scoped to the picked project. */\nconst PM_QUERIES = [\n 'DashboardProjectSprints',\n 'DashboardVelocity',\n 'DashboardSprintBurndown',\n 'DashboardProjectWorkItemCounts',\n 'DashboardQualityMetrics',\n 'DashboardProjectRisks',\n 'DashboardSprintCapacity',\n 'SkillCoverage',\n];\n\n/** The project's sprints, to find the running one for burndown/capacity — same lookup\n * `pages/AnalyticsAnalyticsPagePage.tsx` runs, scoped to the picked project. */\nconst GET_PROJECT_SPRINTS = gql`\n query DashboardProjectSprints($workspaceId: ID!, $projectId: String) {\n planmagnetSprints(\n workspaceId: $workspaceId\n filter: { projectId: $projectId }\n pagination: { first: 100 }\n ) {\n items {\n id\n status\n }\n }\n }\n`;\n\ninterface ProjectSprintsData {\n planmagnetSprints: { items: { id: string; status: string }[] };\n}\n\n/**\n * Project manager dashboard (ANR-07): velocity, burndown, task completion, quality/defects, risk tracking,\n * sprint capacity and skills coverage for one picked project. The project stays in the URL (`?project=`) so\n * the page can be shared or bookmarked pointed at a specific project.\n */\nexport function DashboardsProjectManagerPagePage() {\n const { workspaceId } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n const { t } = useI18n();\n const [projectId, setProjectId] = useState(() => readUrlParam('project') ?? '');\n const handleProjectChange = (id: string) => {\n setProjectId(id);\n writeUrlParam('project', id || null);\n };\n // Fixed for the life of the page.\n const [now] = useState(() => Date.now());\n const startDate = new Date(now - THIRTY_DAYS_MS).toISOString();\n const endDate = new Date(now).toISOString();\n\n const { data: sprintsData } = useQuery<ProjectSprintsData>(GET_PROJECT_SPRINTS, {\n variables: { workspaceId, projectId },\n skip: !workspaceId || !projectId,\n });\n const sprints = sprintsData?.planmagnetSprints.items ?? [];\n const activeSprintId =\n sprints.find((s) => s.status === 'ACTIVE' || s.status === 'REVIEW')?.id ?? '';\n\n // Live updates (ANR-23): work item AND sprint events for the picked project, throttled to at most once per\n // 15s — off entirely until a project is picked (no `projectId` means no scope to subscribe to).\n const workItemLive = useLiveRefresh({\n kind: 'workItem',\n projectId,\n enabled: Boolean(projectId),\n queries: PM_QUERIES,\n minIntervalMs: 15000,\n });\n const sprintLive = useLiveRefresh({\n kind: 'sprint',\n projectId,\n enabled: Boolean(projectId),\n queries: PM_QUERIES,\n minIntervalMs: 15000,\n });\n const liveMode = combineLiveRefreshModes(workItemLive.mode, sprintLive.mode);\n\n return (\n <div data-testid=\"dashboard-pm\" className=\"space-y-6 p-6\">\n <div className=\"flex flex-wrap items-center justify-between gap-3\">\n <div>\n <div className=\"flex items-center gap-2\">\n <h1 className=\"flex items-center gap-2 text-2xl font-semibold\">\n <ClipboardList className=\"h-5 w-5 text-primary\" />\n {t('planmagnet.dashboards.pm.title', 'Project manager dashboard')}\n </h1>\n <LiveStatus mode={liveMode} />\n </div>\n <p className=\"text-sm text-muted-foreground\">\n {t(\n 'planmagnet.dashboards.pm.subtitleWithSkills',\n 'Velocity, burndown, task completion, quality, risk, capacity and skills coverage for one project.'\n )}\n </p>\n </div>\n <div className=\"w-full max-w-xs\">\n <ProjectSelect\n id=\"pm-dashboard-project\"\n value={projectId}\n onChange={handleProjectChange}\n noneLabel={t('planmagnet.dashboards.pm.selectProject', 'Select a project…')}\n />\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 gap-6 lg:grid-cols-2\">\n <DashboardCardShell\n drillDown={\n projectId\n ? {\n label: t('planmagnet.dashboards.pm.openAnalytics', 'Open delivery analytics'),\n onClick: () =>\n navigate(`/analytics/analytics-page?project=${encodeURIComponent(projectId)}`),\n }\n : undefined\n }\n >\n <SprintVelocityCard\n workspaceId={workspaceId}\n projectId={projectId}\n trailingSprintCount={6}\n />\n </DashboardCardShell>\n <DashboardCardShell\n drillDown={\n projectId\n ? {\n label: t('planmagnet.dashboards.pm.openAnalytics', 'Open delivery analytics'),\n onClick: () =>\n navigate(`/analytics/analytics-page?project=${encodeURIComponent(projectId)}`),\n }\n : undefined\n }\n >\n <SprintBurndownCard workspaceId={workspaceId} sprintId={activeSprintId} />\n </DashboardCardShell>\n <TaskCompletionCard\n workspaceId={workspaceId}\n projectId={projectId}\n onDrillDown={() => navigate(detailPath('/projects/project-detail-page', projectId))}\n />\n <QualityMetricsCard\n workspaceId={workspaceId}\n projectId={projectId}\n startDate={startDate}\n endDate={endDate}\n onDrillDown={() =>\n navigate(`/projects/quality-gates-page?projectId=${encodeURIComponent(projectId)}`)\n }\n />\n <RiskSeverityCard\n workspaceId={workspaceId}\n projectId={projectId}\n onDrillDown={() =>\n navigate(`/risks/risk-register-page?projectId=${encodeURIComponent(projectId)}`)\n }\n />\n <SprintCapacityCard\n sprintId={activeSprintId}\n onDrillDown={() => navigate(detailPath('/projects/project-detail-page', projectId))}\n />\n {/* ANR-07 skill view: the project's open work by required skill, against CrewFoundry skills. */}\n <div className=\"lg:col-span-2\">\n <SkillCoverageCard\n workspaceId={workspaceId}\n projectId={projectId}\n notReadyMessage={t(\n 'planmagnet.skills.coverage.pickProject',\n 'Select a project to see which skills its open work needs.'\n )}\n />\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DashboardsTeamUtilizationPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/DashboardsTeamUtilizationPagePage.tsx"],"names":[],"mappings":"AA4CA;;;GAGG;AACH,wBAAgB,iCAAiC,4CA0FhD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DashboardsTeamUtilizationPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/DashboardsTeamUtilizationPagePage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\nimport { UsersRound } from 'lucide-react';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { TeamSelect } from '../controls/Pickers';\nimport { readUrlParam, writeUrlParam } from '../utils/urlParam';\nimport { detailPath } from '../utils/rowNavigation';\nimport { TeamOverviewCard } from '../dashboards/cards/TeamOverviewCard';\nimport { TeamWorkloadCard } from '../dashboards/cards/TeamWorkloadCard';\nimport { TimeLoggedCard } from '../dashboards/cards/TimeLoggedCard';\nimport { SkillCoverageCard } from '../skills/SkillCoverageCard';\nimport { useLiveRefresh } from '../hooks/useLiveRefresh';\nimport { LiveStatus } from '../controls/LiveStatus';\n\nconst FOUR_WEEKS_MS = 28 * 24 * 60 * 60 * 1000;\n\n/** Every card's own query on this page (ANR-28). `DashboardTeamMemberIds` is this page's own query, above. */\nconst TEAM_QUERIES = [\n 'DashboardTeamMemberIds',\n 'DashboardTeamOverview',\n 'TeamMemberWorkload',\n 'TeamMemberTimeLogged',\n 'SkillCoverage',\n];\n\n/** Just the member actor ids, for the workload/time-logged cards below — the team's own capacity/lead comes\n * from `TeamOverviewCard`'s own query; this is separate so a team switch only refetches what changed. */\nconst GET_TEAM_MEMBER_IDS = gql`\n query DashboardTeamMemberIds($id: ID!) {\n planmagnetTeam(id: $id) {\n id\n members {\n actorId\n }\n }\n }\n`;\n\ninterface TeamMemberIdsData {\n planmagnetTeam: { id: string; members: { actorId: string }[] } | null;\n}\n\n/**\n * Team utilization dashboard (ANR-28): capacity/allocation, workload distribution, individual delivery,\n * time logged and skill coverage for one picked team. The team stays in the URL (`?team=`).\n */\nexport function DashboardsTeamUtilizationPagePage() {\n const { workspaceId } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n const { t } = useI18n();\n const [teamId, setTeamId] = useState(() => readUrlParam('team') ?? '');\n const handleTeamChange = (id: string) => {\n setTeamId(id);\n writeUrlParam('team', id || null);\n };\n // Fixed for the life of the page.\n const [since] = useState(() => new Date(Date.now() - FOUR_WEEKS_MS).toISOString());\n\n const { data } = useQuery<TeamMemberIdsData>(GET_TEAM_MEMBER_IDS, {\n variables: { id: teamId },\n skip: !teamId,\n });\n\n // Live updates (ANR-23): no subscription is scoped by team (a team's members' work can span several\n // projects), so this is workspace-wide work item events, throttled to at most once per 15s — off until a\n // team is actually picked, since nothing on the page depends on it before then.\n const live = useLiveRefresh({\n kind: 'workItem',\n enabled: Boolean(teamId),\n queries: TEAM_QUERIES,\n minIntervalMs: 15000,\n });\n const memberActorIds = data?.planmagnetTeam?.members.map((m) => m.actorId) ?? [];\n\n return (\n <div data-testid=\"dashboard-team\" className=\"space-y-6 p-6\">\n <div className=\"flex flex-wrap items-center justify-between gap-3\">\n <div>\n <div className=\"flex items-center gap-2\">\n <h1 className=\"flex items-center gap-2 text-2xl font-semibold\">\n <UsersRound className=\"h-5 w-5 text-primary\" />\n {t('planmagnet.dashboards.team.title', 'Team utilization dashboard')}\n </h1>\n <LiveStatus mode={live.mode} />\n </div>\n <p className=\"text-sm text-muted-foreground\">\n {t(\n 'planmagnet.dashboards.team.subtitleWithSkills',\n 'Capacity, workload, individual delivery, time logged and skill coverage for one team.'\n )}\n </p>\n </div>\n <div className=\"w-full max-w-xs\">\n <TeamSelect\n id=\"team-dashboard-team\"\n value={teamId}\n onChange={handleTeamChange}\n noneLabel={t('planmagnet.dashboards.team.selectTeam', 'Select a team…')}\n />\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 gap-6 lg:grid-cols-2\">\n <TeamOverviewCard\n teamId={teamId}\n onDrillDown={() => navigate(detailPath('/team/team-detail-page', teamId))}\n />\n <TeamWorkloadCard\n workspaceId={workspaceId}\n memberActorIds={memberActorIds}\n sinceIso={since}\n weeks={4}\n onDrillDown={() => navigate(detailPath('/team/team-detail-page', teamId))}\n />\n <TimeLoggedCard\n workspaceId={workspaceId}\n memberActorIds={memberActorIds}\n sinceIso={since}\n weeks={4}\n onDrillDown={() => navigate('/tasks/time-entries-page')}\n />\n {/* ANR-28 skill utilization: the team's open work by required skill, against its members' CrewFoundry\n skills (only this team's members count as qualified). */}\n <div className=\"lg:col-span-2\">\n <SkillCoverageCard\n workspaceId={workspaceId}\n teamId={teamId}\n notReadyMessage={t(\n 'planmagnet.skills.coverage.pickTeam',\n 'Select a team to see which skills its open work needs.'\n )}\n />\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAgBA,IAAM,IAAgB,MAAU,KAAK,KAAK,KAGpC,IAAe;CACnB;CACA;CACA;CACA;CACA;CACD,EAIK,IAAsB,CAAG;;;;;;;;;;AAmB/B,SAAgB,IAAoC;CAClD,IAAM,EAAE,mBAAgB,GAAe,EACjC,IAAW,GAAuB,EAClC,EAAE,SAAM,GAAS,EACjB,CAAC,GAAQ,KAAa,QAAe,EAAa,OAAO,IAAI,GAAG,EAChE,KAAoB,MAAe;AAEvC,EADA,EAAU,EAAG,EACb,EAAc,QAAQ,KAAM,KAAK;IAG7B,CAAC,KAAS,QAAe,IAAI,KAAK,KAAK,KAAK,GAAG,EAAc,CAAC,aAAa,CAAC,EAE5E,EAAE,YAAS,EAA4B,GAAqB;EAChE,WAAW,EAAE,IAAI,GAAQ;EACzB,MAAM,CAAC;EACR,CAAC,EAKI,IAAO,EAAe;EAC1B,MAAM;EACN,SAAS,EAAQ;EACjB,SAAS;EACT,eAAe;EAChB,CAAC,EACI,IAAiB,GAAM,gBAAgB,QAAQ,KAAK,MAAM,EAAE,QAAQ,IAAI,EAAE;AAEhF,QACE,kBAAC,OAAD;EAAK,eAAY;EAAiB,WAAU;YAA5C,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,MAAD;KAAI,WAAU;eAAd,CACE,kBAAC,GAAD,EAAY,WAAU,wBAAyB,CAAA,EAC9C,EAAE,oCAAoC,6BAA6B,CACjE;QACL,kBAAC,GAAD,EAAY,MAAM,EAAK,MAAQ,CAAA,CAC3B;OACN,kBAAC,KAAD;IAAG,WAAU;cACV,EACC,iDACA,wFACD;IACC,CAAA,CACA,EAAA,CAAA,EACN,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,GAAD;KACE,IAAG;KACH,OAAO;KACP,UAAU;KACV,WAAW,EAAE,yCAAyC,iBAAiB;KACvE,CAAA;IACE,CAAA,CACF;MAEN,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,GAAD;KACU;KACR,mBAAmB,EAAS,EAAW,0BAA0B,EAAO,CAAC;KACzE,CAAA;IACF,kBAAC,GAAD;KACe;KACG;KAChB,UAAU;KACV,OAAO;KACP,mBAAmB,EAAS,EAAW,0BAA0B,EAAO,CAAC;KACzE,CAAA;IACF,kBAAC,GAAD;KACe;KACG;KAChB,UAAU;KACV,OAAO;KACP,mBAAmB,EAAS,2BAA2B;KACvD,CAAA;IAGF,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,GAAD;MACe;MACL;MACR,iBAAiB,EACf,uCACA,yDACD;MACD,CAAA;KACE,CAAA;IACF;KACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DocsDocDetailPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/DocsDocDetailPagePage.tsx"],"names":[],"mappings":"AAwTA,wBAAgB,qBAAqB,4CA+wBpC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DocsDocDetailPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/DocsDocDetailPagePage.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useSearchParams } from 'react-router';\nimport { gql } from '@apollo/client';\nimport { useApolloClient, useMutation, useQuery, useSubscription } from '@apollo/client/react';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Checkbox,\n Input,\n} from '@burdenoff/fe-libs/ui';\nimport { Markdown } from '@burdenoff/fe-libs/shared/components';\nimport { clearGraphqlFetchResponseCache } from '@burdenoff/fe-libs/shared/graphql';\nimport { ArrowLeft, BadgeCheck, History, Link2, Lock, ShieldCheck, X } from 'lucide-react';\nimport { WorkItemSearchSelect } from '../controls/Pickers';\nimport { MarkdownEditor } from '#src/components/MarkdownEditor';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { PersonName } from '../people/People';\nimport { throwOnError, LEAVES_PAGE_CONTEXT } from '../utils/mutationResult';\nimport { isForbidden, mutationErrorMessage } from '../utils/graphqlErrors';\nimport { DOC_STATUSES, DocStatusBadge, type DocStatus } from '../docs/DocStatusBadge';\nimport { DocComments } from '../comments/TargetComments';\nimport { usePresence } from '../hooks/usePresence';\nimport { PresenceAvatars } from '../presence/PresenceAvatars';\nimport { DocSuggestionsPanel } from '../docs/DocSuggestionsPanel';\nimport { DocVersionCompare } from '../docs/DocVersionCompare';\n\n/**\n * One doc (P1.4): read it, edit it with a change note, publish or archive it,\n * browse its history and restore an older version, see and unlink the work\n * items it is attached to, and delete it.\n *\n * Every write carries `expectedVersion` — the version on screen — so a save\n * over someone else's newer edit is refused with the reason, and the editor\n * keeps the unsaved text rather than overwriting theirs.\n */\n\nconst DOC = gql`\n query DocDetail($id: ID!, $approvedOnly: Boolean) {\n planmagnetDoc(id: $id) {\n id\n title\n content\n status\n version\n createdBy\n createdAt\n updatedBy\n updatedAt\n lock {\n holderId\n acquiredAt\n expiresAt\n }\n # GAP-07: the spec-of-record — null until any revision has ever been approved.\n approvedRevision {\n id\n version\n title\n approvedBy\n approvedAt\n }\n revisions(approvedOnly: $approvedOnly) {\n id\n version\n title\n content\n changeNote\n createdBy\n createdAt\n approvedBy\n approvedAt\n }\n linkedWorkItems {\n id\n key\n title\n }\n }\n }\n`;\nconst UPDATE = gql`\n mutation DocUpdate($id: ID!, $input: PlanmagnetUpdateDocInput!) {\n planmagnetUpdateDoc(id: $id, input: $input) {\n id\n version\n status\n }\n }\n`;\nconst REVERT = gql`\n mutation DocRevert($id: ID!, $toVersion: Int!, $expectedVersion: Int) {\n planmagnetRevertDoc(id: $id, toVersion: $toVersion, expectedVersion: $expectedVersion) {\n id\n version\n }\n }\n`;\nconst DELETE = gql`\n mutation DocDelete($id: ID!) {\n planmagnetDeleteDoc(id: $id)\n }\n`;\nconst LINK = gql`\n mutation DocLinkWorkItem($docId: ID!, $workItemId: ID!) {\n planmagnetLinkDocToWorkItem(docId: $docId, workItemId: $workItemId) {\n id\n }\n }\n`;\n\nconst UNLINK = gql`\n mutation DocUnlinkWorkItem($docId: ID!, $workItemId: ID!) {\n planmagnetUnlinkDocFromWorkItem(docId: $docId, workItemId: $workItemId)\n }\n`;\n\n// GAP-07: mark a revision approved as the spec-of-record. Gated on the doc's `delete` RBAC tier (approver-level\n// roles only — see the mutation's own schema doc comment) and refused BAD_USER_INPUT on self-approval, with no\n// exception; both refusals are shown verbatim (mutationErrorMessage), never paraphrased.\nconst APPROVE_REVISION = gql`\n mutation DocApproveRevision($revisionId: ID!) {\n planmagnetApproveDocRevision(revisionId: $revisionId) {\n id\n version\n approvedBy\n approvedAt\n }\n }\n`;\n\n// CWF-18 §1: the checkout lock. Acquire/renew share one mutation (15-minute TTL either way); release is\n// holder-only; break force-releases anyone's.\nconst CHECKOUT_DOC = gql`\n mutation DocCheckout($docId: ID!) {\n planmagnetCheckoutDoc(docId: $docId) {\n id\n lock {\n holderId\n acquiredAt\n expiresAt\n }\n }\n }\n`;\nconst RELEASE_DOC = gql`\n mutation DocReleaseLock($docId: ID!) {\n planmagnetReleaseDoc(docId: $docId) {\n id\n lock {\n holderId\n acquiredAt\n expiresAt\n }\n }\n }\n`;\nconst BREAK_DOC_LOCK = gql`\n mutation DocBreakLock($docId: ID!) {\n planmagnetBreakDocLock(docId: $docId) {\n id\n lock {\n holderId\n acquiredAt\n expiresAt\n }\n }\n }\n`;\n\n// CWF-18 §2: propose an edit without checking the doc out — gated on `create`, not `update` (see the schema doc\n// comment on planmagnetSuggestDocEdit), so a reviewer who can comment but not edit can still propose one.\nconst SUGGEST_DOC_EDIT = gql`\n mutation DocSuggestEdit($input: PlanmagnetSuggestDocEditInput!) {\n planmagnetSuggestDocEdit(input: $input) {\n id\n status\n }\n }\n`;\n\n// CWF-18: live doc changes (content/title/status edits, and lock acquire/release) — a thin event that triggers a\n// re-read of DocDetail under the caller's own permissions, same discipline `useLiveRefresh` uses elsewhere.\nconst ON_DOC_UPDATED = gql`\n subscription PlanmagnetOnDocUpdatedFeed($docId: ID!, $workspaceId: ID!) {\n planmagnetOnDocUpdated(docId: $docId, workspaceId: $workspaceId) {\n id\n kind\n actorId\n changedFields\n at\n }\n }\n`;\n\ninterface Revision {\n id: string;\n version: number;\n title: string;\n content: string;\n changeNote: string | null;\n createdBy: string;\n createdAt: string;\n /** GAP-07: null until `planmagnetApproveDocRevision` is called on this revision. */\n approvedBy: string | null;\n approvedAt: string | null;\n}\n\ninterface DocLock {\n holderId: string;\n acquiredAt: string;\n expiresAt: string;\n}\n\n/** GAP-07: `PlanmagnetDoc.approvedRevision` — the spec-of-record, or null when none has ever been approved. */\ninterface ApprovedRevisionRef {\n id: string;\n version: number;\n title: string;\n approvedBy: string | null;\n approvedAt: string | null;\n}\n\ninterface Doc {\n id: string;\n title: string;\n content: string;\n status: string;\n version: number;\n createdBy: string;\n createdAt: string;\n updatedBy: string | null;\n updatedAt: string;\n lock: DocLock | null;\n approvedRevision: ApprovedRevisionRef | null;\n revisions: Revision[];\n linkedWorkItems: { id: string; key: string; title: string }[];\n}\n\ntype DocMode = 'view' | 'edit' | 'suggest';\n\nconst messageOf = (e: unknown, fallback: string) => (e instanceof Error ? e.message : fallback);\nconst when = (iso: string) => new Date(iso).toLocaleString();\n\n/** \"You are editing — lock expires in N min\" / \"Being edited by X until HH:MM\" + Break lock for everyone else\n * (CWF-18 §1). Renders nothing on a free doc — there is nothing to report. */\nfunction DocLockBanner({\n lock,\n currentUserId,\n now,\n onBreakLock,\n breaking,\n}: {\n lock: DocLock;\n currentUserId: string | undefined;\n now: number;\n onBreakLock: () => void;\n breaking: boolean;\n}) {\n const mine = lock.holderId === currentUserId;\n const minutesLeft = Math.max(0, Math.round((new Date(lock.expiresAt).getTime() - now) / 60_000));\n const until = new Date(lock.expiresAt).toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit',\n });\n\n if (mine) {\n return (\n <p\n role=\"status\"\n data-testid=\"doc-lock-status\"\n className=\"flex items-center gap-1.5 text-sm text-status-warning-text\"\n >\n <Lock className=\"h-3.5 w-3.5\" aria-hidden=\"true\" />\n You are editing — lock expires in {minutesLeft} min.\n </p>\n );\n }\n return (\n <div\n data-testid=\"doc-lock-status\"\n className=\"flex flex-wrap items-center justify-between gap-2 rounded-md border border-status-warning-border bg-status-warning-subtle p-2\"\n >\n <p className=\"flex items-center gap-1.5 text-sm text-status-warning-text\">\n <Lock className=\"h-3.5 w-3.5\" aria-hidden=\"true\" />\n Being edited by <PersonName id={lock.holderId} /> until {until}.\n </p>\n <Button\n size=\"sm\"\n variant=\"outline\"\n disabled={breaking}\n onClick={onBreakLock}\n data-testid=\"doc-break-lock\"\n >\n {breaking ? 'Breaking…' : 'Break lock'}\n </Button>\n </div>\n );\n}\n\nexport function DocsDocDetailPagePage() {\n const [params] = useSearchParams();\n const docId = params.get('docId') ?? '';\n const navigate = usePlanMagnetNavigate();\n const { workspaceId, currentUser } = usePlanMagnet();\n const [mode, setMode] = useState<DocMode>('view');\n const [title, setTitle] = useState('');\n const [content, setContent] = useState('');\n const [changeNote, setChangeNote] = useState('');\n const [error, setError] = useState<string | null>(null);\n const [viewing, setViewing] = useState<number | null>(null);\n // The version the editor started from — not the one on screen now, which a\n // refetch after someone else's save may already have moved past.\n const [editBase, setEditBase] = useState<number | null>(null);\n // GAP-07: revisions(approvedOnly) — narrows the History list below to only the revisions that have ever been\n // approved as the spec of record.\n const [approvedOnly, setApprovedOnly] = useState(false);\n const [approveError, setApproveError] = useState<string | null>(null);\n\n // CWF-18 §2: a \"Suggest an edit\" draft — kept entirely separate from the edit-mode state above, since\n // suggesting never needs the checkout lock.\n const [suggestTitle, setSuggestTitle] = useState('');\n const [suggestContent, setSuggestContent] = useState('');\n const [suggestNote, setSuggestNote] = useState('');\n const [suggestError, setSuggestError] = useState<string | null>(null);\n // The version/title suggestContent/suggestTitle were actually copied from — pinned at startSuggest(), same\n // reason `editBase` is pinned at startEdit(): the live-refresh subscription below re-reads `doc` (so\n // `doc.version`/`doc.title` can advance from someone ELSE's concurrent save) while this draft sits open, and the\n // suggestion must declare the base it was really diffed against, not whatever happens to be on screen at submit\n // time. `suggestBaseTitle` matters even though only `suggestTitle` (the editable draft) is ever sent: without it,\n // \"did the user actually change the title\" gets decided by comparing the draft to a `doc.title` that may have\n // moved since the draft was copied from it, sending a spurious `proposedTitle` (the OLD title) whenever someone\n // else renamed the doc concurrently and the user never touched the title field at all.\n const [suggestBaseVersion, setSuggestBaseVersion] = useState<number | null>(null);\n const [suggestBaseTitle, setSuggestBaseTitle] = useState('');\n\n // CWF-24: who else is looking at this doc right now, and who's mid-comment.\n const presence = usePresence('DOC', docId || null);\n\n const {\n data,\n loading,\n error: loadError,\n } = useQuery<{ planmagnetDoc: Doc | null }>(DOC, {\n variables: { id: docId, approvedOnly },\n skip: !docId,\n // Cached copies go stale here: a deleted doc, or someone else's newer version.\n fetchPolicy: 'cache-and-network',\n });\n const client = useApolloClient();\n const after = { refetchQueries: ['DocDetail'], awaitRefetchQueries: true };\n const [update, updateState] = useMutation(UPDATE, after);\n const [revert, revertState] = useMutation(REVERT, after);\n // GAP-07.\n const [approveRevision, approveState] = useMutation(APPROVE_REVISION, after);\n const [remove, removeState] = useMutation(DELETE, {\n refetchQueries: ['DocsList'],\n context: LEAVES_PAGE_CONTEXT,\n });\n const [unlink, unlinkState] = useMutation(UNLINK, after);\n const [link, linkState] = useMutation(LINK, {\n ...after,\n refetchQueries: ['DocDetail', 'GetWorkItemDocs'],\n });\n // BOFF-7961: link this doc to a work item from here too (it could only be linked when created from a task).\n const [linkChoice, setLinkChoice] = useState('');\n\n // CWF-18 §1: the checkout lock. `checkout` doubles as the renew call (see the effect below) — acquiring and\n // renewing are the same mutation server-side.\n const [checkout, checkoutState] = useMutation(CHECKOUT_DOC, after);\n const [release] = useMutation(RELEASE_DOC, after);\n const [breakLock, breakLockState] = useMutation(BREAK_DOC_LOCK, after);\n // CWF-18 §2.\n const [suggestEdit, suggestEditState] = useMutation(SUGGEST_DOC_EDIT, {\n refetchQueries: ['DocDetail', 'DocSuggestionsPanel'],\n awaitRefetchQueries: true,\n });\n\n const doc = data?.planmagnetDoc;\n const busy = updateState.loading || revertState.loading || removeState.loading;\n\n // A ticking clock for \"lock expires in N min\", live while actively editing — 30 s is plenty for a minutes-\n // granularity display and cheap enough to never matter.\n const [now, setNow] = useState(() => Date.now());\n useEffect(() => {\n if (mode !== 'edit') return;\n const id = setInterval(() => setNow(Date.now()), 30_000);\n return () => clearInterval(id);\n }, [mode]);\n\n // Renew the 15-minute lock every 5 minutes while actively editing, so a long edit session never expires out\n // from under the editor. Best-effort: a failed renew just leaves the existing lock to run down on its own —\n // surfacing it here would interrupt someone mid-edit over something that self-heals the moment they save.\n useEffect(() => {\n if (mode !== 'edit' || !docId) return;\n const id = setInterval(() => {\n void checkout({ variables: { docId } }).catch(() => undefined);\n }, 5 * 60_000);\n return () => clearInterval(id);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, docId]);\n\n // Release on unmount (closing this view, not merely navigating within it) if this tab still holds the lock —\n // a dedicated ref-backed effect so it fires exactly once on teardown, never on an ordinary render.\n const holdingLockRef = useRef(false);\n useEffect(() => {\n holdingLockRef.current = mode === 'edit';\n }, [mode]);\n useEffect(() => {\n return () => {\n if (holdingLockRef.current && docId) {\n void client.mutate({ mutation: RELEASE_DOC, variables: { docId } }).catch(() => undefined);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // CWF-18: live refresh — re-read the doc (content, lock, everything) the moment anyone changes it, including a\n // lock acquired/released elsewhere. Degrades silently on a subscription failure (including the expected \"no\n // SSE transport\" standalone/Storybook case — see `useLiveRefresh`'s own note); this page still works, just not\n // live, exactly the same fallback story `useLiveRefresh` documents elsewhere in this MFE.\n useSubscription(ON_DOC_UPDATED, {\n variables: { docId, workspaceId: workspaceId ?? '' },\n skip: !docId || !workspaceId,\n onData: () => {\n clearGraphqlFetchResponseCache();\n void client\n .query({ query: DOC, variables: { id: docId }, fetchPolicy: 'network-only' })\n .catch(() => undefined);\n },\n onError: (subError) => {\n console.debug('[DocsDocDetailPagePage] doc subscription unavailable:', {\n message: subError instanceof Error ? subError.message : String(subError),\n });\n },\n });\n\n // Refusals are panel-level: a refused write refetches, and anything the\n // refetch re-renders must not take the reason with it.\n const run = async (action: () => Promise<{ error?: unknown }>, fallback: string) => {\n setError(null);\n try {\n await throwOnError(action());\n return true;\n } catch (e) {\n setError(messageOf(e, fallback));\n // A refusal because the doc moved on: show the current version, but\n // leave the editor's text alone so nothing typed is lost.\n //\n // fe-libs replays any identical query answered in the last 15 s\n // (fetch.ts RECENT_QUERY_CACHE_TTL_MS) underneath Apollo's fetch\n // policies, and only a SUCCESSFUL mutation clears that cache. Measured in\n // prod 2026-09-25: after a refused save, even a network-only read was\n // served the pre-refusal response, so the page kept the old version and\n // never said the doc had moved on. A refused write is still a write\n // attempt: clear the cache (the public API fe-libs documents for this),\n // then read the doc; it lands in the normalized cache the page renders.\n clearGraphqlFetchResponseCache();\n await client\n .query({ query: DOC, variables: { id: docId }, fetchPolicy: 'network-only' })\n .catch(() => undefined);\n return false;\n }\n };\n\n if (!docId) {\n return <div className=\"p-6 text-sm text-muted-foreground\">No doc selected.</div>;\n }\n if (loading && !data) {\n return <div className=\"p-6 text-sm text-muted-foreground\">Loading doc…</div>;\n }\n if (loadError && !doc) {\n return (\n <p role=\"alert\" className=\"p-6 text-sm text-destructive\">\n The doc could not be loaded: {loadError.message}\n </p>\n );\n }\n if (!doc) {\n return (\n <div className=\"space-y-3 p-6\">\n <p className=\"text-sm text-muted-foreground\">\n This doc does not exist in this workspace, or it was deleted.\n </p>\n <Button size=\"sm\" variant=\"outline\" onClick={() => navigate('/docs/docs-page')}>\n Back to docs\n </Button>\n </div>\n );\n }\n\n // CWF-18 §1: check the doc out FIRST, then enter edit mode — only once the lock is actually held. A refusal\n // (someone else holds it — CONFLICT, naming the holder) leaves the page on the read-only view with the\n // server's own reason shown, rather than opening an editor whose eventual save was never going to be safe.\n const startEdit = async () => {\n setError(null);\n try {\n await throwOnError(checkout({ variables: { docId: doc.id } }));\n } catch (e) {\n setError(\n isForbidden(e)\n ? 'Your role cannot edit this doc.'\n : mutationErrorMessage(e, 'The doc could not be checked out for editing.')\n );\n return;\n }\n setTitle(doc.title);\n setContent(doc.content);\n setChangeNote('');\n setEditBase(doc.version);\n setMode('edit');\n };\n const cancelEdit = () => {\n setMode('view');\n setError(null);\n // mutation-error: best-effort release on cancel — a failure here just leaves the advisory lock to expire on\n // its own (15-minute TTL); it must never block leaving the editor or surface as a page error.\n void release({ variables: { docId: doc.id } }).catch(() => undefined);\n };\n const save = async () => {\n const saved = await run(\n () =>\n update({\n variables: {\n id: doc.id,\n input: {\n title: title.trim(),\n content,\n ...(changeNote.trim() ? { changeNote: changeNote.trim() } : {}),\n expectedVersion: editBase,\n },\n },\n }),\n 'The doc could not be saved.'\n );\n if (saved) {\n setMode('view');\n // mutation-error: best-effort release after a successful save — the write itself already succeeded, and\n // showing a release refusal here would only confuse \"did my edit actually save?\".\n void release({ variables: { docId: doc.id } }).catch(() => undefined);\n }\n };\n\n const doBreakLock = async () => {\n setError(null);\n try {\n await throwOnError(breakLock({ variables: { docId: doc.id } }));\n } catch (e) {\n setError(\n isForbidden(e)\n ? 'Your role cannot force-release this lock.'\n : mutationErrorMessage(e, 'The lock could not be broken.')\n );\n }\n };\n\n // GAP-07: mark a revision approved as the spec of record. `mutationErrorMessage` surfaces the server's own\n // reason verbatim — including its self-approval refusal (\"the caller wrote the revision themselves\") — rather\n // than a paraphrase, since this UI cannot predict the exact wording the server chooses to explain either\n // refusal (role, or self-approval) and must not put words in its mouth.\n const doApprove = async (revisionId: string) => {\n setApproveError(null);\n try {\n await throwOnError(approveRevision({ variables: { revisionId } }));\n } catch (e) {\n setApproveError(\n isForbidden(e)\n ? 'Your role cannot approve a revision as the spec of record.'\n : mutationErrorMessage(e, 'The revision could not be approved.')\n );\n }\n };\n\n // CWF-18 §2: suggest mode needs no lock at all — it never touches the doc directly.\n const startSuggest = () => {\n setSuggestTitle(doc.title);\n setSuggestContent(doc.content);\n setSuggestNote('');\n setSuggestError(null);\n setSuggestBaseVersion(doc.version);\n setSuggestBaseTitle(doc.title);\n setMode('suggest');\n };\n const cancelSuggest = () => {\n setMode('view');\n setSuggestError(null);\n };\n const submitSuggestion = async () => {\n setSuggestError(null);\n try {\n await throwOnError(\n suggestEdit({\n variables: {\n input: {\n docId: doc.id,\n // Pinned at startSuggest(), not the live `doc.version` — see `suggestBaseVersion`'s own comment.\n // The `?? doc.version` fallback only matters if this were ever called without startSuggest having\n // run first, which the `mode === 'suggest'` gating below never allows.\n baseVersion: suggestBaseVersion ?? doc.version,\n proposedContent: suggestContent,\n ...(suggestTitle.trim() !== suggestBaseTitle\n ? { proposedTitle: suggestTitle.trim() }\n : {}),\n ...(suggestNote.trim() ? { note: suggestNote.trim() } : {}),\n },\n },\n })\n );\n setMode('view');\n } catch (e) {\n setSuggestError(\n isForbidden(e)\n ? 'Your role cannot suggest edits on this doc.'\n : mutationErrorMessage(e, 'The suggestion could not be submitted.')\n );\n }\n };\n\n const lockedByOther = !!doc.lock && doc.lock.holderId !== currentUser?.id;\n\n const revisions = [...doc.revisions].sort((a, b) => b.version - a.version);\n const shown = viewing === null ? null : revisions.find((r) => r.version === viewing);\n\n return (\n <div className=\"space-y-6 p-6\" data-testid=\"doc-detail\">\n <Button size=\"sm\" variant=\"ghost\" onClick={() => navigate('/docs/docs-page')}>\n <ArrowLeft className=\"mr-1 h-4 w-4\" />\n All docs\n </Button>\n\n <div className=\"flex flex-wrap items-start justify-between gap-3\">\n <div className=\"min-w-0 space-y-1\">\n <h1 className=\"text-2xl font-semibold break-words\" data-testid=\"doc-title\">\n {doc.title}\n </h1>\n <p className=\"text-xs text-muted-foreground\">\n <DocStatusBadge status={doc.status} /> · version {doc.version} · updated{' '}\n {when(doc.updatedAt)} by <PersonName id={doc.updatedBy ?? doc.createdBy} />\n </p>\n {/* GAP-07: the spec of record, independent of `version` above — an edit after approval moves `version`\n on without moving `approvedRevision`, so the two can (and routinely do) point at different\n versions. */}\n <p\n className=\"flex items-center gap-1.5 text-xs text-muted-foreground\"\n data-testid=\"doc-approved-revision\"\n >\n <ShieldCheck className=\"h-3.5 w-3.5\" aria-hidden=\"true\" />\n {doc.approvedRevision ? (\n <>\n Spec of record: v{doc.approvedRevision.version}, approved by{' '}\n <PersonName id={doc.approvedRevision.approvedBy} />\n {doc.approvedRevision.approvedAt\n ? ` on ${when(doc.approvedRevision.approvedAt)}`\n : ''}\n </>\n ) : (\n 'No approved revision yet'\n )}\n </p>\n <PresenceAvatars others={presence.others} />\n </div>\n {mode === 'view' && (\n <div className=\"flex flex-wrap gap-2\">\n {DOC_STATUSES.filter((s) => s !== doc.status).map((s: DocStatus) => (\n <Button\n key={s}\n size=\"sm\"\n variant=\"outline\"\n disabled={busy}\n onClick={() =>\n run(\n () =>\n update({\n variables: {\n id: doc.id,\n input: { status: s, expectedVersion: doc.version },\n },\n }),\n 'The status could not be changed.'\n )\n }\n >\n {s === 'PUBLISHED' ? 'Publish' : s === 'ARCHIVED' ? 'Archive' : 'Back to draft'}\n </Button>\n ))}\n <Button\n size=\"sm\"\n variant=\"outline\"\n onClick={startSuggest}\n disabled={suggestEditState.loading}\n data-testid=\"doc-suggest\"\n >\n Suggest an edit\n </Button>\n <Button\n size=\"sm\"\n onClick={() => void startEdit()}\n disabled={lockedByOther || checkoutState.loading}\n data-testid=\"doc-edit\"\n >\n {checkoutState.loading ? 'Checking out…' : 'Edit'}\n </Button>\n <AlertDialog>\n <AlertDialogTrigger asChild>\n <Button size=\"sm\" variant=\"outline\" disabled={busy}>\n Delete\n </Button>\n </AlertDialogTrigger>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Delete “{doc.title}”?</AlertDialogTitle>\n <AlertDialogDescription>\n The doc and its history are removed for everyone, and it is unlinked from{' '}\n {doc.linkedWorkItems.length} work item\n {doc.linkedWorkItems.length === 1 ? '' : 's'}.\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Keep it</AlertDialogCancel>\n <AlertDialogAction\n className=\"bg-destructive text-destructive-foreground hover:bg-destructive/90\"\n onClick={async () => {\n const deleted = await run(\n () => remove({ variables: { id: doc.id } }),\n 'The doc could not be deleted.'\n );\n if (deleted) navigate('/docs/docs-page');\n }}\n >\n Delete\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n </div>\n )}\n </div>\n\n {doc.lock && (\n <DocLockBanner\n lock={doc.lock}\n currentUserId={currentUser?.id}\n now={now}\n onBreakLock={() => void doBreakLock()}\n breaking={breakLockState.loading}\n />\n )}\n\n {error && (\n <p role=\"alert\" className=\"text-sm text-destructive\" data-testid=\"doc-error\">\n {error}\n </p>\n )}\n {mode === 'edit' && editBase !== doc.version && (\n <p className=\"text-sm text-status-warning-text\" data-testid=\"doc-moved-on\">\n Someone saved version {doc.version} after you started editing version {editBase}. Your\n text is kept below; copy what you need, then discard and edit the latest.\n </p>\n )}\n\n {mode === 'edit' && (\n <Card>\n <CardContent className=\"space-y-3 pt-6\">\n <Input\n aria-label=\"Doc title\"\n value={title}\n onChange={(e) => setTitle(e.target.value)}\n />\n <MarkdownEditor value={content} onChange={setContent} minHeight={240} />\n <Input\n aria-label=\"Change note\"\n placeholder=\"What changed? (optional, shown in the history)\"\n value={changeNote}\n onChange={(e) => setChangeNote(e.target.value)}\n />\n <div className=\"flex justify-end gap-2\">\n <Button size=\"sm\" variant=\"ghost\" onClick={cancelEdit}>\n {editBase !== doc.version ? 'Discard my edits' : 'Cancel'}\n </Button>\n <Button\n size=\"sm\"\n onClick={save}\n disabled={updateState.loading || editBase !== doc.version}\n data-testid=\"doc-save\"\n >\n {updateState.loading ? 'Saving…' : 'Save new version'}\n </Button>\n </div>\n </CardContent>\n </Card>\n )}\n\n {mode === 'suggest' && (\n <Card data-testid=\"doc-suggest-form\">\n <CardHeader>\n <CardTitle className=\"text-base\">Suggest an edit</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <p className=\"text-xs text-muted-foreground\">\n Proposed against version {suggestBaseVersion ?? doc.version}. It does not change the\n doc — someone with edit rights accepts or rejects it below.\n </p>\n <Input\n aria-label=\"Suggested title\"\n value={suggestTitle}\n onChange={(e) => setSuggestTitle(e.target.value)}\n />\n <MarkdownEditor value={suggestContent} onChange={setSuggestContent} minHeight={240} />\n <Input\n aria-label=\"Note (optional)\"\n placeholder=\"Why this change? (optional)\"\n value={suggestNote}\n onChange={(e) => setSuggestNote(e.target.value)}\n />\n {suggestError && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n {suggestError}\n </p>\n )}\n <div className=\"flex justify-end gap-2\">\n <Button size=\"sm\" variant=\"ghost\" onClick={cancelSuggest}>\n Cancel\n </Button>\n <Button\n size=\"sm\"\n onClick={() => void submitSuggestion()}\n disabled={\n suggestEditState.loading || !suggestContent.trim() || !suggestTitle.trim()\n }\n data-testid=\"doc-suggest-submit\"\n >\n {suggestEditState.loading ? 'Submitting…' : 'Submit suggestion'}\n </Button>\n </div>\n </CardContent>\n </Card>\n )}\n\n {mode === 'view' && (\n <Card>\n <CardContent className=\"prose prose-sm max-w-none pt-6 dark:prose-invert\">\n {doc.content.trim() ? (\n <Markdown>{doc.content}</Markdown>\n ) : (\n <p className=\"text-sm text-muted-foreground\">This doc is empty.</p>\n )}\n </CardContent>\n </Card>\n )}\n\n <div className=\"grid grid-cols-1 gap-6 lg:grid-cols-2\">\n <Card data-testid=\"doc-history\">\n <CardHeader className=\"flex flex-row flex-wrap items-center justify-between gap-2\">\n <CardTitle className=\"flex items-center gap-2\">\n <History className=\"h-4 w-4\" /> History ({revisions.length})\n </CardTitle>\n {/* GAP-07: revisions(approvedOnly) — narrows the list above to only ever-approved revisions. */}\n <label className=\"flex items-center gap-1.5 text-xs font-normal text-muted-foreground\">\n <Checkbox\n checked={approvedOnly}\n onCheckedChange={(next) => setApprovedOnly(next === true)}\n data-testid=\"doc-approved-only-toggle\"\n />\n Approved only\n </label>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n {approveError && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n {approveError}\n </p>\n )}\n <ol className=\"space-y-2\">\n {revisions.map((rev) => {\n const current = rev.version === doc.version;\n const isApproved = !!rev.approvedAt;\n return (\n <li\n key={rev.id}\n className=\"space-y-1 rounded-md border p-2\"\n data-testid=\"doc-revision\"\n >\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <span className=\"flex flex-wrap items-center gap-1.5 text-sm font-medium\">\n Version {rev.version}\n {current ? ' (current)' : ''}\n {isApproved && (\n <Badge\n variant=\"success\"\n className=\"gap-1 text-xs font-normal\"\n data-testid=\"doc-revision-approved-badge\"\n >\n <BadgeCheck className=\"h-3 w-3\" aria-hidden=\"true\" />\n Approved\n </Badge>\n )}\n </span>\n <span className=\"flex flex-wrap gap-1\">\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-7 text-xs\"\n aria-expanded={viewing === rev.version}\n onClick={() => setViewing(viewing === rev.version ? null : rev.version)}\n >\n {viewing === rev.version ? 'Hide' : 'View'}\n </Button>\n {mode === 'view' && (\n <Button\n size=\"sm\"\n variant=\"outline\"\n className=\"h-7 text-xs\"\n disabled={approveState.loading}\n onClick={() => void doApprove(rev.id)}\n data-testid=\"doc-approve-revision\"\n >\n {isApproved ? 'Re-approve' : 'Approve this revision'}\n </Button>\n )}\n {!current && mode === 'view' && (\n <AlertDialog>\n <AlertDialogTrigger asChild>\n <Button\n size=\"sm\"\n variant=\"outline\"\n className=\"h-7 text-xs\"\n disabled={busy}\n data-testid=\"doc-restore\"\n >\n Restore\n </Button>\n </AlertDialogTrigger>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Restore version {rev.version}?</AlertDialogTitle>\n <AlertDialogDescription>\n Its title and text become version {doc.version + 1}. Nothing is\n deleted: version {doc.version} stays in the history.\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Cancel</AlertDialogCancel>\n <AlertDialogAction\n onClick={() =>\n run(\n () =>\n revert({\n variables: {\n id: doc.id,\n toVersion: rev.version,\n expectedVersion: doc.version,\n },\n }),\n 'The version could not be restored.'\n )\n }\n >\n Restore\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n )}\n </span>\n </div>\n <p className=\"text-xs text-muted-foreground\">\n {when(rev.createdAt)} · <PersonName id={rev.createdBy} />\n {rev.changeNote ? ` · ${rev.changeNote}` : ''}\n </p>\n {isApproved && (\n <p\n className=\"text-xs text-status-success-text\"\n data-testid=\"doc-revision-approved-by\"\n >\n Approved by <PersonName id={rev.approvedBy} />\n {rev.approvedAt ? ` on ${when(rev.approvedAt)}` : ''}\n </p>\n )}\n </li>\n );\n })}\n </ol>\n {shown && (\n <div\n className=\"space-y-1 rounded-md border bg-muted/40 p-3\"\n data-testid=\"doc-revision-view\"\n >\n <p className=\"text-sm font-medium\">\n Version {shown.version}: {shown.title}\n </p>\n <div className=\"prose prose-sm max-w-none dark:prose-invert\">\n <Markdown>{shown.content}</Markdown>\n </div>\n </div>\n )}\n <DocVersionCompare docId={doc.id} versions={revisions} />\n </CardContent>\n </Card>\n\n <Card data-testid=\"doc-linked-items\">\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Link2 className=\"h-4 w-4\" /> Linked work items ({doc.linkedWorkItems.length})\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n {doc.linkedWorkItems.length === 0 && (\n <p className=\"text-sm text-muted-foreground\">\n Not linked to any work item yet. Pick one below, or use &ldquo;Link existing\n doc&rdquo; on the task.\n </p>\n )}\n {doc.linkedWorkItems.map((item) => (\n <div\n key={item.id}\n className=\"flex items-center justify-between gap-2 rounded-md border p-2\"\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(item.id)}`)\n }\n >\n <span className=\"text-muted-foreground\">{item.key}</span> {item.title}\n </button>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n disabled={unlinkState.loading}\n aria-label={`Unlink ${item.title}`}\n onClick={() =>\n run(\n () => unlink({ variables: { docId: doc.id, workItemId: item.id } }),\n 'The work item could not be unlinked.'\n )\n }\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n ))}\n <div className=\"space-y-2 pt-2\" data-testid=\"doc-link-work-item\">\n <WorkItemSearchSelect\n id=\"doc-link-work-item-select\"\n value={linkChoice}\n onChange={setLinkChoice}\n exclude={doc.linkedWorkItems.map((w) => w.id)}\n />\n <Button\n size=\"sm\"\n variant=\"outline\"\n disabled={!linkChoice || linkState.loading}\n onClick={async () => {\n const done = await run(\n () => link({ variables: { docId: doc.id, workItemId: linkChoice } }),\n 'The work item could not be linked.'\n );\n if (done) setLinkChoice('');\n }}\n >\n <Link2 className=\"mr-1 h-4 w-4\" />\n Link work item\n </Button>\n </div>\n </CardContent>\n </Card>\n </div>\n\n <DocSuggestionsPanel\n docId={doc.id}\n docTitle={doc.title}\n docContent={doc.content}\n revisions={revisions}\n currentUserId={currentUser?.id}\n />\n\n <DocComments\n docId={doc.id}\n presence={{ typingActorIds: presence.typingActorIds, notifyTyping: presence.notifyTyping }}\n />\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DocsDocsPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/DocsDocsPagePage.tsx"],"names":[],"mappings":"AA2EA,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,WACiB,CAAC;AAE1D,wBAAgB,gBAAgB,4CA0M/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DocsDocsPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/DocsDocsPagePage.tsx"],"sourcesContent":["import { useDeferredValue, useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useMutation, useQuery } from '@apollo/client/react';\nimport { Button, Card, CardContent, Input } from '@burdenoff/fe-libs/ui';\nimport { FileText, Plus, Search } from 'lucide-react';\nimport { MarkdownEditor } from '#src/components/MarkdownEditor';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { PersonName } from '../people/People';\nimport { throwOnError } from '../utils/mutationResult';\nimport {\n DOC_STATUSES,\n DOC_STATUS_LABEL,\n DocStatusBadge,\n type DocStatus,\n} from '../docs/DocStatusBadge';\n\n/**\n * Docs browse surface (P1.4). Before this, a doc could only be created from a\n * work item's \"Linked Docs\" panel and never opened again: there was no list,\n * no detail view and no history UI, although the service kept every revision.\n */\n\nconst PAGE = 50;\n\nconst DOCS = gql`\n query DocsList(\n $workspaceId: String\n $filter: PlanmagnetDocFilter\n $pagination: PlanmagnetPaginationInput\n ) {\n planmagnetDocs(workspaceId: $workspaceId, filter: $filter, pagination: $pagination) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n items {\n id\n title\n status\n version\n updatedAt\n updatedBy\n createdBy\n }\n }\n }\n`;\n\nconst CREATE_DOC = gql`\n mutation DocsCreate($input: PlanmagnetCreateDocInput!) {\n planmagnetCreateDoc(input: $input) {\n id\n }\n }\n`;\n\ninterface DocRow {\n id: string;\n title: string;\n status: string;\n version: number;\n updatedAt: string;\n updatedBy: string | null;\n createdBy: string;\n}\n\ninterface DocsData {\n planmagnetDocs: {\n totalCount: number;\n pageInfo: { hasNextPage: boolean; endCursor: string | null };\n items: DocRow[];\n };\n}\n\nexport const docDetailPath = (id: string) =>\n `/docs/doc-detail-page?docId=${encodeURIComponent(id)}`;\n\nexport function DocsDocsPagePage() {\n const { workspaceId } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n const [search, setSearch] = useState('');\n const [status, setStatus] = useState<DocStatus | 'ALL'>('ALL');\n const [composing, setComposing] = useState(false);\n const [title, setTitle] = useState('');\n const [content, setContent] = useState('');\n const [error, setError] = useState<string | null>(null);\n const [loadingMore, setLoadingMore] = useState(false);\n const term = useDeferredValue(search.trim());\n\n const filter = {\n ...(term ? { search: term } : {}),\n ...(status !== 'ALL' ? { status } : {}),\n };\n const {\n data,\n loading,\n error: loadError,\n fetchMore,\n } = useQuery<DocsData>(DOCS, {\n variables: { workspaceId, filter, pagination: { first: PAGE } },\n skip: !workspaceId,\n // Cached copies go stale here: a deleted doc, or someone else's newer version.\n fetchPolicy: 'cache-and-network',\n });\n const [create, createState] = useMutation<{ planmagnetCreateDoc: { id: string } }>(CREATE_DOC, {\n refetchQueries: ['DocsList'],\n });\n\n const list = data?.planmagnetDocs;\n const docs = list?.items ?? [];\n\n const submit = async () => {\n setError(null);\n try {\n const result = await throwOnError(\n create({ variables: { input: { title: title.trim(), content } } })\n );\n const id = result.data?.planmagnetCreateDoc.id;\n setComposing(false);\n setTitle('');\n setContent('');\n if (id) navigate(docDetailPath(id));\n } catch (e) {\n setError(e instanceof Error ? e.message : 'The doc could not be created.');\n }\n };\n\n const loadMore = async () => {\n const after = list?.pageInfo.endCursor;\n if (!after) return;\n setLoadingMore(true);\n try {\n await fetchMore({\n variables: { pagination: { first: PAGE, after } },\n updateQuery: (prev, { fetchMoreResult }) => ({\n planmagnetDocs: {\n ...fetchMoreResult.planmagnetDocs,\n items: [...prev.planmagnetDocs.items, ...fetchMoreResult.planmagnetDocs.items],\n },\n }),\n });\n } finally {\n setLoadingMore(false);\n }\n };\n\n return (\n <div className=\"space-y-6 p-6\" data-testid=\"docs-page\">\n <div className=\"flex flex-wrap items-center justify-between gap-3\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Docs</h1>\n <p className=\"text-sm text-muted-foreground\">\n {list\n ? `${list.totalCount} doc${list.totalCount === 1 ? '' : 's'}${term || status !== 'ALL' ? ' match' : ' in this workspace'}`\n : 'Specs and documents, with full version history'}\n </p>\n </div>\n {!composing && (\n <Button size=\"sm\" onClick={() => setComposing(true)} data-testid=\"doc-new\">\n <Plus className=\"mr-1 h-4 w-4\" />\n New doc\n </Button>\n )}\n </div>\n\n {error && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n {error}\n </p>\n )}\n\n {composing && (\n <Card>\n <CardContent className=\"space-y-3 pt-6\">\n <Input\n aria-label=\"Doc title\"\n placeholder=\"Doc title\"\n value={title}\n onChange={(e) => setTitle(e.target.value)}\n />\n <MarkdownEditor\n value={content}\n onChange={setContent}\n placeholder=\"Write the doc…\"\n minHeight={160}\n />\n <div className=\"flex justify-end gap-2\">\n <Button\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => {\n setComposing(false);\n setError(null);\n }}\n >\n Cancel\n </Button>\n <Button\n size=\"sm\"\n onClick={submit}\n disabled={createState.loading}\n data-testid=\"doc-create\"\n >\n {createState.loading ? 'Creating…' : 'Create doc'}\n </Button>\n </div>\n </CardContent>\n </Card>\n )}\n\n <div className=\"flex flex-wrap items-center gap-3\">\n <div className=\"relative w-full max-w-sm\">\n <Search className=\"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground\" />\n <Input\n aria-label=\"Search docs\"\n placeholder=\"Search titles and content\"\n className=\"pl-8\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n </div>\n <div className=\"flex gap-1\" role=\"group\" aria-label=\"Filter by status\">\n {(['ALL', ...DOC_STATUSES] as const).map((s) => (\n <button\n key={s}\n type=\"button\"\n aria-pressed={status === s}\n onClick={() => setStatus(s)}\n className={`px-3 py-1.5 text-sm rounded-md ${status === s ? 'bg-primary text-primary-foreground' : 'text-muted-foreground hover:bg-muted'}`}\n >\n {s === 'ALL' ? 'All' : DOC_STATUS_LABEL[s]}\n </button>\n ))}\n </div>\n </div>\n\n {loadError && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n Docs could not be loaded: {loadError.message}\n </p>\n )}\n {loading && !data && <p className=\"text-sm text-muted-foreground\">Loading docs…</p>}\n {list && docs.length === 0 && (\n <p className=\"text-sm text-muted-foreground\">\n {term || status !== 'ALL' ? 'No docs match.' : 'No docs yet. Create the first one.'}\n </p>\n )}\n\n <ul className=\"space-y-2\">\n {docs.map((doc) => (\n <li key={doc.id}>\n <button\n type=\"button\"\n data-testid=\"doc-row\"\n onClick={() => navigate(docDetailPath(doc.id))}\n className=\"flex w-full items-center justify-between gap-3 rounded-md border p-3 text-left hover:border-primary transition-colors\"\n >\n <span className=\"flex min-w-0 items-center gap-2\">\n <FileText className=\"h-4 w-4 shrink-0 text-muted-foreground\" />\n <span className=\"min-w-0\">\n <span className=\"block truncate text-sm font-medium\">{doc.title}</span>\n <span className=\"block text-xs text-muted-foreground\">\n v{doc.version} · updated {new Date(doc.updatedAt).toLocaleString()} by{' '}\n <PersonName id={doc.updatedBy ?? doc.createdBy} />\n </span>\n </span>\n </span>\n <DocStatusBadge status={doc.status} />\n </button>\n </li>\n ))}\n </ul>\n {list?.pageInfo.hasNextPage && (\n <Button size=\"sm\" variant=\"outline\" onClick={loadMore} disabled={loadingMore}>\n {loadingMore ? 'Loading…' : `Show more (${docs.length} of ${list.totalCount})`}\n </Button>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GoalsCreateObjectivePagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/GoalsCreateObjectivePagePage.tsx"],"names":[],"mappings":"AAkBA,wBAAgB,4BAA4B,4CAkH3C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GoalsCreateObjectivePagePage.js","names":[],"sources":["../../../src/planmagnet/pages/GoalsCreateObjectivePagePage.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { throwOnError } from '../utils/mutationResult';\nimport { useMutation } from '@apollo/client/react';\nimport { Card, CardContent, CardHeader, CardTitle, Button, Input } from '@burdenoff/fe-libs/ui';\nimport { Save, X, Flag } from 'lucide-react';\nimport { usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\n\nconst CREATE_OBJECTIVE = gql`\n mutation CreateObjective($input: PlanmagnetCreateObjectiveInput!) {\n planmagnetCreateObjective(input: $input) {\n id\n }\n }\n`;\n\nexport function GoalsCreateObjectivePagePage() {\n const navigate = usePlanMagnetNavigate();\n const [form, setForm] = useState({\n title: '',\n description: '',\n periodLabel: '',\n endDate: '',\n });\n\n const [createObjective, { loading: saving }] = useMutation(CREATE_OBJECTIVE);\n const [error, setError] = useState<Error | null>(null);\n\n // BOFF-7955: a refused create RESOLVES with { error } (errorPolicy 'all'); the old else-branch then navigated to\n // the list and unmounted the banner, so the refusal was never seen. Stay on the form and show it.\n const handleCreate = async () => {\n if (!form.title.trim() || !form.periodLabel.trim()) return;\n setError(null);\n try {\n const result = await throwOnError(\n createObjective({\n variables: {\n input: {\n title: form.title.trim(),\n description: form.description.trim() || undefined,\n periodLabel: form.periodLabel.trim(),\n endDate: form.endDate || undefined,\n },\n },\n })\n );\n const newId = (result.data as { planmagnetCreateObjective?: { id: string } } | undefined)\n ?.planmagnetCreateObjective?.id;\n navigate(newId ? `/goals/objective-detail-page?objectiveId=${newId}` : '/goals/goals-page');\n } catch (e) {\n setError(e instanceof Error ? e : new Error('The objective could not be created.'));\n }\n };\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Create Objective</h1>\n <p className=\"text-sm text-muted-foreground\">\n Define a workspace goal for a time period, then add key results to make progress\n measurable.\n </p>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\" onClick={() => navigate('/goals/goals-page')}>\n <X className=\"mr-1 h-4 w-4\" />\n Cancel\n </Button>\n <Button\n size=\"sm\"\n onClick={handleCreate}\n disabled={saving || !form.title.trim() || !form.periodLabel.trim()}\n >\n <Save className=\"mr-1 h-4 w-4\" />\n {saving ? 'Creating...' : 'Create Objective'}\n </Button>\n </div>\n </div>\n {error && <div className=\"p-6 text-red-500\">Error: {error.message}</div>}\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Flag className=\"h-4 w-4\" />\n Objective Details\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div>\n <label className=\"text-sm font-medium\">Title</label>\n <Input\n value={form.title}\n onChange={(e) => setForm({ ...form, title: e.target.value })}\n className=\"mt-1\"\n placeholder=\"e.g. Grow enterprise revenue\"\n />\n </div>\n <div>\n <label className=\"text-sm font-medium\">Description</label>\n <textarea\n className=\"mt-1 w-full rounded-md border border-input bg-background px-3 py-2 text-sm min-h-[100px]\"\n value={form.description}\n onChange={(e) => setForm({ ...form, description: e.target.value })}\n placeholder=\"Why this objective matters this period...\"\n />\n </div>\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <label className=\"text-sm font-medium\">Time Period</label>\n <Input\n value={form.periodLabel}\n onChange={(e) => setForm({ ...form, periodLabel: e.target.value })}\n className=\"mt-1\"\n placeholder=\"e.g. Q3 2026\"\n />\n </div>\n <div>\n <label className=\"text-sm font-medium\">Target End Date</label>\n <Input\n type=\"date\"\n value={form.endDate}\n onChange={(e) => setForm({ ...form, endDate: e.target.value })}\n className=\"mt-1\"\n />\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GoalsGoalsPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/GoalsGoalsPagePage.tsx"],"names":[],"mappings":"AA6DA,wBAAgB,kBAAkB,4CA2HjC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GoalsGoalsPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/GoalsGoalsPagePage.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\nimport { Card, CardContent, CardHeader, CardTitle, Button } from '@burdenoff/fe-libs/ui';\nimport { Flag, Calendar, User, Plus } from 'lucide-react';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { PersonName } from '../people/People';\n\n// BOFF-4441: OKR / goal tracking bounded core — real Objective + KeyResult\n// data. `progress` on both types is computed live by the backend from\n// current/target values, never fabricated on the client.\nconst GET_OBJECTIVES = gql`\n query GetObjectives($workspaceId: ID!, $filter: PlanmagnetObjectiveFilter) {\n planmagnetObjectives(workspaceId: $workspaceId, filter: $filter, pagination: { first: 100 }) {\n items {\n id\n title\n description\n ownerId\n periodLabel\n status\n progress\n endDate\n keyResults {\n id\n }\n }\n totalCount\n }\n }\n`;\n\nconst statusColor: Record<string, string> = {\n DRAFT: 'bg-gray-100 text-gray-800',\n ACTIVE: 'bg-blue-100 text-blue-800',\n COMPLETED: 'bg-green-100 text-green-800',\n CANCELLED: 'bg-red-100 text-red-800',\n};\n\nconst objectiveStatuses = ['all', 'DRAFT', 'ACTIVE', 'COMPLETED', 'CANCELLED'] as const;\n\nfunction ProgressBar({ progress }: { progress: number }) {\n const pct = Math.max(0, Math.min(100, Math.round(progress)));\n return (\n <div className=\"space-y-1\">\n <div className=\"flex justify-between text-xs text-muted-foreground\">\n <span>Progress</span>\n <span>{pct}%</span>\n </div>\n <div className=\"h-2 w-full rounded-full bg-muted overflow-hidden\">\n <div\n className=\"h-full rounded-full bg-primary transition-all\"\n style={{ width: `${pct}%` }}\n />\n </div>\n </div>\n );\n}\n\nexport function GoalsGoalsPagePage() {\n const { workspaceId } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n const [filter, setFilter] = useState<string>('all');\n\n const {\n data,\n loading,\n error,\n } = // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useQuery<Record<string, any>>(GET_OBJECTIVES, {\n variables: {\n workspaceId: workspaceId ?? 'default',\n filter: filter !== 'all' ? { status: filter } : undefined,\n },\n skip: !workspaceId,\n });\n\n // Only before the first load: a refetch must not blank the page (it\n\n // unmounts every component on it and loses their state).\n\n if (loading && !data)\n return (\n <div className=\"flex items-center justify-center p-12\">\n <div className=\"animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full\" />\n </div>\n );\n if (error)\n return <div className=\"p-6 text-red-500\">Error loading objectives: {error.message}</div>;\n\n const objectives = data?.planmagnetObjectives?.items ?? [];\n const totalCount = data?.planmagnetObjectives?.totalCount ?? 0;\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Objectives &amp; Key Results</h1>\n <p className=\"text-sm text-muted-foreground\">\n {/* Under a tab, the count is of what matches it (BOFF-7990). */}\n {filter === 'all'\n ? `${totalCount} objective${totalCount === 1 ? '' : 's'} in this workspace`\n : `${totalCount} ${filter.toLowerCase()} match`}\n </p>\n </div>\n <Button size=\"sm\" onClick={() => navigate('/goals/create-objective-page')}>\n <Plus className=\"mr-1 h-4 w-4\" />\n New Objective\n </Button>\n </div>\n <div className=\"flex gap-1\">\n {objectiveStatuses.map((s) => (\n <button\n key={s}\n onClick={() => setFilter(s)}\n className={`px-3 py-1.5 text-sm rounded-md capitalize ${filter === s ? 'bg-primary text-primary-foreground' : 'text-muted-foreground hover:bg-muted'}`}\n >\n {s === 'all' ? 'All' : s.toLowerCase()}\n </button>\n ))}\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {objectives.map(\n (obj: {\n id: string;\n title: string;\n description: string | null;\n ownerId: string;\n periodLabel: string;\n status: string;\n progress: number;\n endDate: string | null;\n keyResults: { id: string }[];\n }) => (\n <Card\n key={obj.id}\n className=\"cursor-pointer hover:border-primary transition-colors\"\n onClick={() => navigate(`/goals/objective-detail-page?objectiveId=${obj.id}`)}\n >\n <CardHeader className=\"pb-2\">\n <div className=\"flex items-center justify-between\">\n <CardTitle className=\"text-base flex items-center gap-2\">\n <Flag className=\"h-4 w-4 text-primary\" />\n {obj.title}\n </CardTitle>\n <span\n className={`text-xs px-2 py-0.5 rounded-full capitalize ${statusColor[obj.status] ?? 'bg-gray-100'}`}\n >\n {obj.status.toLowerCase()}\n </span>\n </div>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <p className=\"text-sm text-muted-foreground\">\n {obj.description ?? 'No description'}\n </p>\n <ProgressBar progress={obj.progress} />\n <div className=\"flex gap-3 text-xs text-muted-foreground\">\n <span className=\"flex items-center gap-1\">\n <Calendar className=\"h-3 w-3\" />\n {obj.periodLabel}\n </span>\n <span className=\"flex items-center gap-1\">\n <User className=\"h-3 w-3\" />\n <PersonName id={obj.ownerId} />\n </span>\n </div>\n <div className=\"text-xs text-muted-foreground\">\n {obj.keyResults.length} key result{obj.keyResults.length === 1 ? '' : 's'}\n </div>\n </CardContent>\n </Card>\n )\n )}\n </div>\n {objectives.length === 0 && (\n <p className=\"text-center text-muted-foreground py-8\">\n No objectives found. Create one to start tracking a goal.\n </p>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GoalsObjectiveDetailPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/GoalsObjectiveDetailPagePage.tsx"],"names":[],"mappings":"AAgUA,wBAAgB,4BAA4B,4CAuR3C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GoalsObjectiveDetailPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/GoalsObjectiveDetailPagePage.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { useState } from 'react';\nimport { throwOnError, LEAVES_PAGE_CONTEXT } from '../utils/mutationResult';\nimport { gql } from '@apollo/client';\nimport { useMutation, useQuery } from '@apollo/client/react';\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Button,\n Input,\n Badge,\n} from '@burdenoff/fe-libs/ui';\nimport { Flag, Calendar, User, Plus, Trash2, ArrowLeft } from 'lucide-react';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { PersonName } from '../people/People';\nimport { ConfirmButton } from '../controls/ConfirmButton';\nimport { KeyResultWorkItems, ObjectiveHeaderControls } from '../controls/ObjectiveControls';\n\n// BOFF-4441: OKR detail — real Objective + KeyResult data via GraphQL.\n// `progress` (on both the objective and each key result) is computed live\n// server-side from current/target values; this page only ever reads it,\n// never derives it client-side. GAP-04: a key result's value is either\n// entered (MANUAL) or measured from its linked work items\n// (LINKED_WORK_ITEMS) — then the SERVER computes currentValue from\n// `linkedWorkItemRollup` and refuses a typed value, so this page shows no\n// value editor for it.\nconst GET_OBJECTIVE = gql`\n query GetObjectiveDetail($id: ID!) {\n planmagnetObjective(id: $id) {\n id\n workspaceId\n title\n description\n ownerId\n periodLabel\n startDate\n endDate\n status\n progress\n createdAt\n keyResults {\n id\n title\n description\n metricType\n startValue\n targetValue\n currentValue\n progressSource\n unit\n status\n ownerId\n progress\n linkedWorkItemRollup {\n totalLinked\n doneCount\n cancelledCount\n completionRatio\n }\n linkedWorkItems {\n id\n key\n title\n status\n }\n }\n }\n }\n`;\n\nconst CREATE_KEY_RESULT = gql`\n mutation CreateKeyResult($input: PlanmagnetCreateKeyResultInput!) {\n planmagnetCreateKeyResult(input: $input) {\n id\n }\n }\n`;\n\nconst UPDATE_KEY_RESULT = gql`\n mutation UpdateKeyResult($id: ID!, $input: PlanmagnetUpdateKeyResultInput!) {\n planmagnetUpdateKeyResult(id: $id, input: $input) {\n id\n currentValue\n progressSource\n progress\n status\n }\n }\n`;\n\nconst DELETE_KEY_RESULT = gql`\n mutation DeleteKeyResult($id: ID!) {\n planmagnetDeleteKeyResult(id: $id)\n }\n`;\n\nconst DELETE_OBJECTIVE = gql`\n mutation DeleteObjective($id: ID!) {\n planmagnetDeleteObjective(id: $id)\n }\n`;\n\nconst krStatusColor: Record<string, string> = {\n NOT_STARTED: 'bg-gray-100 text-gray-800',\n IN_PROGRESS: 'bg-blue-100 text-blue-800',\n AT_RISK: 'bg-orange-100 text-orange-800',\n COMPLETED: 'bg-green-100 text-green-800',\n};\n\nfunction ProgressBar({ progress }: { progress: number }) {\n const pct = Math.max(0, Math.min(100, Math.round(progress)));\n return (\n <div className=\"h-2 w-full rounded-full bg-muted overflow-hidden\">\n <div className=\"h-full rounded-full bg-primary transition-all\" style={{ width: `${pct}%` }} />\n </div>\n );\n}\n\ninterface KeyResultNode {\n id: string;\n title: string;\n description: string | null;\n metricType: 'NUMERIC' | 'PERCENTAGE' | 'BOOLEAN';\n startValue: number;\n targetValue: number;\n currentValue: number;\n progressSource: 'MANUAL' | 'LINKED_WORK_ITEMS';\n unit: string | null;\n status: string;\n ownerId: string | null;\n progress: number;\n linkedWorkItemRollup: {\n totalLinked: number;\n doneCount: number;\n cancelledCount: number;\n completionRatio: number;\n };\n linkedWorkItems: { id: string; key: string; title: string; status: string }[];\n}\n\nfunction KeyResultRow({\n kr,\n onUpdated,\n onDeleted,\n}: {\n kr: KeyResultNode;\n onUpdated: () => void;\n onDeleted: () => void;\n}) {\n const [draftValue, setDraftValue] = useState(String(kr.currentValue));\n const [updateKeyResult, { loading: updating }] = useMutation(UPDATE_KEY_RESULT);\n const [deleteKeyResult, { loading: deleting }] = useMutation(DELETE_KEY_RESULT);\n // fe-libs sets mutate errorPolicy 'all': a refused mutation RESOLVES with\n // { error }. These handlers used to carry on as if it had worked.\n const [actionError, setActionError] = useState<string | null>(null);\n\n const handleSaveProgress = async () => {\n const parsed = kr.metricType === 'BOOLEAN' ? (draftValue === '1' ? 1 : 0) : Number(draftValue);\n if (Number.isNaN(parsed)) return;\n setActionError(null);\n try {\n await throwOnError(\n updateKeyResult({ variables: { id: kr.id, input: { currentValue: parsed } } })\n );\n onUpdated();\n } catch (e) {\n setActionError(e instanceof Error ? e.message : 'The progress could not be saved.');\n }\n };\n\n // GAP-04: switch between an entered value and one measured from the linked work. Switching back to MANUAL keeps\n // the last measured value (the server snapshots it), so progress does not jump.\n const linked = kr.progressSource === 'LINKED_WORK_ITEMS';\n const handleSwitchSource = async () => {\n setActionError(null);\n try {\n const result = await throwOnError(\n updateKeyResult({\n variables: {\n id: kr.id,\n input: { progressSource: linked ? 'MANUAL' : 'LINKED_WORK_ITEMS' },\n },\n })\n );\n const next = result?.data?.planmagnetUpdateKeyResult;\n if (next) setDraftValue(String(next.currentValue));\n onUpdated();\n } catch (e) {\n setActionError(e instanceof Error ? e.message : 'The progress source could not be changed.');\n }\n };\n\n const rollup = kr.linkedWorkItemRollup;\n const counted = rollup.totalLinked - rollup.cancelledCount;\n\n const handleDelete = async () => {\n setActionError(null);\n try {\n await throwOnError(deleteKeyResult({ variables: { id: kr.id } }));\n onDeleted();\n } catch (e) {\n setActionError(e instanceof Error ? e.message : 'The key result could not be deleted.');\n }\n };\n\n return (\n <div className=\"rounded-md border border-input p-4 space-y-3\">\n {actionError && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n {actionError}\n </p>\n )}\n <div className=\"flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">\n <p className=\"text-sm font-medium\">{kr.title}</p>\n {kr.description && (\n <p className=\"text-xs text-muted-foreground mt-0.5\">{kr.description}</p>\n )}\n </div>\n <div className=\"flex items-center gap-2 shrink-0\">\n <span\n className={`text-xs px-2 py-0.5 rounded-full capitalize ${krStatusColor[kr.status] ?? ''}`}\n >\n {kr.status.toLowerCase().replace('_', ' ')}\n </span>\n {/* Deleting used to happen on the first click, with no confirmation. */}\n <ConfirmButton\n label=\"\"\n ariaLabel={`Delete ${kr.title}`}\n variant=\"outline\"\n icon={<Trash2 className=\"h-4 w-4\" />}\n title={`Delete \"${kr.title}\"?`}\n description=\"The key result and its progress are deleted. This cannot be undone here.\"\n confirmLabel=\"Delete key result\"\n destructive\n disabled={deleting}\n onConfirm={() => void handleDelete()}\n />\n </div>\n </div>\n <ProgressBar progress={kr.progress} />\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <span>\n {kr.metricType === 'BOOLEAN'\n ? kr.currentValue > 0\n ? 'Done'\n : 'Not done'\n : `${kr.currentValue}${kr.unit ? ` ${kr.unit}` : ''} of ${kr.targetValue}${kr.unit ? ` ${kr.unit}` : ''}`}\n </span>\n <span>{Math.round(kr.progress)}%</span>\n </div>\n {linked ? (\n <p className=\"text-xs text-muted-foreground\" data-testid=\"kr-measured-from-work\">\n Measured from linked work:{' '}\n {counted > 0\n ? `${rollup.doneCount} of ${counted} done (${Math.round(rollup.completionRatio * 100)}%)`\n : 'no linked work items to count yet'}\n {rollup.cancelledCount > 0 ? ` · ${rollup.cancelledCount} cancelled, not counted` : ''}\n </p>\n ) : (\n rollup.totalLinked > 0 && (\n <p className=\"text-xs text-muted-foreground\">\n Linked work:{' '}\n {counted > 0\n ? `${rollup.doneCount} of ${counted} done (${Math.round(rollup.completionRatio * 100)}%)`\n : 'nothing left to count'}\n {rollup.cancelledCount > 0 ? ` · ${rollup.cancelledCount} cancelled, not counted` : ''}{' '}\n &mdash; not used for progress while it is entered by hand\n </p>\n )\n )}\n {/* BOFF-7956: a key result could not be linked to work items, so the rollup above never appeared. */}\n <KeyResultWorkItems\n keyResultId={kr.id}\n keyResultTitle={kr.title}\n linked={kr.linkedWorkItems ?? []}\n />\n <div className=\"flex flex-wrap items-center gap-2\">\n {!linked &&\n (kr.metricType === 'BOOLEAN' ? (\n <select\n aria-label={`Progress of ${kr.title}`}\n className=\"rounded-md border border-input bg-background px-3 py-1.5 text-sm\"\n value={draftValue}\n onChange={(e) => setDraftValue(e.target.value)}\n >\n <option value=\"0\">Not done</option>\n <option value=\"1\">Done</option>\n </select>\n ) : (\n <Input\n type=\"number\"\n aria-label={`Current value of ${kr.title}`}\n value={draftValue}\n onChange={(e) => setDraftValue(e.target.value)}\n className=\"w-32\"\n />\n ))}\n {!linked && (\n <Button size=\"sm\" variant=\"outline\" disabled={updating} onClick={handleSaveProgress}>\n {updating ? 'Saving...' : 'Update progress'}\n </Button>\n )}\n <Button\n size=\"sm\"\n variant=\"ghost\"\n disabled={updating}\n onClick={() => void handleSwitchSource()}\n data-testid=\"kr-switch-source\"\n >\n {linked ? 'Enter progress by hand' : 'Measure from linked work'}\n </Button>\n </div>\n </div>\n );\n}\n\nexport function GoalsObjectiveDetailPagePage() {\n const { workspaceId } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n const objectiveId = new URLSearchParams(window.location.search).get('objectiveId') ?? '';\n\n const [isAddingKr, setIsAddingKr] = useState(false);\n const EMPTY_KR_FORM = {\n title: '',\n metricType: 'NUMERIC',\n targetValue: '100',\n unit: '',\n progressSource: 'MANUAL',\n };\n const [krForm, setKrForm] = useState(EMPTY_KR_FORM);\n\n const { data, loading, error, refetch } = useQuery<{\n planmagnetObjective: {\n id: string;\n title: string;\n description: string | null;\n ownerId: string;\n periodLabel: string;\n startDate: string | null;\n endDate: string | null;\n status: string;\n progress: number;\n createdAt: string;\n keyResults: KeyResultNode[];\n } | null;\n }>(GET_OBJECTIVE, {\n variables: { id: objectiveId },\n skip: !workspaceId || !objectiveId,\n });\n\n const [createKeyResult, { loading: creatingKr }] = useMutation(CREATE_KEY_RESULT);\n const [deleteObjective, { loading: deletingObjective }] = useMutation(DELETE_OBJECTIVE, {\n context: LEAVES_PAGE_CONTEXT,\n });\n const [actionError, setActionError] = useState<string | null>(null);\n\n // Only before the first load: a refetch must not blank the page (it\n\n // unmounts every component on it and loses their state).\n\n if (loading && !data) {\n return (\n <div className=\"flex items-center justify-center p-12\">\n <div className=\"animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full\" />\n </div>\n );\n }\n if (error) return <div className=\"p-6 text-red-500\">Error: {error.message}</div>;\n\n const objective = data?.planmagnetObjective;\n if (!objective) return <div className=\"p-6 text-muted-foreground\">Objective not found.</div>;\n\n const handleAddKeyResult = async () => {\n if (!krForm.title.trim() || !objectiveId) return;\n const target = Number(krForm.metricType === 'BOOLEAN' ? 1 : krForm.targetValue);\n if (Number.isNaN(target)) return;\n setActionError(null);\n try {\n await throwOnError(\n createKeyResult({\n variables: {\n input: {\n objectiveId,\n title: krForm.title.trim(),\n metricType: krForm.metricType,\n targetValue: target,\n unit: krForm.unit.trim() || undefined,\n progressSource: krForm.progressSource,\n },\n },\n })\n );\n } catch (e) {\n setActionError(e instanceof Error ? e.message : 'The key result could not be added.');\n return;\n }\n setKrForm(EMPTY_KR_FORM);\n setIsAddingKr(false);\n void refetch();\n };\n\n const handleDeleteObjective = async () => {\n setActionError(null);\n try {\n await throwOnError(deleteObjective({ variables: { id: objectiveId } }));\n } catch (e) {\n setActionError(e instanceof Error ? e.message : 'The objective could not be deleted.');\n return;\n }\n navigate('/goals/goals-page');\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n {actionError && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n {actionError}\n </p>\n )}\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <Button variant=\"ghost\" size=\"icon\" onClick={() => navigate('/goals/goals-page')}>\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <Flag className=\"h-6 w-6 text-primary\" />\n <div>\n <h1 className=\"text-2xl font-semibold\">{objective.title}</h1>\n <p className=\"text-sm text-muted-foreground\">{objective.periodLabel}</p>\n </div>\n </div>\n <div className=\"flex items-start gap-2\">\n {/* Status and Edit (BOFF-7956): an objective stayed ACTIVE forever. Delete now asks first. */}\n <ObjectiveHeaderControls objective={objective} />\n <ConfirmButton\n label=\"Delete\"\n variant=\"outline\"\n icon={<Trash2 className=\"mr-1 h-4 w-4\" />}\n title={`Delete \"${objective.title}\"?`}\n description=\"The objective and its key results are deleted. This cannot be undone here.\"\n confirmLabel=\"Delete objective\"\n destructive\n disabled={deletingObjective}\n onConfirm={() => void handleDeleteObjective()}\n />\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 lg:grid-cols-3 gap-6\">\n <div className=\"lg:col-span-2 space-y-6\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0\">\n <CardTitle>Overview</CardTitle>\n <Badge variant=\"outline\">{Math.round(objective.progress)}% complete</Badge>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <p className=\"text-sm\">{objective.description ?? 'No description provided.'}</p>\n <ProgressBar progress={objective.progress} />\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0\">\n <CardTitle>Key Results</CardTitle>\n {!isAddingKr && (\n <Button size=\"sm\" variant=\"outline\" onClick={() => setIsAddingKr(true)}>\n <Plus className=\"mr-1 h-4 w-4\" />\n Add Key Result\n </Button>\n )}\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {isAddingKr && (\n <div className=\"space-y-3 rounded-md border border-input p-3\">\n <Input\n placeholder=\"Key result title, e.g. Sign 10 new enterprise customers\"\n value={krForm.title}\n onChange={(e) => setKrForm({ ...krForm, title: e.target.value })}\n />\n <div className=\"grid grid-cols-3 gap-3\">\n <select\n className=\"rounded-md border border-input bg-background px-3 py-2 text-sm\"\n value={krForm.metricType}\n onChange={(e) => setKrForm({ ...krForm, metricType: e.target.value })}\n >\n <option value=\"NUMERIC\">Numeric</option>\n <option value=\"PERCENTAGE\">Percentage</option>\n <option value=\"BOOLEAN\">Yes / No</option>\n </select>\n {krForm.metricType !== 'BOOLEAN' && (\n <Input\n type=\"number\"\n placeholder=\"Target value\"\n value={krForm.targetValue}\n onChange={(e) => setKrForm({ ...krForm, targetValue: e.target.value })}\n />\n )}\n {krForm.metricType === 'NUMERIC' && (\n <Input\n placeholder=\"Unit (optional)\"\n value={krForm.unit}\n onChange={(e) => setKrForm({ ...krForm, unit: e.target.value })}\n />\n )}\n </div>\n <label className=\"flex flex-col gap-1 text-xs text-muted-foreground\">\n Progress\n <select\n aria-label=\"How progress is measured\"\n data-testid=\"kr-new-progress-source\"\n className=\"rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground\"\n value={krForm.progressSource}\n onChange={(e) => setKrForm({ ...krForm, progressSource: e.target.value })}\n >\n <option value=\"MANUAL\">Entered by hand</option>\n <option value=\"LINKED_WORK_ITEMS\">\n Measured from linked work items (share of them done)\n </option>\n </select>\n </label>\n <div className=\"flex gap-2 justify-end\">\n <Button\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => {\n setIsAddingKr(false);\n setKrForm(EMPTY_KR_FORM);\n }}\n >\n Cancel\n </Button>\n <Button\n size=\"sm\"\n disabled={creatingKr || !krForm.title.trim()}\n onClick={handleAddKeyResult}\n >\n {creatingKr ? 'Adding...' : 'Add Key Result'}\n </Button>\n </div>\n </div>\n )}\n {objective.keyResults.length === 0 && !isAddingKr && (\n <p className=\"text-sm text-muted-foreground\">\n No key results yet. Add one to make this objective measurable.\n </p>\n )}\n {objective.keyResults.map((kr) => (\n <KeyResultRow\n key={kr.id}\n kr={kr}\n onUpdated={() => void refetch()}\n onDeleted={() => void refetch()}\n />\n ))}\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Details</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3 text-sm\">\n <div className=\"flex items-center gap-2\">\n <User className=\"h-4 w-4 text-muted-foreground\" />\n <span className=\"text-muted-foreground\">Owner:</span>\n <span className=\"font-medium\">\n <PersonName id={objective.ownerId} />\n </span>\n </div>\n <div className=\"flex items-center gap-2\">\n <Calendar className=\"h-4 w-4 text-muted-foreground\" />\n <span className=\"text-muted-foreground\">Period:</span>\n <span className=\"font-medium\">{objective.periodLabel}</span>\n </div>\n {objective.endDate && (\n <div className=\"flex items-center gap-2\">\n <Calendar className=\"h-4 w-4 text-muted-foreground\" />\n <span className=\"text-muted-foreground\">Target end:</span>\n <span className=\"font-medium\">\n {new Date(objective.endDate).toLocaleDateString()}\n </span>\n </div>\n )}\n <div className=\"flex items-center gap-2\">\n <Calendar className=\"h-4 w-4 text-muted-foreground\" />\n <span className=\"text-muted-foreground\">Created:</span>\n <span className=\"font-medium\">\n {objective.createdAt ? new Date(objective.createdAt).toLocaleDateString() : '—'}\n </span>\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntegrationsNewSyncPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/IntegrationsNewSyncPagePage.tsx"],"names":[],"mappings":"AA0IA,wBAAgB,2BAA2B,4CAqY1C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntegrationsNewSyncPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/IntegrationsNewSyncPagePage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useMutation } from '@apollo/client/react';\nimport {\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Checkbox,\n Input,\n} from '@burdenoff/fe-libs/ui';\nimport { ArrowLeft, CheckCircle2, Github, Loader2, Plug, ShieldQuestion } from 'lucide-react';\nimport { usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { detailPath } from '../utils/rowNavigation';\nimport { throwOnError } from '../utils/mutationResult';\nimport { isForbidden, mutationErrorMessage } from '../utils/graphqlErrors';\nimport { ErrorLine } from '../controls/ConfirmButton';\nimport { ProjectSelect } from '../controls/Pickers';\nimport { enumLabel } from '../controls/WorkItemControls';\nimport {\n RunNowButton,\n SyncRunResultSummary,\n TestConnectionButton,\n CONFLICT_STRATEGY_EXPLANATION,\n} from '../controls/SyncControls';\nimport { useSyncProviderCapabilities } from '../integrations/useSyncProviderCapabilities';\nimport {\n CONFLICT_RESOLUTIONS,\n directionLabel,\n directionSupported,\n GITHUB_FIELD_MAPPING_DEFAULTS,\n isValidGithubOwner,\n isValidGithubRepo,\n providerIsLive,\n providerLabel,\n SYNC_DIRECTIONS,\n type ConflictResolution,\n type SyncDirection,\n type SyncProvider,\n type SyncProviderCapability,\n type SyncRunResult,\n} from '../integrations/syncTypes';\n\n/**\n * Sync setup wizard (AUT-08): create an ExternalSync step by step, driven entirely by\n * `planmagnetSupportedSyncProviders` — a provider is selectable, and a direction is offered, only when the\n * capability list says it is real, never a hard-coded \"GitHub only\" rule. Today that capability list happens to\n * make GITHUB the only live choice (BOFF-4446); the connection fields below (owner/repo/token) are GitHub's own\n * documented `connectionConfig` shape and only make sense for it — there is nothing to generalize them to until\n * a second connector ships.\n */\n\nconst label = 'text-sm font-medium';\n\nconst CREATE_SYNC = gql`\n mutation NewSyncCreate($input: PlanmagnetCreateExternalSyncInput!) {\n planmagnetCreateExternalSync(input: $input) {\n id\n provider\n status\n project {\n id\n name\n }\n }\n }\n`;\n\ninterface CreatedSync {\n id: string;\n provider: string;\n status: string;\n project: { id: string; name: string } | null;\n}\n\nfunction ProviderStep({\n capabilities,\n capabilitiesLoading,\n provider,\n onSelect,\n}: {\n capabilities: SyncProviderCapability[];\n capabilitiesLoading: boolean;\n provider: SyncProvider | '';\n onSelect: (p: SyncProvider) => void;\n}) {\n return (\n <Card data-testid=\"sync-wizard-step\">\n <CardHeader>\n <CardTitle>1. Provider</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n {capabilitiesLoading && <p className=\"text-sm text-muted-foreground\">Loading providers…</p>}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-2\">\n {capabilities.map((c) => {\n const live = providerIsLive(c);\n const selected = provider === c.provider;\n return (\n <button\n key={c.provider}\n type=\"button\"\n disabled={!live}\n aria-pressed={selected}\n data-testid={`sync-wizard-provider-${c.provider}`}\n onClick={() => live && onSelect(c.provider)}\n className={`flex items-start gap-2 rounded-md border p-3 text-left text-sm transition-colors ${\n selected ? 'border-primary bg-primary/5' : 'border-input'\n } ${live ? 'hover:bg-muted' : 'cursor-not-allowed opacity-50'}`}\n >\n {c.provider === 'GITHUB' ? (\n <Github className=\"mt-0.5 h-4 w-4 shrink-0\" />\n ) : (\n <Plug className=\"mt-0.5 h-4 w-4 shrink-0\" />\n )}\n <span>\n <span className=\"block font-medium\">{providerLabel(c.provider)}</span>\n <span className=\"block text-xs text-muted-foreground\">\n {live\n ? [\n c.supportsImport && 'inbound',\n c.supportsExport && 'outbound',\n c.supportsBidirectional && 'bidirectional',\n ]\n .filter(Boolean)\n .join(', ') + ' sync'\n : 'No live connector yet — inbound, outbound and bidirectional sync are all unavailable for this provider.'}\n </span>\n </span>\n </button>\n );\n })}\n </div>\n </CardContent>\n </Card>\n );\n}\n\nexport function IntegrationsNewSyncPagePage() {\n const navigate = usePlanMagnetNavigate();\n const { capabilities, loading: capabilitiesLoading } = useSyncProviderCapabilities();\n\n const [provider, setProvider] = useState<SyncProvider | ''>('');\n const [projectId, setProjectId] = useState('');\n const [owner, setOwner] = useState('');\n const [repo, setRepo] = useState('');\n const [direction, setDirection] = useState<SyncDirection | ''>('');\n const [token, setToken] = useState('');\n const [conflictStrategy, setConflictStrategy] = useState<ConflictResolution>('MANUAL');\n const [priorityPrefix, setPriorityPrefix] = useState('');\n const [dueDatePrefix, setDueDatePrefix] = useState('');\n const [verifyBeforeCreate, setVerifyBeforeCreate] = useState(true);\n const [formError, setFormError] = useState<string | null>(null);\n const [created, setCreated] = useState<CreatedSync | null>(null);\n const [runResult, setRunResult] = useState<SyncRunResult | null>(null);\n\n const [create, state] = useMutation<{ planmagnetCreateExternalSync: CreatedSync }>(CREATE_SYNC, {\n refetchQueries: ['SyncsList'],\n });\n\n const capability = capabilities.find((c) => c.provider === provider);\n const isGithub = provider === 'GITHUB';\n const allowedDirections = capability\n ? SYNC_DIRECTIONS.filter((d) => directionSupported(capability, d))\n : [];\n\n const ownerValid = owner.trim() !== '' && isValidGithubOwner(owner);\n const repoValid = repo.trim() !== '' && isValidGithubRepo(repo);\n const step2Complete =\n !!provider && !!projectId && (!isGithub || (ownerValid && repoValid)) && !!direction;\n const step3Complete = step2Complete && token.trim() !== '';\n\n const buildInput = () => {\n const fieldMapping: Record<string, string> = {};\n if (priorityPrefix.trim()) fieldMapping.priority = priorityPrefix.trim();\n if (dueDatePrefix.trim()) fieldMapping.dueDate = dueDatePrefix.trim();\n return {\n projectId,\n provider,\n direction,\n externalProjectId: isGithub ? `${owner.trim()}/${repo.trim()}` : '',\n externalProjectUrl: isGithub\n ? `https://github.com/${owner.trim()}/${repo.trim()}`\n : undefined,\n connectionConfig: isGithub\n ? { token: token.trim(), owner: owner.trim(), repo: repo.trim() }\n : {},\n conflictStrategy,\n ...(Object.keys(fieldMapping).length > 0 ? { fieldMapping } : {}),\n testConnection: verifyBeforeCreate,\n };\n };\n\n const submit = async () => {\n setFormError(null);\n if (!step3Complete) {\n setFormError(\n 'Fill in the project, external project and credentials above before creating the sync.'\n );\n return;\n }\n try {\n const res = await throwOnError(create({ variables: { input: buildInput() } }));\n if (res.data) setCreated(res.data.planmagnetCreateExternalSync);\n } catch (e) {\n setFormError(\n isForbidden(e)\n ? 'Your role can view integrations but not set them up.'\n : mutationErrorMessage(e, 'The sync could not be created.')\n );\n }\n };\n\n if (created) {\n return (\n <div className=\"space-y-6 p-6 max-w-2xl\">\n <Card data-testid=\"sync-wizard-created\">\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <CheckCircle2 className=\"h-5 w-5 text-status-success-text\" />\n Sync created\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <p className=\"text-sm text-muted-foreground\">\n {providerLabel(created.provider)} sync for {created.project?.name ?? 'the project'} is\n set up and idle. Test the connection and run the first sync now, or do either later\n from the sync&apos;s own page.\n </p>\n <div className=\"flex flex-wrap items-center gap-3\">\n <TestConnectionButton syncId={created.id} />\n <RunNowButton syncId={created.id} onResult={setRunResult} />\n </div>\n {runResult && <SyncRunResultSummary result={runResult} />}\n <Button\n onClick={() => navigate(detailPath('/integrations/sync-detail-page', created.id))}\n data-testid=\"sync-wizard-view\"\n >\n View sync\n </Button>\n </CardContent>\n </Card>\n </div>\n );\n }\n\n return (\n <div className=\"space-y-6 p-6 max-w-2xl\">\n <div className=\"flex items-start gap-3\">\n <Button\n variant=\"ghost\"\n size=\"icon\"\n aria-label=\"Back to Integrations\"\n onClick={() => navigate('/integrations/syncs-page')}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <div>\n <h1 className=\"text-2xl font-semibold\">Set up a sync</h1>\n <p className=\"text-sm text-muted-foreground\">\n Connect a PlanMagnet project to an external issue tracker so work items stay in step on\n both sides.\n </p>\n </div>\n </div>\n\n <ProviderStep\n capabilities={capabilities}\n capabilitiesLoading={capabilitiesLoading}\n provider={provider}\n onSelect={(p) => {\n setProvider(p);\n setDirection('');\n setOwner('');\n setRepo('');\n setToken('');\n }}\n />\n\n {provider && (\n <Card data-testid=\"sync-wizard-step\">\n <CardHeader>\n <CardTitle>2. Project, external project and direction</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div>\n <label htmlFor=\"sync-wizard-project\" className={label}>\n PlanMagnet project\n </label>\n <div className=\"mt-1\">\n <ProjectSelect\n id=\"sync-wizard-project\"\n value={projectId}\n noneLabel=\"Choose a project\"\n onChange={setProjectId}\n />\n </div>\n </div>\n {isGithub && (\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-3\">\n <div>\n <label htmlFor=\"sync-wizard-owner\" className={label}>\n GitHub owner (user or org)\n </label>\n <Input\n id=\"sync-wizard-owner\"\n className=\"mt-1\"\n placeholder=\"e.g. algoshred\"\n value={owner}\n data-testid=\"sync-wizard-owner\"\n onChange={(e) => setOwner(e.target.value)}\n />\n {owner.trim() !== '' && !ownerValid && (\n <ErrorLine message=\"Not a valid GitHub owner name.\" />\n )}\n </div>\n <div>\n <label htmlFor=\"sync-wizard-repo\" className={label}>\n Repository\n </label>\n <Input\n id=\"sync-wizard-repo\"\n className=\"mt-1\"\n placeholder=\"e.g. wspace-planmagnet-svc\"\n value={repo}\n data-testid=\"sync-wizard-repo\"\n onChange={(e) => setRepo(e.target.value)}\n />\n {repo.trim() !== '' && !repoValid && (\n <ErrorLine message=\"Not a valid repository name.\" />\n )}\n </div>\n </div>\n )}\n <div>\n <span className={label}>Direction</span>\n {allowedDirections.length === 0 ? (\n <p className=\"mt-1 text-sm text-muted-foreground\">\n This provider offers no live sync direction yet.\n </p>\n ) : (\n <div className=\"mt-1 flex flex-col gap-1\" role=\"radiogroup\" aria-label=\"Direction\">\n {allowedDirections.map((d) => (\n <label key={d} className=\"flex items-center gap-2 text-sm\">\n <input\n type=\"radio\"\n name=\"sync-wizard-direction\"\n checked={direction === d}\n data-testid={`sync-wizard-direction-${d}`}\n onChange={() => setDirection(d)}\n />\n {directionLabel(d)}\n </label>\n ))}\n </div>\n )}\n </div>\n </CardContent>\n </Card>\n )}\n\n {step2Complete && (\n <Card data-testid=\"sync-wizard-step\">\n <CardHeader>\n <CardTitle>3. Credentials</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {isGithub && (\n <>\n <p className=\"text-sm text-muted-foreground\">\n Use a GitHub fine-grained personal access token scoped to{' '}\n <strong>\n {owner}/{repo}\n </strong>\n , with Issues set to <strong>Read and write</strong> — no other repository\n permission is needed.\n </p>\n <div className=\"max-w-sm\">\n <label htmlFor=\"sync-wizard-token\" className={label}>\n Personal access token\n </label>\n <Input\n id=\"sync-wizard-token\"\n type=\"password\"\n autoComplete=\"off\"\n className=\"mt-1\"\n value={token}\n data-testid=\"sync-wizard-token\"\n onChange={(e) => setToken(e.target.value)}\n />\n </div>\n </>\n )}\n </CardContent>\n </Card>\n )}\n\n {step3Complete && (\n <>\n <Card data-testid=\"sync-wizard-step\">\n <CardHeader>\n <CardTitle>4. Conflict strategy</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n <p className=\"text-sm text-muted-foreground\">\n What happens when the same item changed on both sides since the last sync.\n </p>\n <div className=\"flex flex-col gap-1\" role=\"radiogroup\" aria-label=\"Conflict strategy\">\n {CONFLICT_RESOLUTIONS.map((r) => (\n <label key={r} className=\"flex items-start gap-2 text-sm\">\n <input\n type=\"radio\"\n name=\"sync-wizard-strategy\"\n className=\"mt-0.5\"\n checked={conflictStrategy === r}\n data-testid={`sync-wizard-strategy-${r}`}\n onChange={() => setConflictStrategy(r)}\n />\n <span>\n <span className=\"font-medium\">{enumLabel(r)}</span>\n <span className=\"block text-xs text-muted-foreground\">\n {CONFLICT_STRATEGY_EXPLANATION[r]}\n </span>\n </span>\n </label>\n ))}\n </div>\n </CardContent>\n </Card>\n\n {isGithub && (\n <Card data-testid=\"sync-wizard-step\">\n <CardHeader>\n <CardTitle>5. Field mapping (optional)</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <p className=\"text-sm text-muted-foreground\">\n GitHub issues have no native priority or due-date field — PlanMagnet encodes each\n as a label of the form <code>prefix+value</code> (e.g. <code>priority:HIGH</code>,{' '}\n <code>due:2026-10-01</code>\n ). Leave both blank to use the built-in prefixes.\n </p>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-3\">\n <div>\n <label\n htmlFor=\"sync-wizard-priority-prefix\"\n className=\"text-xs text-muted-foreground\"\n >\n Priority label prefix (default &quot;{GITHUB_FIELD_MAPPING_DEFAULTS.priority}\n &quot;)\n </label>\n <Input\n id=\"sync-wizard-priority-prefix\"\n className=\"mt-1\"\n placeholder={GITHUB_FIELD_MAPPING_DEFAULTS.priority}\n value={priorityPrefix}\n onChange={(e) => setPriorityPrefix(e.target.value)}\n />\n </div>\n <div>\n <label\n htmlFor=\"sync-wizard-duedate-prefix\"\n className=\"text-xs text-muted-foreground\"\n >\n Due-date label prefix (default &quot;{GITHUB_FIELD_MAPPING_DEFAULTS.dueDate}\n &quot;)\n </label>\n <Input\n id=\"sync-wizard-duedate-prefix\"\n className=\"mt-1\"\n placeholder={GITHUB_FIELD_MAPPING_DEFAULTS.dueDate}\n value={dueDatePrefix}\n onChange={(e) => setDueDatePrefix(e.target.value)}\n />\n </div>\n </div>\n </CardContent>\n </Card>\n )}\n\n <Card data-testid=\"sync-wizard-step\">\n <CardHeader>\n <CardTitle>6. Review &amp; create</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <dl className=\"grid grid-cols-1 sm:grid-cols-2 gap-x-4 gap-y-1 text-sm\">\n <dt className=\"text-muted-foreground\">Provider</dt>\n <dd>{providerLabel(provider)}</dd>\n <dt className=\"text-muted-foreground\">Direction</dt>\n <dd>{direction ? directionLabel(direction) : '—'}</dd>\n <dt className=\"text-muted-foreground\">External project</dt>\n <dd>{isGithub ? `${owner}/${repo}` : '—'}</dd>\n <dt className=\"text-muted-foreground\">Conflict strategy</dt>\n <dd>{enumLabel(conflictStrategy)}</dd>\n </dl>\n <label className=\"flex items-start gap-2 text-sm\">\n <Checkbox\n checked={verifyBeforeCreate}\n onCheckedChange={(checked) => setVerifyBeforeCreate(checked === true)}\n data-testid=\"sync-wizard-verify\"\n />\n <span>\n Verify the connection before creating (recommended)\n <span className=\"block text-xs text-muted-foreground\">\n Probes the credentials first; the sync is not created if the probe fails.\n </span>\n </span>\n </label>\n {formError && <ErrorLine message={formError} />}\n <Button\n onClick={() => void submit()}\n disabled={state.loading}\n data-testid=\"sync-wizard-create\"\n >\n {state.loading ? (\n <Loader2 className=\"mr-1 h-4 w-4 animate-spin\" />\n ) : (\n <ShieldQuestion className=\"mr-1 h-4 w-4\" />\n )}\n Create sync\n </Button>\n </CardContent>\n </Card>\n </>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntegrationsSyncDetailPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/IntegrationsSyncDetailPagePage.tsx"],"names":[],"mappings":"AAyaA,wBAAgB,8BAA8B,4CAmM7C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntegrationsSyncDetailPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/IntegrationsSyncDetailPagePage.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 CardHeader,\n CardTitle,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from '@burdenoff/fe-libs/ui';\nimport { ExternalLink, History, Plug, ShieldAlert } from 'lucide-react';\nimport { useEntityId } from '../hooks/useEntityId';\nimport { usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { detailPath } from '../utils/rowNavigation';\nimport { PersonName } from '../people/People';\nimport {\n ConflictResolveActions,\n ConflictStatusBadge,\n DeleteSyncButton,\n EditSyncDialog,\n PauseResumeButton,\n RunNowButton,\n SyncHealthSummary,\n SyncRunResultSummary,\n SyncRunStatusBadge,\n SyncStatusBadge,\n TestConnectionButton,\n TruncatedText,\n CONFLICT_STRATEGY_EXPLANATION,\n} from '../controls/SyncControls';\nimport {\n conflictStrategyLabel,\n directionLabel,\n parseGithubFieldMapping,\n providerLabel,\n type ConflictStatus,\n type ExternalSyncRow,\n type SyncConflictRow,\n type SyncRunResult,\n type SyncRunRow,\n} from '../integrations/syncTypes';\n\n/** Past-tense phrasing for a decided `SyncConflict.resolution` (AUT-10/24) — covers all four\n * `PlanmagnetSyncConflictResolution` values, including `MERGE`, which this line previously fell through to\n * \"dismissed manually\" for. */\nconst RESOLUTION_PHRASE: Record<string, string> = {\n SOURCE_WINS: 'kept PlanMagnet',\n TARGET_WINS: 'took the provider',\n MERGE: 'merged',\n MANUAL: 'dismissed manually',\n};\n\n/**\n * Sync detail (AUT-09/10/24/40): one ExternalSync — its health, its settings, its run history and its open\n * conflicts. Every write action here can be refused by role (FORBIDDEN) or by the provider itself (a honest\n * NOT_IMPLEMENTED for a non-GitHub provider, a real GitHub API error) — both are surfaced inline, never masked.\n */\n\nconst RUNS_PAGE = 20;\nconst CONFLICTS_PAGE = 20;\n\nconst GET_SYNC_DETAIL = gql`\n query SyncDetail($id: ID!) {\n planmagnetExternalSync(id: $id) {\n id\n provider\n direction\n status\n projectId\n project {\n id\n name\n }\n externalProjectId\n externalProjectUrl\n conflictStrategy\n fieldMapping\n syncFilters\n lastSyncedAt\n lastSyncError\n totalItemsSynced\n createdAt\n updatedAt\n runHealth {\n lastRunAt\n lastStatus\n consecutiveFailures\n runsLast7Days\n }\n }\n }\n`;\n\nconst GET_SYNC_RUNS = gql`\n query SyncRuns($syncId: ID!, $pagination: PlanmagnetPaginationInput) {\n planmagnetSyncRuns(syncId: $syncId, pagination: $pagination) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n items {\n id\n direction\n status\n startedAt\n finishedAt\n itemsCreated\n itemsUpdated\n itemsSkipped\n errorCount\n conflictCount\n errorMessage\n triggeredBy\n }\n }\n }\n`;\n\nconst GET_SYNC_CONFLICTS = gql`\n query SyncConflicts(\n $syncId: ID!\n $status: PlanmagnetSyncConflictStatus\n $pagination: PlanmagnetPaginationInput\n ) {\n planmagnetSyncConflicts(syncId: $syncId, status: $status, pagination: $pagination) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n items {\n id\n createdAt\n fields\n localUpdatedAt\n remoteUpdatedAt\n resolution\n resolvedAt\n resolvedBy\n status\n mappingId\n mapping {\n id\n internalId\n internalType\n externalId\n externalType\n externalUrl\n }\n }\n }\n }\n`;\n\nfunction RunHistorySection({ syncId }: { syncId: string }) {\n const [loadingMore, setLoadingMore] = useState(false);\n const { data, loading, error, fetchMore } = useQuery<{\n planmagnetSyncRuns: {\n totalCount: number;\n pageInfo: { hasNextPage: boolean; endCursor: string | null };\n items: SyncRunRow[];\n };\n }>(GET_SYNC_RUNS, { variables: { syncId, pagination: { first: RUNS_PAGE } } });\n\n const list = data?.planmagnetSyncRuns;\n const runs = list?.items ?? [];\n\n const loadMore = async () => {\n const after = list?.pageInfo.endCursor;\n if (!after) return;\n setLoadingMore(true);\n try {\n await fetchMore({\n variables: { pagination: { first: RUNS_PAGE, after } },\n updateQuery: (prev, { fetchMoreResult }) => ({\n planmagnetSyncRuns: {\n ...fetchMoreResult.planmagnetSyncRuns,\n items: [...prev.planmagnetSyncRuns.items, ...fetchMoreResult.planmagnetSyncRuns.items],\n },\n }),\n });\n } finally {\n setLoadingMore(false);\n }\n };\n\n return (\n <div className=\"space-y-3\" data-testid=\"sync-runs\">\n {error && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n Run history could not be loaded: {error.message}\n </p>\n )}\n {loading && !data && <p className=\"text-sm text-muted-foreground\">Loading run history…</p>}\n {list && runs.length === 0 && (\n <p className=\"py-6 text-center text-sm text-muted-foreground\">\n No runs yet — use &quot;Run now&quot; above to start the first one.\n </p>\n )}\n <div className=\"overflow-x-auto\">\n {runs.length > 0 && (\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"text-left text-muted-foreground\">\n <th className=\"py-1 pr-3 font-medium\">Started</th>\n <th className=\"py-1 pr-3 font-medium\">Direction</th>\n <th className=\"py-1 pr-3 font-medium\">Status</th>\n <th className=\"py-1 pr-3 font-medium\">Created / updated / skipped</th>\n <th className=\"py-1 pr-3 font-medium\">Conflicts</th>\n <th className=\"py-1 pr-3 font-medium\">Triggered by</th>\n <th className=\"py-1 font-medium\">Error</th>\n </tr>\n </thead>\n <tbody>\n {runs.map((run) => (\n <tr key={run.id} className=\"border-t align-top\" data-testid=\"sync-run-row\">\n <td className=\"py-1.5 pr-3 whitespace-nowrap\">\n <div>{new Date(run.startedAt).toLocaleString()}</div>\n <div className=\"text-xs text-muted-foreground\">\n finished {new Date(run.finishedAt).toLocaleString()}\n </div>\n </td>\n <td className=\"py-1.5 pr-3 whitespace-nowrap\">{directionLabel(run.direction)}</td>\n <td className=\"py-1.5 pr-3\">\n <SyncRunStatusBadge status={run.status} />\n </td>\n <td className=\"py-1.5 pr-3 whitespace-nowrap\">\n {run.itemsCreated} / {run.itemsUpdated} / {run.itemsSkipped}\n </td>\n <td className=\"py-1.5 pr-3\">{run.conflictCount}</td>\n <td className=\"py-1.5 pr-3 whitespace-nowrap\">\n <PersonName id={run.triggeredBy} />\n </td>\n <td className=\"py-1.5 text-status-error-text\">\n {run.errorMessage ? (\n <TruncatedText\n text={run.errorMessage}\n max={100}\n className=\"text-status-error-text\"\n />\n ) : (\n <span className=\"text-muted-foreground\">—</span>\n )}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n )}\n </div>\n {list?.pageInfo.hasNextPage && (\n <Button size=\"sm\" variant=\"outline\" onClick={() => void loadMore()} disabled={loadingMore}>\n {loadingMore ? 'Loading…' : `Show more (${runs.length} of ${list.totalCount})`}\n </Button>\n )}\n </div>\n );\n}\n\nfunction ConflictRow({ conflict }: { conflict: SyncConflictRow }) {\n const navigate = usePlanMagnetNavigate();\n const mapping = conflict.mapping;\n const isWorkItem = mapping?.internalType === 'workitem';\n\n return (\n <li className=\"rounded-md border p-4 space-y-2\" data-testid=\"sync-conflict\">\n <div className=\"flex flex-wrap items-center justify-between gap-2\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <ConflictStatusBadge status={conflict.status} />\n <span className=\"text-xs text-muted-foreground\">\n Detected {new Date(conflict.createdAt).toLocaleString()}\n </span>\n </div>\n {mapping && (\n <div className=\"flex items-center gap-2 text-xs\">\n {isWorkItem ? (\n <button\n type=\"button\"\n className=\"font-medium text-primary hover:underline\"\n onClick={() =>\n navigate(\n `/tasks/task-detail-page?taskId=${encodeURIComponent(mapping.internalId)}`\n )\n }\n >\n Open in PlanMagnet\n </button>\n ) : (\n <span className=\"text-muted-foreground\">\n {mapping.internalType} {mapping.internalId}\n </span>\n )}\n {mapping.externalUrl && (\n <a\n href={mapping.externalUrl}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n className=\"inline-flex items-center gap-1 text-primary hover:underline\"\n >\n View on {mapping.externalType}\n <ExternalLink className=\"h-3 w-3\" />\n </a>\n )}\n </div>\n )}\n </div>\n <p className=\"text-sm\">\n Fields in conflict:{' '}\n <span className=\"font-medium\">\n {conflict.fields.length ? conflict.fields.join(', ') : 'unknown'}\n </span>\n </p>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-2 text-xs text-muted-foreground\">\n <span>PlanMagnet last updated {new Date(conflict.localUpdatedAt).toLocaleString()}</span>\n <span>Provider last updated {new Date(conflict.remoteUpdatedAt).toLocaleString()}</span>\n </div>\n {conflict.status === 'OPEN' ? (\n <ConflictResolveActions conflictId={conflict.id} />\n ) : (\n <p className=\"text-xs text-muted-foreground\">\n Resolved {conflict.resolvedAt ? new Date(conflict.resolvedAt).toLocaleString() : ''}\n {conflict.resolution\n ? ` — ${RESOLUTION_PHRASE[conflict.resolution] ?? conflict.resolution.toLowerCase()}`\n : ''}\n {conflict.resolvedBy ? (\n <>\n {' by '}\n <PersonName id={conflict.resolvedBy} />\n </>\n ) : null}\n </p>\n )}\n </li>\n );\n}\n\nfunction ConflictsSection({ syncId }: { syncId: string }) {\n const [status, setStatus] = useState<'ALL' | ConflictStatus>('OPEN');\n const [loadingMore, setLoadingMore] = useState(false);\n const { data, loading, error, fetchMore } = useQuery<{\n planmagnetSyncConflicts: {\n totalCount: number;\n pageInfo: { hasNextPage: boolean; endCursor: string | null };\n items: SyncConflictRow[];\n };\n }>(GET_SYNC_CONFLICTS, {\n variables: {\n syncId,\n status: status === 'ALL' ? undefined : status,\n pagination: { first: CONFLICTS_PAGE },\n },\n });\n\n const list = data?.planmagnetSyncConflicts;\n const conflicts = list?.items ?? [];\n\n const loadMore = async () => {\n const after = list?.pageInfo.endCursor;\n if (!after) return;\n setLoadingMore(true);\n try {\n await fetchMore({\n variables: { pagination: { first: CONFLICTS_PAGE, after } },\n updateQuery: (prev, { fetchMoreResult }) => ({\n planmagnetSyncConflicts: {\n ...fetchMoreResult.planmagnetSyncConflicts,\n items: [\n ...prev.planmagnetSyncConflicts.items,\n ...fetchMoreResult.planmagnetSyncConflicts.items,\n ],\n },\n }),\n });\n } finally {\n setLoadingMore(false);\n }\n };\n\n return (\n <div className=\"space-y-3\" data-testid=\"sync-conflicts\">\n <div className=\"flex flex-wrap gap-1\" role=\"group\" aria-label=\"Filter conflicts by status\">\n {(['OPEN', 'RESOLVED', 'ALL'] as const).map((s) => (\n <button\n key={s}\n type=\"button\"\n aria-pressed={status === s}\n data-testid={`sync-conflicts-status-${s}`}\n onClick={() => setStatus(s)}\n className={`px-3 py-1.5 text-sm rounded-md ${status === s ? 'bg-primary text-primary-foreground' : 'text-muted-foreground hover:bg-muted'}`}\n >\n {s === 'ALL' ? 'All' : s.charAt(0) + s.slice(1).toLowerCase()}\n </button>\n ))}\n </div>\n {error && (\n <p role=\"alert\" className=\"text-sm text-destructive\">\n Conflicts could not be loaded: {error.message}\n </p>\n )}\n {loading && !data && <p className=\"text-sm text-muted-foreground\">Loading conflicts…</p>}\n {list && conflicts.length === 0 && (\n <p className=\"py-6 text-center text-sm text-muted-foreground\">\n {status === 'OPEN' ? 'No open conflicts.' : 'No conflicts found.'}\n </p>\n )}\n <ul className=\"space-y-3\">\n {conflicts.map((conflict) => (\n <ConflictRow key={conflict.id} conflict={conflict} />\n ))}\n </ul>\n {list?.pageInfo.hasNextPage && (\n <Button size=\"sm\" variant=\"outline\" onClick={() => void loadMore()} disabled={loadingMore}>\n {loadingMore ? 'Loading…' : `Show more (${conflicts.length} of ${list.totalCount})`}\n </Button>\n )}\n </div>\n );\n}\n\nexport function IntegrationsSyncDetailPagePage() {\n const syncId = useEntityId();\n const navigate = usePlanMagnetNavigate();\n const [runResult, setRunResult] = useState<SyncRunResult | null>(null);\n\n const { data, loading, error } = useQuery<{ planmagnetExternalSync: ExternalSyncRow | null }>(\n GET_SYNC_DETAIL,\n { variables: { id: syncId }, skip: !syncId }\n );\n\n if (!syncId)\n return (\n <div className=\"p-6 text-muted-foreground\">No sync selected. Open one from Integrations.</div>\n );\n // Only before the first load: a refetch after an action must not blank the page.\n if (loading && !data)\n return (\n <div className=\"flex items-center justify-center p-12\">\n <div className=\"animate-spin h-8 w-8 border-2 border-primary border-t-transparent rounded-full\" />\n </div>\n );\n if (error)\n return <div className=\"p-6 text-destructive\">Sync could not be loaded: {error.message}</div>;\n\n const sync = data?.planmagnetExternalSync;\n if (!sync) return <div className=\"p-6 text-muted-foreground\">Sync not found.</div>;\n\n const mapping = parseGithubFieldMapping(sync.fieldMapping);\n\n return (\n <div className=\"space-y-6 p-6\" data-testid=\"sync-detail\">\n <div className=\"flex flex-wrap items-start justify-between gap-4\">\n <div className=\"flex items-start gap-3\">\n <Plug className=\"h-6 w-6 text-primary mt-0.5\" />\n <div>\n <div className=\"flex flex-wrap items-center gap-2\">\n <h1 className=\"text-2xl font-semibold\">{providerLabel(sync.provider)} sync</h1>\n <SyncStatusBadge status={sync.status} />\n </div>\n <p className=\"text-sm text-muted-foreground\">\n {sync.project ? (\n <button\n type=\"button\"\n className=\"text-primary hover:underline\"\n onClick={() =>\n navigate(detailPath('/projects/project-detail-page', sync.project?.id))\n }\n >\n {sync.project.name}\n </button>\n ) : (\n 'Unknown project'\n )}\n {' · '}\n {directionLabel(sync.direction)}\n </p>\n </div>\n </div>\n <div className=\"flex flex-wrap items-center gap-2\">\n <RunNowButton syncId={sync.id} size=\"default\" onResult={setRunResult} />\n <PauseResumeButton syncId={sync.id} status={sync.status} />\n <TestConnectionButton syncId={sync.id} />\n <EditSyncDialog\n sync={{\n id: sync.id,\n provider: sync.provider,\n direction: sync.direction,\n conflictStrategy: sync.conflictStrategy,\n fieldMapping: sync.fieldMapping,\n syncFilters: sync.syncFilters,\n }}\n />\n <DeleteSyncButton\n syncId={sync.id}\n label={`${providerLabel(sync.provider)} sync`}\n onDeleted={() => navigate('/integrations/syncs-page')}\n />\n </div>\n </div>\n\n {runResult && <SyncRunResultSummary result={runResult} />}\n\n <div className=\"grid grid-cols-1 lg:grid-cols-3 gap-6\">\n <div className=\"lg:col-span-2 space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Health</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <SyncHealthSummary health={sync.runHealth} />\n {sync.lastSyncError && (\n <p className=\"text-sm text-status-error-text\" data-testid=\"sync-last-error\">\n <TruncatedText\n text={sync.lastSyncError}\n max={200}\n className=\"text-status-error-text\"\n />\n </p>\n )}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <History className=\"h-4 w-4 text-primary\" />\n History\n </CardTitle>\n </CardHeader>\n <CardContent>\n <Tabs defaultValue=\"runs\">\n <TabsList>\n <TabsTrigger value=\"runs\" data-testid=\"sync-tab-runs\">\n Run history\n </TabsTrigger>\n <TabsTrigger value=\"conflicts\" data-testid=\"sync-tab-conflicts\">\n <ShieldAlert className=\"mr-1 h-3.5 w-3.5\" />\n Conflicts\n </TabsTrigger>\n </TabsList>\n <TabsContent value=\"runs\" className=\"mt-4\">\n <RunHistorySection syncId={sync.id} />\n </TabsContent>\n <TabsContent value=\"conflicts\" className=\"mt-4\">\n <ConflictsSection syncId={sync.id} />\n </TabsContent>\n </Tabs>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Details</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3 text-sm\">\n <div className=\"flex justify-between gap-2\">\n <span className=\"text-muted-foreground\">External project</span>\n {sync.externalProjectUrl ? (\n <a\n href={sync.externalProjectUrl}\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n className=\"inline-flex items-center gap-1 font-medium text-primary hover:underline\"\n >\n {sync.externalProjectId}\n <ExternalLink className=\"h-3 w-3\" />\n </a>\n ) : (\n <span className=\"font-medium\">{sync.externalProjectId}</span>\n )}\n </div>\n <div className=\"flex justify-between gap-2\">\n <span className=\"text-muted-foreground\">Conflict strategy</span>\n <Badge variant=\"outline\" className=\"text-xs\">\n {conflictStrategyLabel(sync.conflictStrategy)}\n </Badge>\n </div>\n <p className=\"text-xs text-muted-foreground\">\n {CONFLICT_STRATEGY_EXPLANATION[sync.conflictStrategy]}\n </p>\n {sync.provider === 'GITHUB' && (\n <div>\n <p className=\"text-muted-foreground\">Field mapping</p>\n <p className=\"font-medium\">\n Priority label: <code>{mapping.priority || 'priority:'}</code>\n </p>\n <p className=\"font-medium\">\n Due-date label: <code>{mapping.dueDate || 'due:'}</code>\n </p>\n </div>\n )}\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Items synced</span>\n <span className=\"font-medium\">{sync.totalItemsSynced}</span>\n </div>\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Last synced</span>\n <span>\n {sync.lastSyncedAt ? new Date(sync.lastSyncedAt).toLocaleString() : 'Never'}\n </span>\n </div>\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Created</span>\n <span>{new Date(sync.createdAt).toLocaleDateString()}</span>\n </div>\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Updated</span>\n <span>{new Date(sync.updatedAt).toLocaleDateString()}</span>\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}