Faits: Faits: A. A._, ressortissant du Kosovo né le 15 juin 1950, a été arrêté le 21 décembre 2006 et placé en détention préventive sous l'inculpation d'infraction grave à la loi fédérale sur les stupéfiants. Il lui est reproché d'avoir livré plus de 2,5 kilos d'héroïne à Genève au cours des mois de novembre et décembre 2006. Le 15 juin 2007, A._ a sollicité sa mise en liberté provisoire moyennant le versement d'une caution de 3'000 fr., portée par la suite à 13'000 fr. Par ordonnance du 19 juin 2007, la Chambre d'accusation de la République et canton de Genève (ci-après: la Chambre d'accusation ou la cour cantonale) a refusé de faire droit à cette requête et autorisé la prolongation de la détention préventive de l'intéressé pour une période de deux mois. Elle motivait sa décision par le risque de collusion, les besoins de l'instruction et le danger de fuite. Le 15 juin 2007, A._ a sollicité sa mise en liberté provisoire moyennant le versement d'une caution de 3'000 fr., portée par la suite à 13'000 fr. Par ordonnance du 19 juin 2007, la Chambre d'accusation de la République et canton de Genève (ci-après: la Chambre d'accusation ou la cour cantonale) a refusé de faire droit à cette requête et autorisé la prolongation de la détention préventive de l'intéressé pour une période de deux mois. Elle motivait sa décision par le risque de collusion, les besoins de l'instruction et le danger de fuite. B. Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral d'annuler cette décision et d'ordonner sa mise en liberté immédiate. Il conclut subsidiairement au renvoi de la cause à la cour cantonale pour que "celle-ci se prononce à nouveau dans le respect des principes posés par le Tribunal fédéral". Il prétend que la décision attaquée reposerait sur des faits constatés de manière arbitraire et violerait sa liberté personnelle. Il requiert l'assistance judiciaire. La Chambre d'accusation et le Procureur général de la République et canton de Genève se réfèrent aux considérants de l'ordonnance attaquée.