Faits : A. A._, ressortissante du Cameroun et domiciliée à Strasbourg, a été arrêtée à Bâle le 3 janvier 2015. Il lui est reproché d'avoir effectué, de janvier à avril 2008, plusieurs transports d'un kilo de cocaïne entre les Pays-Bas et la Suisse, dans le cadre d'un important réseau dirigé depuis Rotterdam. Par ordonnance du 7 janvier 2015, le Tribunal des mesures de contrainte du canton de Vaud (Tmc) a ordonné le placement en détention provisoire de l'intéressée pour une durée de trois mois. Par arrêt du 30 janvier 2015, la Chambre des recours pénale du Tribunal cantonal vaudois (ci-après: le Tribunal cantonal) a partiellement admis le recours de la prévenue et ordonné sa libération moyennant le dépôt du passeport et le versement de 2'000 fr. à titre de sûretés; ces mesures étaient, compte tenu de la situation financière précaire de l'intéressée, susceptibles de l'empêcher de quitter la France. Saisi par le Procureur général du canton de Vaud, le Tribunal fédéral a, par arrêt 1B_42/2015 du 16 février 2015, annulé l'arrêt cantonal du 30 janvier 2015. Il a estimé que le risque de fuite était particulièrement évident. Compte tenu de la nationalité camerounaise de l'intéressée, de son domicile en France et de la gravité des charges (trafic portant sur 8 kg de cocaïne), le montant de la caution de 2'000 fr. était manifestement insuffisant pour prévenir le risque de fuite. Le Tribunal fédéral a donc renvoyé la cause au Tribunal cantonal pour qu'il tente de cerner plus précisément, avec la collaboration de l'intimée, l'ensemble de sa situation personnelle et patrimoniale ainsi que ses liens éventuels avec des personnes susceptibles de fournir cas échéant des sûretés en sa faveur. B. Par arrêt du 12 mars 2015, le Tribunal cantonal a maintenu A._ en détention. Selon lui, le montant des sûretés proposé - augmenté à 3'000 euros - était toujours insuffisant au regard du risque de fuite. C. Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral de réformer l'arrêt cantonal en ce sens que sa libération immédiate soit ordonnée, subsidiairement moyennant des mesures de substitution; encore plus subsidiairement, elle conclut au renvoi de la cause au Tribunal cantonal pour nouvelle décision au sens des considérants. L'intéressée sollicite également l'assistance judiciaire. A l'appui de son écriture, elle produit entre autres l'acte d'accusation du 25 mars 2015 par lequel le Ministère public l'a renvoyée en jugement devant le Tribunal correctionnel de l'arrondissement de Lausanne pour infraction grave à la LStup. La cour cantonale a renoncé à prendre position. Le Ministère public s'est déterminé, précisant notamment que l'audience de jugement était fixée au 21 juillet 2015.