@local-logic/sdks-app 1.24.46 → 1.24.48
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.
- package/dist/assets/{Attribution-DbOBCi1z.js → Attribution-VAUTsSaN.js} +2 -2
- package/dist/assets/{Attribution-DbOBCi1z.js.map → Attribution-VAUTsSaN.js.map} +1 -1
- package/dist/assets/{Attribution-legacy-CfRQzeMT.js → Attribution-legacy-DboLkPv_.js} +2 -2
- package/dist/assets/{Attribution-legacy-CfRQzeMT.js.map → Attribution-legacy-DboLkPv_.js.map} +1 -1
- package/dist/assets/{Cluster-BHQcO6iC-COo7MZkY.js → Cluster-BHQcO6iC-BJl43kIy.js} +2 -2
- package/dist/assets/{Cluster-BHQcO6iC-COo7MZkY.js.map → Cluster-BHQcO6iC-BJl43kIy.js.map} +1 -1
- package/dist/assets/{Cluster-BHQcO6iC-legacy-YFZGJFm9.js → Cluster-BHQcO6iC-legacy-CWct_rTL.js} +2 -2
- package/dist/assets/{Cluster-BHQcO6iC-legacy-YFZGJFm9.js.map → Cluster-BHQcO6iC-legacy-CWct_rTL.js.map} +1 -1
- package/dist/assets/{Google-BFAJ84CT-CVCRsl9z.js → Google-BFAJ84CT-CiY2-EF8.js} +2 -2
- package/dist/assets/{Google-BFAJ84CT-CVCRsl9z.js.map → Google-BFAJ84CT-CiY2-EF8.js.map} +1 -1
- package/dist/assets/{Google-BFAJ84CT-legacy-W4Tvm2Mc.js → Google-BFAJ84CT-legacy-PddiRo87.js} +2 -2
- package/dist/assets/{Google-BFAJ84CT-legacy-W4Tvm2Mc.js.map → Google-BFAJ84CT-legacy-PddiRo87.js.map} +1 -1
- package/dist/assets/{Google-BS41ufih-C3NNI2F3.js → Google-BS41ufih-DgrARGk_.js} +2 -2
- package/dist/assets/{Google-BS41ufih-C3NNI2F3.js.map → Google-BS41ufih-DgrARGk_.js.map} +1 -1
- package/dist/assets/{Google-BS41ufih-legacy-KqwoY-s-.js → Google-BS41ufih-legacy-Ctgvq5J8.js} +2 -2
- package/dist/assets/{Google-BS41ufih-legacy-KqwoY-s-.js.map → Google-BS41ufih-legacy-Ctgvq5J8.js.map} +1 -1
- package/dist/assets/{Google-CH7a2yx--B5OZwBb3.js → Google-CH7a2yx--6S15nNMT.js} +2 -2
- package/dist/assets/{Google-CH7a2yx--B5OZwBb3.js.map → Google-CH7a2yx--6S15nNMT.js.map} +1 -1
- package/dist/assets/{Google-CH7a2yx--legacy-ovzCny0i.js → Google-CH7a2yx--legacy-BYKE7f5n.js} +2 -2
- package/dist/assets/{Google-CH7a2yx--legacy-ovzCny0i.js.map → Google-CH7a2yx--legacy-BYKE7f5n.js.map} +1 -1
- package/dist/assets/{Google-CXGCn-oJ-znpmnYf8.js → Google-CXGCn-oJ-CVQofaXT.js} +2 -2
- package/dist/assets/{Google-CXGCn-oJ-znpmnYf8.js.map → Google-CXGCn-oJ-CVQofaXT.js.map} +1 -1
- package/dist/assets/{Google-CXGCn-oJ-legacy-DqVd9_aH.js → Google-CXGCn-oJ-legacy-JWuCwGCf.js} +2 -2
- package/dist/assets/{Google-CXGCn-oJ-legacy-DqVd9_aH.js.map → Google-CXGCn-oJ-legacy-JWuCwGCf.js.map} +1 -1
- package/dist/assets/{Google-DbOLrYJn-DOg3M4UT.js → Google-DbOLrYJn-CrsHDATa.js} +2 -2
- package/dist/assets/{Google-DbOLrYJn-DOg3M4UT.js.map → Google-DbOLrYJn-CrsHDATa.js.map} +1 -1
- package/dist/assets/{Google-DbOLrYJn-legacy-CgUrK8b9.js → Google-DbOLrYJn-legacy-CiSc0ULE.js} +2 -2
- package/dist/assets/{Google-DbOLrYJn-legacy-CgUrK8b9.js.map → Google-DbOLrYJn-legacy-CiSc0ULE.js.map} +1 -1
- package/dist/assets/{GridGraph-yBBTzk8L.js → GridGraph-Bw4l3RHR.js} +2 -2
- package/dist/assets/{GridGraph-yBBTzk8L.js.map → GridGraph-Bw4l3RHR.js.map} +1 -1
- package/dist/assets/{GridGraph-legacy-BEm4tULl.js → GridGraph-legacy-DWR6NaB3.js} +2 -2
- package/dist/assets/{GridGraph-legacy-BEm4tULl.js.map → GridGraph-legacy-DWR6NaB3.js.map} +1 -1
- package/dist/assets/{LeadCapture-CcCJOdMF.js → LeadCapture-CkmSW5Pr.js} +2 -2
- package/dist/assets/{LeadCapture-CcCJOdMF.js.map → LeadCapture-CkmSW5Pr.js.map} +1 -1
- package/dist/assets/{LeadCapture-legacy-CC7GvUIm.js → LeadCapture-legacy-DKtkrsO8.js} +2 -2
- package/dist/assets/{LeadCapture-legacy-CC7GvUIm.js.map → LeadCapture-legacy-DKtkrsO8.js.map} +1 -1
- package/dist/assets/{LocalContent-CUEHVePD.js → LocalContent-CV5K_rfr.js} +2 -2
- package/dist/assets/{LocalContent-CUEHVePD.js.map → LocalContent-CV5K_rfr.js.map} +1 -1
- package/dist/assets/{LocalContent-legacy-Eg3jqs1z.js → LocalContent-legacy-C5Fpv5_B.js} +2 -2
- package/dist/assets/{LocalContent-legacy-Eg3jqs1z.js.map → LocalContent-legacy-C5Fpv5_B.js.map} +1 -1
- package/dist/assets/{LocalDemographics-D1myrahD.js → LocalDemographics-D3-WhZSc.js} +2 -2
- package/dist/assets/{LocalDemographics-D1myrahD.js.map → LocalDemographics-D3-WhZSc.js.map} +1 -1
- package/dist/assets/{LocalDemographics-legacy-DJscsEe8.js → LocalDemographics-legacy-B6Sa5XzJ.js} +2 -2
- package/dist/assets/{LocalDemographics-legacy-DJscsEe8.js.map → LocalDemographics-legacy-B6Sa5XzJ.js.map} +1 -1
- package/dist/assets/{Mapbox-CpLnA607-C35-XzRp.js → Mapbox-CpLnA607-CEa_XDw3.js} +2 -2
- package/dist/assets/{Mapbox-CpLnA607-C35-XzRp.js.map → Mapbox-CpLnA607-CEa_XDw3.js.map} +1 -1
- package/dist/assets/{Mapbox-CpLnA607-legacy-D-RFP_i8.js → Mapbox-CpLnA607-legacy-BMu_DMew.js} +2 -2
- package/dist/assets/{Mapbox-CpLnA607-legacy-D-RFP_i8.js.map → Mapbox-CpLnA607-legacy-BMu_DMew.js.map} +1 -1
- package/dist/assets/{Mapbox-DDJ1gHRb-BEuZAMRW.js → Mapbox-DDJ1gHRb-C36Qt85j.js} +2 -2
- package/dist/assets/{Mapbox-DDJ1gHRb-BEuZAMRW.js.map → Mapbox-DDJ1gHRb-C36Qt85j.js.map} +1 -1
- package/dist/assets/{Mapbox-DDJ1gHRb-legacy-D5mmvaXK.js → Mapbox-DDJ1gHRb-legacy-DVoK7jfv.js} +2 -2
- package/dist/assets/{Mapbox-DDJ1gHRb-legacy-D5mmvaXK.js.map → Mapbox-DDJ1gHRb-legacy-DVoK7jfv.js.map} +1 -1
- package/dist/assets/{Mapbox-DiD9etYJ-D0p8Z1Hf.js → Mapbox-DiD9etYJ-CO_gjNje.js} +2 -2
- package/dist/assets/{Mapbox-DiD9etYJ-D0p8Z1Hf.js.map → Mapbox-DiD9etYJ-CO_gjNje.js.map} +1 -1
- package/dist/assets/{Mapbox-DiD9etYJ-legacy-ecnYbFLA.js → Mapbox-DiD9etYJ-legacy-Dgmp3ATd.js} +2 -2
- package/dist/assets/{Mapbox-DiD9etYJ-legacy-ecnYbFLA.js.map → Mapbox-DiD9etYJ-legacy-Dgmp3ATd.js.map} +1 -1
- package/dist/assets/{Mapbox-DtZmt1D_-D-25hmVE.js → Mapbox-DtZmt1D_-BlzdhDxn.js} +2 -2
- package/dist/assets/{Mapbox-DtZmt1D_-D-25hmVE.js.map → Mapbox-DtZmt1D_-BlzdhDxn.js.map} +1 -1
- package/dist/assets/{Mapbox-DtZmt1D_-legacy-Dt4ppBn4.js → Mapbox-DtZmt1D_-legacy-CO57dhdL.js} +2 -2
- package/dist/assets/{Mapbox-DtZmt1D_-legacy-Dt4ppBn4.js.map → Mapbox-DtZmt1D_-legacy-CO57dhdL.js.map} +1 -1
- package/dist/assets/{Mapbox-u11C3LWs-NZfgmrTU.js → Mapbox-u11C3LWs-BgmUme_E.js} +2 -2
- package/dist/assets/{Mapbox-u11C3LWs-NZfgmrTU.js.map → Mapbox-u11C3LWs-BgmUme_E.js.map} +1 -1
- package/dist/assets/{Mapbox-u11C3LWs-legacy-C66ki0mu.js → Mapbox-u11C3LWs-legacy-xAhG5vp_.js} +2 -2
- package/dist/assets/{Mapbox-u11C3LWs-legacy-C66ki0mu.js.map → Mapbox-u11C3LWs-legacy-xAhG5vp_.js.map} +1 -1
- package/dist/assets/{Maptiler-C0oTROMk-BqovvwwC.js → Maptiler-C0oTROMk-1XxXvK9C.js} +2 -2
- package/dist/assets/{Maptiler-C0oTROMk-BqovvwwC.js.map → Maptiler-C0oTROMk-1XxXvK9C.js.map} +1 -1
- package/dist/assets/{Maptiler-C0oTROMk-legacy-BBj3sP6x.js → Maptiler-C0oTROMk-legacy-Dpy0lP10.js} +2 -2
- package/dist/assets/{Maptiler-C0oTROMk-legacy-BBj3sP6x.js.map → Maptiler-C0oTROMk-legacy-Dpy0lP10.js.map} +1 -1
- package/dist/assets/{Maptiler-DJScKW8p-legacy-XfyovsQe.js → Maptiler-DJScKW8p-legacy-C4Afd73M.js} +2 -2
- package/dist/assets/{Maptiler-DJScKW8p-legacy-XfyovsQe.js.map → Maptiler-DJScKW8p-legacy-C4Afd73M.js.map} +1 -1
- package/dist/assets/{Maptiler-DJScKW8p-TUrBO7_a.js → Maptiler-DJScKW8p-tTknnklb.js} +2 -2
- package/dist/assets/{Maptiler-DJScKW8p-TUrBO7_a.js.map → Maptiler-DJScKW8p-tTknnklb.js.map} +1 -1
- package/dist/assets/{Maptiler-DdeFS4iM-Cx5ogDJ1.js → Maptiler-DdeFS4iM-4hobXola.js} +2 -2
- package/dist/assets/{Maptiler-DdeFS4iM-Cx5ogDJ1.js.map → Maptiler-DdeFS4iM-4hobXola.js.map} +1 -1
- package/dist/assets/{Maptiler-DdeFS4iM-legacy-NQtjsE92.js → Maptiler-DdeFS4iM-legacy-CNntdDSk.js} +2 -2
- package/dist/assets/{Maptiler-DdeFS4iM-legacy-NQtjsE92.js.map → Maptiler-DdeFS4iM-legacy-CNntdDSk.js.map} +1 -1
- package/dist/assets/{Maptiler-DqeshLom-mNJfOh1F.js → Maptiler-DqeshLom-DbyVG18V.js} +2 -2
- package/dist/assets/{Maptiler-DqeshLom-mNJfOh1F.js.map → Maptiler-DqeshLom-DbyVG18V.js.map} +1 -1
- package/dist/assets/{Maptiler-DqeshLom-legacy-EC2k1zPm.js → Maptiler-DqeshLom-legacy-Dn6h239n.js} +2 -2
- package/dist/assets/{Maptiler-DqeshLom-legacy-EC2k1zPm.js.map → Maptiler-DqeshLom-legacy-Dn6h239n.js.map} +1 -1
- package/dist/assets/{Maptiler-YjlcPccn-BJPHRwv_.js → Maptiler-YjlcPccn-D7VPGNbZ.js} +2 -2
- package/dist/assets/{Maptiler-YjlcPccn-BJPHRwv_.js.map → Maptiler-YjlcPccn-D7VPGNbZ.js.map} +1 -1
- package/dist/assets/{Maptiler-YjlcPccn-legacy-ChoeWKWv.js → Maptiler-YjlcPccn-legacy-BLFJcOlg.js} +2 -2
- package/dist/assets/{Maptiler-YjlcPccn-legacy-ChoeWKWv.js.map → Maptiler-YjlcPccn-legacy-BLFJcOlg.js.map} +1 -1
- package/dist/assets/{MarkerIcon-Bc3X9WQk-65JagyeU.js → MarkerIcon-Bc3X9WQk-Brd7XGn2.js} +2 -2
- package/dist/assets/{MarkerIcon-Bc3X9WQk-65JagyeU.js.map → MarkerIcon-Bc3X9WQk-Brd7XGn2.js.map} +1 -1
- package/dist/assets/{MarkerIcon-Bc3X9WQk-legacy-gVB3owO5.js → MarkerIcon-Bc3X9WQk-legacy-CVBR0czK.js} +2 -2
- package/dist/assets/{MarkerIcon-Bc3X9WQk-legacy-gVB3owO5.js.map → MarkerIcon-Bc3X9WQk-legacy-CVBR0czK.js.map} +1 -1
- package/dist/assets/{NeighborhoodCard-legacy-BqOK9NxX.js → NeighborhoodCard-legacy-6QatJ_AV.js} +2 -2
- package/dist/assets/{NeighborhoodCard-legacy-BqOK9NxX.js.map → NeighborhoodCard-legacy-6QatJ_AV.js.map} +1 -1
- package/dist/assets/{NeighborhoodCard-C2AH1bMm.js → NeighborhoodCard-y49qqUhP.js} +2 -2
- package/dist/assets/{NeighborhoodCard-C2AH1bMm.js.map → NeighborhoodCard-y49qqUhP.js.map} +1 -1
- package/dist/assets/{NeighborhoodCharacteristics-BsXGAPP1.js → NeighborhoodCharacteristics-DNuFR4OM.js} +2 -2
- package/dist/assets/{NeighborhoodCharacteristics-BsXGAPP1.js.map → NeighborhoodCharacteristics-DNuFR4OM.js.map} +1 -1
- package/dist/assets/{NeighborhoodCharacteristics-legacy-D-ZKNfDg.js → NeighborhoodCharacteristics-legacy-CpZ6yc2w.js} +2 -2
- package/dist/assets/{NeighborhoodCharacteristics-legacy-D-ZKNfDg.js.map → NeighborhoodCharacteristics-legacy-CpZ6yc2w.js.map} +1 -1
- package/dist/assets/{NeighborhoodDemographics-DKSbyeKt.js → NeighborhoodDemographics-CXFUR9KF.js} +2 -2
- package/dist/assets/{NeighborhoodDemographics-DKSbyeKt.js.map → NeighborhoodDemographics-CXFUR9KF.js.map} +1 -1
- package/dist/assets/{NeighborhoodDemographics-legacy-BOMYw_wh.js → NeighborhoodDemographics-legacy-DSkioQNG.js} +2 -2
- package/dist/assets/{NeighborhoodDemographics-legacy-BOMYw_wh.js.map → NeighborhoodDemographics-legacy-DSkioQNG.js.map} +1 -1
- package/dist/assets/{NeighborhoodFeatured-DJZf3R4I.js → NeighborhoodFeatured-BKd6YA1v.js} +2 -2
- package/dist/assets/{NeighborhoodFeatured-DJZf3R4I.js.map → NeighborhoodFeatured-BKd6YA1v.js.map} +1 -1
- package/dist/assets/{NeighborhoodFeatured-legacy-BGKve7eG.js → NeighborhoodFeatured-legacy-CCONjKB2.js} +2 -2
- package/dist/assets/{NeighborhoodFeatured-legacy-BGKve7eG.js.map → NeighborhoodFeatured-legacy-CCONjKB2.js.map} +1 -1
- package/dist/assets/{NeighborhoodHero-BwIQbJJr.js → NeighborhoodHero-DVQjRoqv.js} +2 -2
- package/dist/assets/{NeighborhoodHero-BwIQbJJr.js.map → NeighborhoodHero-DVQjRoqv.js.map} +1 -1
- package/dist/assets/{NeighborhoodHero-legacy-SrF8PbpD.js → NeighborhoodHero-legacy-BeO8mbMP.js} +2 -2
- package/dist/assets/{NeighborhoodHero-legacy-SrF8PbpD.js.map → NeighborhoodHero-legacy-BeO8mbMP.js.map} +1 -1
- package/dist/assets/{NeighborhoodHighlights-mjAr2hfD.js → NeighborhoodHighlights-C-l3FSHS.js} +2 -2
- package/dist/assets/{NeighborhoodHighlights-mjAr2hfD.js.map → NeighborhoodHighlights-C-l3FSHS.js.map} +1 -1
- package/dist/assets/{NeighborhoodHighlights-legacy-C67W_sfq.js → NeighborhoodHighlights-legacy-VAwV6Yuf.js} +2 -2
- package/dist/assets/{NeighborhoodHighlights-legacy-C67W_sfq.js.map → NeighborhoodHighlights-legacy-VAwV6Yuf.js.map} +1 -1
- package/dist/assets/{NeighborhoodMap-DPYOytyi.js → NeighborhoodMap-SOLqk915.js} +2 -2
- package/dist/assets/{NeighborhoodMap-DPYOytyi.js.map → NeighborhoodMap-SOLqk915.js.map} +1 -1
- package/dist/assets/{NeighborhoodMap-legacy-DTKrBYM9.js → NeighborhoodMap-legacy-6HMmPy3k.js} +2 -2
- package/dist/assets/{NeighborhoodMap-legacy-DTKrBYM9.js.map → NeighborhoodMap-legacy-6HMmPy3k.js.map} +1 -1
- package/dist/assets/{NeighborhoodMarketTrends-DVoJqBSK.js → NeighborhoodMarketTrends-BWkydTvh.js} +3 -3
- package/dist/assets/{NeighborhoodMarketTrends-DVoJqBSK.js.map → NeighborhoodMarketTrends-BWkydTvh.js.map} +1 -1
- package/dist/assets/{NeighborhoodMarketTrends-legacy-DoJzHzt-.js → NeighborhoodMarketTrends-legacy-BEaZtDZU.js} +2 -2
- package/dist/assets/{NeighborhoodMarketTrends-legacy-DoJzHzt-.js.map → NeighborhoodMarketTrends-legacy-BEaZtDZU.js.map} +1 -1
- package/dist/assets/{NeighborhoodMatch-Cxd5Ckmz.js → NeighborhoodMatch-SYR9pQjq.js} +2 -2
- package/dist/assets/{NeighborhoodMatch-Cxd5Ckmz.js.map → NeighborhoodMatch-SYR9pQjq.js.map} +1 -1
- package/dist/assets/{NeighborhoodMatch-legacy-CCvhi7d9.js → NeighborhoodMatch-legacy-D2nxJCLs.js} +2 -2
- package/dist/assets/{NeighborhoodMatch-legacy-CCvhi7d9.js.map → NeighborhoodMatch-legacy-D2nxJCLs.js.map} +1 -1
- package/dist/assets/{NeighborhoodPropertyValueDrivers-Cp13TlP1.js → NeighborhoodPropertyValueDrivers-RNMduJAJ.js} +2 -2
- package/dist/assets/{NeighborhoodPropertyValueDrivers-Cp13TlP1.js.map → NeighborhoodPropertyValueDrivers-RNMduJAJ.js.map} +1 -1
- package/dist/assets/{NeighborhoodPropertyValueDrivers-legacy-DgHKj3YB.js → NeighborhoodPropertyValueDrivers-legacy-DgcEJj_s.js} +2 -2
- package/dist/assets/{NeighborhoodPropertyValueDrivers-legacy-DgHKj3YB.js.map → NeighborhoodPropertyValueDrivers-legacy-DgcEJj_s.js.map} +1 -1
- package/dist/assets/{NeighborhoodSchools-BxW7f8MW.js → NeighborhoodSchools-BKGM8wnj.js} +2 -2
- package/dist/assets/NeighborhoodSchools-BKGM8wnj.js.map +1 -0
- package/dist/assets/{NeighborhoodSchools-legacy-wn_vhMVg.js → NeighborhoodSchools-legacy-BRf8JdnT.js} +2 -2
- package/dist/assets/NeighborhoodSchools-legacy-BRf8JdnT.js.map +1 -0
- package/dist/assets/{NeighborhoodShowcase-Rtb9H8H0.js → NeighborhoodShowcase-BiCRslfL.js} +2 -2
- package/dist/assets/{NeighborhoodShowcase-Rtb9H8H0.js.map → NeighborhoodShowcase-BiCRslfL.js.map} +1 -1
- package/dist/assets/{NeighborhoodShowcase-legacy-YVLKFRYs.js → NeighborhoodShowcase-legacy-DGxKc7rU.js} +2 -2
- package/dist/assets/{NeighborhoodShowcase-legacy-YVLKFRYs.js.map → NeighborhoodShowcase-legacy-DGxKc7rU.js.map} +1 -1
- package/dist/assets/{NoDataContent-j_PMnP79.js → NoDataContent-Cuc_i84P.js} +2 -2
- package/dist/assets/{NoDataContent-j_PMnP79.js.map → NoDataContent-Cuc_i84P.js.map} +1 -1
- package/dist/assets/{NoDataContent-legacy-CjZJUM48.js → NoDataContent-legacy-BBaI2iBm.js} +2 -2
- package/dist/assets/{NoDataContent-legacy-CjZJUM48.js.map → NoDataContent-legacy-BBaI2iBm.js.map} +1 -1
- package/dist/assets/{ResizeWrapper-D1ZDVM4H.js → ResizeWrapper-VGCtIrce.js} +2 -2
- package/dist/assets/{ResizeWrapper-D1ZDVM4H.js.map → ResizeWrapper-VGCtIrce.js.map} +1 -1
- package/dist/assets/{ResizeWrapper-legacy-iNKkL14f.js → ResizeWrapper-legacy-DkCsuOZO.js} +2 -2
- package/dist/assets/{ResizeWrapper-legacy-iNKkL14f.js.map → ResizeWrapper-legacy-DkCsuOZO.js.map} +1 -1
- package/dist/assets/{ScoreCardList-Da29v8up.js → ScoreCardList-Bqj71YOG.js} +2 -2
- package/dist/assets/{ScoreCardList-Da29v8up.js.map → ScoreCardList-Bqj71YOG.js.map} +1 -1
- package/dist/assets/{ScoreCardList-legacy-B03WLqqz.js → ScoreCardList-legacy-GjU22ucO.js} +2 -2
- package/dist/assets/{ScoreCardList-legacy-B03WLqqz.js.map → ScoreCardList-legacy-GjU22ucO.js.map} +1 -1
- package/dist/assets/{ScoreIcon-Cs8AKFlJ.js → ScoreIcon-D8jtY6Ea.js} +2 -2
- package/dist/assets/{ScoreIcon-Cs8AKFlJ.js.map → ScoreIcon-D8jtY6Ea.js.map} +1 -1
- package/dist/assets/{ScoreIcon-legacy-DLpLn9UI.js → ScoreIcon-legacy-DpsGX2TN.js} +2 -2
- package/dist/assets/{ScoreIcon-legacy-DLpLn9UI.js.map → ScoreIcon-legacy-DpsGX2TN.js.map} +1 -1
- package/dist/assets/{Testing--n5Ro0Ek-D8R3uSPy.js → Testing--n5Ro0Ek-Pvcn0lfC.js} +2 -2
- package/dist/assets/{Testing--n5Ro0Ek-D8R3uSPy.js.map → Testing--n5Ro0Ek-Pvcn0lfC.js.map} +1 -1
- package/dist/assets/{Testing--n5Ro0Ek-legacy-lrZwtxeE.js → Testing--n5Ro0Ek-legacy-Ba6Q6M2W.js} +2 -2
- package/dist/assets/{Testing--n5Ro0Ek-legacy-lrZwtxeE.js.map → Testing--n5Ro0Ek-legacy-Ba6Q6M2W.js.map} +1 -1
- package/dist/assets/{Testing-BNJwzbRK-DMVFp6wm.js → Testing-BNJwzbRK-eW1GWySU.js} +2 -2
- package/dist/assets/{Testing-BNJwzbRK-DMVFp6wm.js.map → Testing-BNJwzbRK-eW1GWySU.js.map} +1 -1
- package/dist/assets/{Testing-BNJwzbRK-legacy-DhE0k8_N.js → Testing-BNJwzbRK-legacy-CWb3Z6R3.js} +2 -2
- package/dist/assets/{Testing-BNJwzbRK-legacy-DhE0k8_N.js.map → Testing-BNJwzbRK-legacy-CWb3Z6R3.js.map} +1 -1
- package/dist/assets/{Testing-CoRLhmNT-BJJKyFG7.js → Testing-CoRLhmNT-BIpkyisS.js} +2 -2
- package/dist/assets/{Testing-CoRLhmNT-BJJKyFG7.js.map → Testing-CoRLhmNT-BIpkyisS.js.map} +1 -1
- package/dist/assets/{Testing-CoRLhmNT-legacy-S3Y0lzmm.js → Testing-CoRLhmNT-legacy-cwrKNn0N.js} +2 -2
- package/dist/assets/{Testing-CoRLhmNT-legacy-S3Y0lzmm.js.map → Testing-CoRLhmNT-legacy-cwrKNn0N.js.map} +1 -1
- package/dist/assets/{Testing-DGUeGxdc-VXIwuCIj.js → Testing-DGUeGxdc-L5zJf9Fs.js} +2 -2
- package/dist/assets/{Testing-DGUeGxdc-VXIwuCIj.js.map → Testing-DGUeGxdc-L5zJf9Fs.js.map} +1 -1
- package/dist/assets/{Testing-DGUeGxdc-legacy-B_y2fEvm.js → Testing-DGUeGxdc-legacy-BbdpxUgc.js} +2 -2
- package/dist/assets/{Testing-DGUeGxdc-legacy-B_y2fEvm.js.map → Testing-DGUeGxdc-legacy-BbdpxUgc.js.map} +1 -1
- package/dist/assets/{Testing-DzWAcbhL-DcrzqLJK.js → Testing-DzWAcbhL-bQx9Z3zk.js} +2 -2
- package/dist/assets/{Testing-DzWAcbhL-DcrzqLJK.js.map → Testing-DzWAcbhL-bQx9Z3zk.js.map} +1 -1
- package/dist/assets/{Testing-DzWAcbhL-legacy-Cid9X_rY.js → Testing-DzWAcbhL-legacy-BVsTIu7Y.js} +2 -2
- package/dist/assets/{Testing-DzWAcbhL-legacy-Cid9X_rY.js.map → Testing-DzWAcbhL-legacy-BVsTIu7Y.js.map} +1 -1
- package/dist/assets/{TitleHeader-DVfGGRuh.js → TitleHeader-CV5TUzIR.js} +2 -2
- package/dist/assets/{TitleHeader-DVfGGRuh.js.map → TitleHeader-CV5TUzIR.js.map} +1 -1
- package/dist/assets/{TitleHeader-legacy-C0J7rhSj.js → TitleHeader-legacy-DtRJmLOD.js} +2 -2
- package/dist/assets/{TitleHeader-legacy-C0J7rhSj.js.map → TitleHeader-legacy-DtRJmLOD.js.map} +1 -1
- package/dist/assets/{Trans-DHo3R0Pu.js → Trans-DeObSm-C.js} +2 -2
- package/dist/assets/{Trans-DHo3R0Pu.js.map → Trans-DeObSm-C.js.map} +1 -1
- package/dist/assets/{Trans-legacy-IBYjh5ES.js → Trans-legacy-ClsWwsJX.js} +2 -2
- package/dist/assets/{Trans-legacy-IBYjh5ES.js.map → Trans-legacy-ClsWwsJX.js.map} +1 -1
- package/dist/assets/{ValidateOptions-6YGZBTfN.js → ValidateOptions-DlSPr2zT.js} +2 -2
- package/dist/assets/{ValidateOptions-6YGZBTfN.js.map → ValidateOptions-DlSPr2zT.js.map} +1 -1
- package/dist/assets/{ValidateOptions-legacy-D3wUBs-p.js → ValidateOptions-legacy-C72LlxRr.js} +2 -2
- package/dist/assets/{ValidateOptions-legacy-D3wUBs-p.js.map → ValidateOptions-legacy-C72LlxRr.js.map} +1 -1
- package/dist/assets/{dist-md0aO-Bl.js → dist-CHt1w1gi.js} +2 -2
- package/dist/assets/{dist-md0aO-Bl.js.map → dist-CHt1w1gi.js.map} +1 -1
- package/dist/assets/{dist-legacy-N10x0Qn4.js → dist-legacy-Dfnzo7mD.js} +2 -2
- package/dist/assets/{dist-legacy-N10x0Qn4.js.map → dist-legacy-Dfnzo7mD.js.map} +1 -1
- package/dist/assets/{getMapProviderConfig-DsdY4TCR.js → getMapProviderConfig-cBxa08J2.js} +3 -3
- package/dist/assets/{getMapProviderConfig-DsdY4TCR.js.map → getMapProviderConfig-cBxa08J2.js.map} +1 -1
- package/dist/assets/{getMapProviderConfig-legacy-DFdhoXtH.js → getMapProviderConfig-legacy-DyD__vlI.js} +2 -2
- package/dist/assets/{getMapProviderConfig-legacy-DFdhoXtH.js.map → getMapProviderConfig-legacy-DyD__vlI.js.map} +1 -1
- package/dist/assets/{index-BEULKAl4.js → index-DXa_XaD4.js} +3 -3
- package/dist/assets/{index-BEULKAl4.js.map → index-DXa_XaD4.js.map} +1 -1
- package/dist/assets/{index-legacy-BrWz4Paw.js → index-legacy-k3Sg9cNx.js} +2 -2
- package/dist/assets/{index-legacy-BrWz4Paw.js.map → index-legacy-k3Sg9cNx.js.map} +1 -1
- package/dist/assets/{index.es-BjcD-yLc.js → index.es-Cf2zREaA.js} +2 -2
- package/dist/assets/{index.es-BjcD-yLc.js.map → index.es-Cf2zREaA.js.map} +1 -1
- package/dist/assets/{index.es-legacy-DmyP4yz8.js → index.es-legacy-DA8oW7UU.js} +2 -2
- package/dist/assets/{index.es-legacy-DmyP4yz8.js.map → index.es-legacy-DA8oW7UU.js.map} +1 -1
- package/dist/assets/{mapbox-jb8Zev6T-BDzYTcTT.js → mapbox-jb8Zev6T-DyLOtQWl.js} +2 -2
- package/dist/assets/{mapbox-jb8Zev6T-BDzYTcTT.js.map → mapbox-jb8Zev6T-DyLOtQWl.js.map} +1 -1
- package/dist/assets/{mapbox-jb8Zev6T-legacy-DW10c6JQ.js → mapbox-jb8Zev6T-legacy-De5QdraR.js} +2 -2
- package/dist/assets/{mapbox-jb8Zev6T-legacy-DW10c6JQ.js.map → mapbox-jb8Zev6T-legacy-De5QdraR.js.map} +1 -1
- package/dist/assets/{maplibre-CUYkxr-D-Dl5E27wE.js → maplibre-CUYkxr-D-D9xIR2sA.js} +2 -2
- package/dist/assets/{maplibre-CUYkxr-D-Dl5E27wE.js.map → maplibre-CUYkxr-D-D9xIR2sA.js.map} +1 -1
- package/dist/assets/{maplibre-CUYkxr-D-legacy-mdA6yno0.js → maplibre-CUYkxr-D-legacy-Dm9oh3Qu.js} +2 -2
- package/dist/assets/{maplibre-CUYkxr-D-legacy-mdA6yno0.js.map → maplibre-CUYkxr-D-legacy-Dm9oh3Qu.js.map} +1 -1
- package/dist/assets/neighborhood-fallback-CizB5oi9.js.map +1 -1
- package/dist/assets/{sdks-BJKbwweQ.js → sdks-CJeKEoVJ.js} +2 -2
- package/dist/assets/{sdks-BJKbwweQ.js.map → sdks-CJeKEoVJ.js.map} +1 -1
- package/dist/assets/{sdks-legacy-B-Giiy-T.js → sdks-legacy-CGD_BVHv.js} +2 -2
- package/dist/assets/{sdks-legacy-B-Giiy-T.js.map → sdks-legacy-CGD_BVHv.js.map} +1 -1
- package/dist/assets/{useDemographicsData-DAN7xNS4.js → useDemographicsData-BLyzDX9B.js} +2 -2
- package/dist/assets/{useDemographicsData-DAN7xNS4.js.map → useDemographicsData-BLyzDX9B.js.map} +1 -1
- package/dist/assets/{useDemographicsData-legacy-BvZ5-foT.js → useDemographicsData-legacy-tXicT5qg.js} +2 -2
- package/dist/assets/{useDemographicsData-legacy-BvZ5-foT.js.map → useDemographicsData-legacy-tXicT5qg.js.map} +1 -1
- package/dist/assets/{useGeographies-BWyCShYG.js → useGeographies--nd8CDy6.js} +2 -2
- package/dist/assets/{useGeographies-BWyCShYG.js.map → useGeographies--nd8CDy6.js.map} +1 -1
- package/dist/assets/{useGeographies-legacy-PoRI2Ty0.js → useGeographies-legacy-B2A71Fvq.js} +2 -2
- package/dist/assets/{useGeographies-legacy-PoRI2Ty0.js.map → useGeographies-legacy-B2A71Fvq.js.map} +1 -1
- package/dist/assets/{useIsMobile-legacy-C5ZrOy25.js → useIsMobile-legacy-BCZnP0fd.js} +2 -2
- package/dist/assets/{useIsMobile-legacy-C5ZrOy25.js.map → useIsMobile-legacy-BCZnP0fd.js.map} +1 -1
- package/dist/assets/{useIsMobile-Ctl89qPO.js → useIsMobile-xZV-dkji.js} +2 -2
- package/dist/assets/{useIsMobile-Ctl89qPO.js.map → useIsMobile-xZV-dkji.js.map} +1 -1
- package/dist/assets/{useLocation-COmhiVk7.js → useLocation-BH1znnCK.js} +2 -2
- package/dist/assets/{useLocation-COmhiVk7.js.map → useLocation-BH1znnCK.js.map} +1 -1
- package/dist/assets/{useLocation-legacy-BB8GkEGc.js → useLocation-legacy-TDQwoBsN.js} +2 -2
- package/dist/assets/{useLocation-legacy-BB8GkEGc.js.map → useLocation-legacy-TDQwoBsN.js.map} +1 -1
- package/dist/assets/{useProfiles-CONvAhQh.js → useProfiles-Bv1oBqsf.js} +2 -2
- package/dist/assets/{useProfiles-CONvAhQh.js.map → useProfiles-Bv1oBqsf.js.map} +1 -1
- package/dist/assets/{useProfiles-legacy-CZEWgjR_.js → useProfiles-legacy-l89ci-nV.js} +2 -2
- package/dist/assets/{useProfiles-legacy-CZEWgjR_.js.map → useProfiles-legacy-l89ci-nV.js.map} +1 -1
- package/dist/assets/{useSchools-DHlUvy8w.js → useSchools-DvVxvlVD.js} +2 -2
- package/dist/assets/{useSchools-DHlUvy8w.js.map → useSchools-DvVxvlVD.js.map} +1 -1
- package/dist/assets/{useSchools-legacy-hkMWX2Sm.js → useSchools-legacy-CI4xGBO9.js} +2 -2
- package/dist/assets/{useSchools-legacy-hkMWX2Sm.js.map → useSchools-legacy-CI4xGBO9.js.map} +1 -1
- package/dist/assets/{useScores-QYhAfpZF.js → useScores-UTZXpQJY.js} +2 -2
- package/dist/assets/{useScores-QYhAfpZF.js.map → useScores-UTZXpQJY.js.map} +1 -1
- package/dist/assets/{useScores-legacy-DTRBsa6H.js → useScores-legacy-BMeniwuI.js} +2 -2
- package/dist/assets/{useScores-legacy-DTRBsa6H.js.map → useScores-legacy-BMeniwuI.js.map} +1 -1
- package/dist/index.html +2 -2
- package/dist/types/sdks/NeighborhoodSchools/components/Content/index.js +1 -1
- package/dist/types/sdks/NeighborhoodSchools/components/Content/index.js.map +1 -1
- package/dist/types/sdks/NeighborhoodSchools/components/Content/styles.d.ts +1 -0
- package/dist/types/sdks/NeighborhoodSchools/components/Content/styles.d.ts.map +1 -1
- package/dist/types/sdks/NeighborhoodSchools/components/Content/styles.js +1 -0
- package/dist/types/sdks/NeighborhoodSchools/components/Content/styles.js.map +1 -1
- package/dist/types/sdks/NeighborhoodSchools/components/SchoolsList/SchoolItem/SchoolCategories/index.d.ts.map +1 -1
- package/dist/types/sdks/NeighborhoodSchools/components/SchoolsList/SchoolItem/SchoolCategories/index.js +2 -1
- package/dist/types/sdks/NeighborhoodSchools/components/SchoolsList/SchoolItem/SchoolCategories/index.js.map +1 -1
- package/dist/types/sdks/NeighborhoodSchools/components/SchoolsList/SchoolItem/SchoolCategories/styles.d.ts +2 -0
- package/dist/types/sdks/NeighborhoodSchools/components/SchoolsList/SchoolItem/SchoolCategories/styles.d.ts.map +1 -0
- package/dist/types/sdks/NeighborhoodSchools/components/SchoolsList/SchoolItem/SchoolCategories/styles.js +2 -0
- package/dist/types/sdks/NeighborhoodSchools/components/SchoolsList/SchoolItem/SchoolCategories/styles.js.map +1 -0
- package/dist/types/sdks/NeighborhoodSchools/components/SchoolsList/styles.d.ts +1 -1
- package/dist/types/sdks/NeighborhoodSchools/components/SchoolsList/styles.d.ts.map +1 -1
- package/dist/types/sdks/NeighborhoodSchools/components/SchoolsList/styles.js +1 -1
- package/package.json +1 -1
- package/dist/assets/NeighborhoodSchools-BxW7f8MW.js.map +0 -1
- package/dist/assets/NeighborhoodSchools-legacy-wn_vhMVg.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(){const e=["country","filterLevel","filterType"],t=["size","children"],n=["variant","children"],o=["size","children"],i=["children"];function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach(function(t){a(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function a(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){if(null==e)return{};var n,o,i=function(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(-1!==t.indexOf(o))continue;n[o]=e[o]}return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o<r.length;o++)n=r[o],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}System.register(["./rolldown-runtime-legacy-Djb2rrqm.js","./google-maps-vendor-legacy-CPuMOKGq.js","./sdks-legacy-B-Giiy-T.js","./Backpack.es-legacy-DEMK6Tuk.js","./CaretDown.es-legacy-AW_6LRgL.js","./GraduationCap.es-legacy-DDaS8ZM6.js","./IconBase.es-legacy-VUFA7Zpu.js","./useSchools-legacy-hkMWX2Sm.js","./index-legacy-BrWz4Paw.js","./index.es-legacy-DmyP4yz8.js","./useGeographies-legacy-PoRI2Ty0.js","./useLocation-legacy-BB8GkEGc.js","./Attribution-legacy-CfRQzeMT.js","./globals-legacy-DFpaXsPl.js","./ResizeWrapper-legacy-iNKkL14f.js","./ValidateOptions-legacy-D3wUBs-p.js","./useIsMobile-legacy-C5ZrOy25.js","./bundle-mjs-legacy-Oe_TmErs.js","./TitleHeader-legacy-C0J7rhSj.js","./NoDataContent-legacy-CjZJUM48.js"],function(r,a){var c,d,u,h,f,p,m,g,v,b,x,y,j,_,w,S,L,E,O,I,k,N,C,T,D,F,A,M,P,z,R,V,B,H,$,U,K,Y,W,G,Z,q,J,Q,X,ee,te,ne,oe,ie,re,se,ae,le,ce,de,ue,he,fe,pe,me,ge,ve,be,xe,ye,je,_e,we,Se,Le,Ee,Oe,Ie,ke;function Ne(e){return function(e){return"[object Object]"===Object.prototype.toString.call(e)}(e)||Array.isArray(e)}function Ce(e,t){const n=Object.keys(e),o=Object.keys(t);return n.length===o.length&&(JSON.stringify(Object.keys(e.breakpoints||{}))===JSON.stringify(Object.keys(t.breakpoints||{}))&&n.every(n=>{const o=e[n],i=t[n];return"function"==typeof o?`${o}`==`${i}`:Ne(o)&&Ne(i)?Ce(o,i):o===i}))}function Te(e){return e.concat().sort((e,t)=>e.name>t.name?1:-1).map(e=>e.options)}function De(e){return"number"==typeof e}function Fe(e){return"string"==typeof e}function Ae(e){return"boolean"==typeof e}function Me(e){return"[object Object]"===Object.prototype.toString.call(e)}function Pe(e){return Math.abs(e)}function ze(e){return Math.sign(e)}function Re(e,t){return Pe(e-t)}function Ve(e){return Ke(e).map(Number)}function Be(e){return e[He(e)]}function He(e){return Math.max(0,e.length-1)}function $e(e,t){return t===He(e)}function Ue(e,t=0){return Array.from(Array(e),(e,n)=>t+n)}function Ke(e){return Object.keys(e)}function Ye(e,t){return[e,t].reduce((e,t)=>(Ke(t).forEach(n=>{const o=e[n],i=t[n];e[n]=Me(o)&&Me(i)?Ye(o,i):i}),e),{})}function We(e,t){return void 0!==t.MouseEvent&&e instanceof t.MouseEvent}function Ge(){let e=[];const t={add:function(n,o,i,r={passive:!0}){let s;if("addEventListener"in n)n.addEventListener(o,i,r),s=()=>n.removeEventListener(o,i,r);else{const e=n;e.addListener(i),s=()=>e.removeListener(i)}return e.push(s),t},clear:function(){e=e.filter(e=>e())}};return t}function Ze(e,t,n,o){const i=Ge(),r=1e3/60;let s=null,a=0,l=0;function c(e){if(!l)return;s||(s=e,n(),n());const i=e-s;for(s=e,a+=i;a>=r;)n(),a-=r;o(a/r),l&&(l=t.requestAnimationFrame(c))}function d(){t.cancelAnimationFrame(l),s=null,a=0,l=0}return{init:function(){i.add(e,"visibilitychange",()=>{e.hidden&&(s=null,a=0)})},destroy:function(){d(),i.clear()},start:function(){l||(l=t.requestAnimationFrame(c))},stop:d,update:n,render:o}}function qe(e=0,t=0){const n=Pe(e-t);function o(t){return t<e}function i(e){return e>t}function r(e){return o(e)||i(e)}return{length:n,max:t,min:e,constrain:function(n){return r(n)?o(n)?e:t:n},reachedAny:r,reachedMax:i,reachedMin:o,removeOffset:function(e){return n?e-n*Math.ceil((e-t)/n):e}}}function Je(e,t,n){const{constrain:o}=qe(0,e),i=e+1;let r=s(t);function s(e){return n?Pe((i+e)%i):o(e)}function a(){return r}function l(){return Je(e,a(),n)}const c={get:a,set:function(e){return r=s(e),c},add:function(e){return l().set(a()+e)},clone:l};return c}function Qe(e,t,n,o,i,r,s,a,l,c,d,u,h,f,p,m,g,v,b){const{cross:x,direction:y}=e,j=["INPUT","SELECT","TEXTAREA"],_={passive:!1},w=Ge(),S=Ge(),L=qe(50,225).constrain(f.measure(20)),E={mouse:300,touch:400},O={mouse:500,touch:600},I=p?43:25;let k=!1,N=0,C=0,T=!1,D=!1,F=!1,A=!1;function M(e){if(!We(e,o)&&e.touches.length>=2)return P(e);const t=r.readPoint(e),n=r.readPoint(e,x),s=Re(t,N),l=Re(n,C);if(!D&&!A){if(!e.cancelable)return P(e);if(D=s>l,!D)return P(e)}const d=r.pointerMove(e);s>m&&(F=!0),c.useFriction(.3).useDuration(.75),a.start(),i.add(y(d)),e.preventDefault()}function P(e){const t=d.byDistance(0,!1).index!==u.get(),n=r.pointerUp(e)*(p?O:E)[A?"mouse":"touch"],o=function(e,t){const n=u.add(-1*ze(e)),o=d.byDistance(e,!p).distance;return p||Pe(e)<L?o:g&&t?.5*o:d.byIndex(n.get(),0).distance}(y(n),t),i=(a=o,0===(s=n)||0===a||Pe(s)<=Pe(a)?0:Pe(Re(Pe(s),Pe(a))/s));var s,a;const f=I-10*i,m=v+i/50;D=!1,T=!1,S.clear(),c.useDuration(f).useFriction(m),l.distance(o,!p),A=!1,h.emit("pointerUp")}function z(e){F&&(e.stopPropagation(),e.preventDefault(),F=!1)}return{init:function(e){if(!b)return;function a(a){(Ae(b)||b(e,a))&&function(e){const a=We(e,o);if(A=a,F=p&&a&&!e.buttons&&k,k=Re(i.get(),s.get())>=2,a&&0!==e.button)return;if(function(e){const t=e.nodeName||"";return j.includes(t)}(e.target))return;T=!0,r.pointerDown(e),c.useFriction(0).useDuration(0),i.set(s),function(){const e=A?n:t;S.add(e,"touchmove",M,_).add(e,"touchend",P).add(e,"mousemove",M,_).add(e,"mouseup",P)}(),N=r.readPoint(e),C=r.readPoint(e,x),h.emit("pointerDown")}(a)}const l=t;w.add(l,"dragstart",e=>e.preventDefault(),_).add(l,"touchmove",()=>{},_).add(l,"touchend",()=>{}).add(l,"touchstart",a).add(l,"mousedown",a).add(l,"touchcancel",P).add(l,"contextmenu",P).add(l,"click",z,!0)},destroy:function(){w.clear(),S.clear()},pointerDown:function(){return T}}}function Xe(e,t){let n,o;function i(e){return e.timeStamp}function r(n,o){const i="client"+("x"===(o||e.scroll)?"X":"Y");return(We(n,t)?n:n.touches[0])[i]}return{pointerDown:function(e){return n=e,o=e,r(e)},pointerMove:function(e){const t=r(e)-r(o),s=i(e)-i(n)>170;return o=e,s&&(n=e),t},pointerUp:function(e){if(!n||!o)return 0;const t=r(o)-r(n),s=i(e)-i(n),a=i(e)-i(o)>170,l=t/s;return s&&!a&&Pe(l)>.1?l:0},readPoint:r}}function et(e,t,n,o,i,r,s){const a=[e].concat(o);let l,c,d=[],u=!1;function h(e){return i.measureSize(s.measure(e))}return{init:function(i){r&&(c=h(e),d=o.map(h),l=new ResizeObserver(n=>{(Ae(r)||r(i,n))&&function(n){for(const r of n){if(u)return;const n=r.target===e,s=o.indexOf(r.target),a=n?c:d[s];if(Pe(h(n?e:o[s])-a)>=.5){i.reInit(),t.emit("resize");break}}}(n)}),n.requestAnimationFrame(()=>{a.forEach(e=>l.observe(e))}))},destroy:function(){u=!0,l&&l.disconnect()}}}function tt(e,t,n,o,i){const r=i.measure(10),s=i.measure(50),a=qe(.1,.99);let l=!1;function c(){return!l&&(!!e.reachedAny(n.get())&&!!e.reachedAny(t.get()))}return{shouldConstrain:c,constrain:function(i){if(!c())return;const l=Pe(e[e.reachedMin(t.get())?"min":"max"]-t.get()),d=n.get()-t.get(),u=a.constrain(l/s);n.subtract(d*u),!i&&Pe(d)<r&&(n.set(e.constrain(n.get())),o.useDuration(25).useBaseFriction())},toggleActive:function(e){l=!e}}}function nt(e,t,n,o){const{reachedMin:i,reachedMax:r}=qe(t.min+.1,t.max+.1);return{loop:function(t){if(!function(e){return 1===e?r(n.get()):-1===e&&i(n.get())}(t))return;const s=e*(-1*t);o.forEach(e=>e.add(s))}}}function ot(e,t,n,o,i){const{reachedAny:r,removeOffset:s,constrain:a}=o;function l(e){return e.concat().sort((e,t)=>Pe(e)-Pe(t))[0]}function c(t,o){const i=[t,t+n,t-n];if(!e)return t;if(!o)return l(i);const r=i.filter(e=>ze(e)===o);return r.length?l(r):Be(i)-n}return{byDistance:function(n,o){const l=i.get()+n,{index:d,distance:u}=function(n){const o=e?s(n):a(n),{index:i}=t.map((e,t)=>({diff:c(e-o,0),index:t})).sort((e,t)=>Pe(e.diff)-Pe(t.diff))[0];return{index:i,distance:o}}(l),h=!e&&r(l);return!o||h?{index:d,distance:n}:{index:d,distance:n+c(t[d]-u,0)}},byIndex:function(e,n){return{index:e,distance:c(t[e]-i.get(),n)}},shortcut:c}}function it(e,t,n,o,i,r,s,a){const l={passive:!0,capture:!0};let c=0;function d(e){"Tab"===e.code&&(c=(new Date).getTime())}return{init:function(u){a&&(r.add(document,"keydown",d,!1),t.forEach((t,d)=>{r.add(t,"focus",t=>{(Ae(a)||a(u,t))&&function(t){if((new Date).getTime()-c>10)return;s.emit("slideFocusStart"),e.scrollLeft=0;const r=n.findIndex(e=>e.includes(t));De(r)&&(i.useDuration(0),o.index(r,0),s.emit("slideFocus"))}(d)},l)}))}}}function rt(e){let t=e;function n(e){return De(e)?e:e.get()}return{get:function(){return t},set:function(e){t=n(e)},add:function(e){t+=n(e)},subtract:function(e){t-=n(e)}}}function st(e,t){const n="x"===e.scroll?function(e){return`translate3d(${e}px,0px,0px)`}:function(e){return`translate3d(0px,${e}px,0px)`},o=t.style;let i=null,r=!1;return{clear:function(){r||(o.transform="",t.getAttribute("style")||t.removeAttribute("style"))},to:function(t){if(r)return;const s=(a=e.direction(t),Math.round(100*a)/100);var a;s!==i&&(o.transform=n(s),i=s)},toggleActive:function(e){r=!e}}}function at(e,t,n,o,i,r,s,a,l){const c=Ve(i),d=Ve(i).reverse(),u=function(){const e=s[0];return p(f(d,e),n,!1)}().concat(p(f(c,t-s[0]-1),-n,!0));function h(e,t){return e.reduce((e,t)=>e-i[t],t)}function f(e,t){return e.reduce((e,n)=>h(e,t)>0?e.concat([n]):e,[])}function p(i,s,c){const d=function(e){return r.map((n,i)=>({start:n-o[i]+.5+e,end:n+t-.5+e}))}(s);return i.map(t=>{const o=c?0:-n,i=c?n:0,r=c?"end":"start",s=d[t][r];return{index:t,loopPoint:s,slideLocation:rt(-1),translate:st(e,l[t]),target:()=>a.get()>s?o:i}})}return{canLoop:function(){return u.every(({index:e})=>h(c.filter(t=>t!==e),t)<=.1)},clear:function(){u.forEach(e=>e.translate.clear())},loop:function(){u.forEach(e=>{const{target:t,translate:n,slideLocation:o}=e,i=t();i!==o.get()&&(n.to(i),o.set(i))})},loopPoints:u}}function lt(e,t,n){let o,i=!1;return{init:function(r){n&&(o=new MutationObserver(e=>{i||(Ae(n)||n(r,e))&&function(e){for(const n of e)if("childList"===n.type){r.reInit(),t.emit("slidesChanged");break}}(e)}),o.observe(e,{childList:!0}))},destroy:function(){o&&o.disconnect(),i=!0}}}function ct(e,t,n,o){const i={};let r,s=null,a=null,l=!1;return{init:function(){r=new IntersectionObserver(e=>{l||(e.forEach(e=>{const n=t.indexOf(e.target);i[n]=e}),s=null,a=null,n.emit("slidesInView"))},{root:e.parentElement,threshold:o}),t.forEach(e=>r.observe(e))},destroy:function(){r&&r.disconnect(),l=!0},get:function(e=!0){if(e&&s)return s;if(!e&&a)return a;const t=function(e){return Ke(i).reduce((t,n)=>{const o=parseInt(n),{isIntersecting:r}=i[o];return(e&&r||!e&&!r)&&t.push(o),t},[])}(e);return e&&(s=t),e||(a=t),t}}}function dt(e,t,n,o,i,r,s,a,l){const{startEdge:c,endEdge:d,direction:u}=e,h=De(n);return{groupSlides:function(e){return h?function(e,t){return Ve(e).filter(e=>e%t===0).map(n=>e.slice(n,n+t))}(e,n):function(e){return e.length?Ve(e).reduce((n,h,f)=>{const p=Be(n)||0,m=0===p,g=h===He(e),v=i[c]-r[p][c],b=i[c]-r[h][d],x=!o&&m?u(s):0,y=Pe(b-(!o&&g?u(a):0)-(v+x));return f&&y>t+l&&n.push(h),g&&n.push(e.length),n},[]).map((t,n,o)=>{const i=Math.max(o[n-1]||0);return e.slice(i,t)}):[]}(e)}}}function ut(e,t,n,o,i,r,s){const{align:a,axis:l,direction:c,startIndex:d,loop:u,duration:h,dragFree:f,dragThreshold:p,inViewThreshold:m,slidesToScroll:g,skipSnaps:v,containScroll:b,watchResize:x,watchSlides:y,watchDrag:j,watchFocus:_}=r,w={measure:function(e){const{offsetTop:t,offsetLeft:n,offsetWidth:o,offsetHeight:i}=e;return{top:t,right:n+o,bottom:t+i,left:n,width:o,height:i}}},S=w.measure(t),L=n.map(w.measure),E=function(e,t){const n="rtl"===t,o="y"===e,i=!o&&n?-1:1;return{scroll:o?"y":"x",cross:o?"x":"y",startEdge:o?"top":n?"right":"left",endEdge:o?"bottom":n?"left":"right",measureSize:function(e){const{height:t,width:n}=e;return o?t:n},direction:function(e){return e*i}}}(l,c),O=E.measureSize(S),I=function(e){return{measure:function(t){return e*(t/100)}}}(O),k=function(e,t){const n={start:function(){return 0},center:function(e){return o(e)/2},end:o};function o(e){return t-e}return{measure:function(o,i){return Fe(e)?n[e](o):e(t,o,i)}}}(a,O),N=!u&&!!b,{slideSizes:C,slideSizesWithGaps:T,startGap:D,endGap:F}=function(e,t,n,o,i,r){const{measureSize:s,startEdge:a,endEdge:l}=e,c=n[0]&&i,d=function(){if(!c)return 0;const e=n[0];return Pe(t[a]-e[a])}(),u=function(){if(!c)return 0;const e=r.getComputedStyle(Be(o));return parseFloat(e.getPropertyValue(`margin-${l}`))}(),h=n.map(s),f=n.map((e,t,n)=>{const o=!t,i=$e(n,t);return o?h[t]+d:i?h[t]+u:n[t+1][a]-e[a]}).map(Pe);return{slideSizes:h,slideSizesWithGaps:f,startGap:d,endGap:u}}(E,S,L,n,u||!!b,i),A=dt(E,O,g,u,S,L,D,F,2),{snaps:M,snapsAligned:P}=function(e,t,n,o,i){const{startEdge:r,endEdge:s}=e,{groupSlides:a}=i,l=a(o).map(e=>Be(e)[s]-e[0][r]).map(Pe).map(t.measure),c=o.map(e=>n[r]-e[r]).map(e=>-Pe(e)),d=a(c).map(e=>e[0]).map((e,t)=>e+l[t]);return{snaps:c,snapsAligned:d}}(E,k,S,L,A),z=-Be(M)+Be(T),{snapsContained:R,scrollContainLimit:V}=function(e,t,n,o,i){const r=qe(-t+e,0),s=n.map((e,t)=>{const{min:o,max:i}=r,s=r.constrain(e),a=!t,c=$e(n,t);return a?i:c||l(o,s)?o:l(i,s)?i:s}).map(e=>parseFloat(e.toFixed(3))),a=function(){const e=s[0],t=Be(s);return qe(s.lastIndexOf(e),s.indexOf(t)+1)}();function l(e,t){return Re(e,t)<=1}return{snapsContained:function(){if(t<=e+i)return[r.max];if("keepSnaps"===o)return s;const{min:n,max:l}=a;return s.slice(n,l)}(),scrollContainLimit:a}}(O,z,P,b,2),B=N?R:P,{limit:H}=function(e,t,n){const o=t[0];return{limit:qe(n?o-e:Be(t),o)}}(z,B,u),$=Je(He(B),d,u),U=$.clone(),K=Ve(n),Y=Ze(o,i,()=>(({dragHandler:e,scrollBody:t,scrollBounds:n,options:{loop:o}})=>{o||n.constrain(e.pointerDown()),t.seek()})(se),e=>(({scrollBody:e,translate:t,location:n,offsetLocation:o,previousLocation:i,scrollLooper:r,slideLooper:s,dragHandler:a,animation:l,eventHandler:c,scrollBounds:d,options:{loop:u}},h)=>{const f=e.settled(),p=!d.shouldConstrain(),m=u?f:f&&p,g=m&&!a.pointerDown();g&&l.stop();const v=n.get()*h+i.get()*(1-h);o.set(v),u&&(r.loop(e.direction()),s.loop()),t.to(o.get()),g&&c.emit("settle"),m||c.emit("scroll")})(se,e)),W=B[$.get()],G=rt(W),Z=rt(W),q=rt(W),J=rt(W),Q=function(e,t,n,o,i,r){let s=0,a=0,l=i,c=r,d=e.get(),u=0;function h(e){return l=e,p}function f(e){return c=e,p}const p={direction:function(){return a},duration:function(){return l},velocity:function(){return s},seek:function(){const t=o.get()-e.get();let i=0;return l?(n.set(e),s+=t/l,s*=c,d+=s,e.add(s),i=d-u):(s=0,n.set(o),e.set(o),i=t),a=ze(i),u=d,p},settled:function(){return Pe(o.get()-t.get())<.001},useBaseFriction:function(){return f(r)},useBaseDuration:function(){return h(i)},useFriction:f,useDuration:h};return p}(G,q,Z,J,h,.68),X=ot(u,B,z,H,J),ee=function(e,t,n,o,i,r,s){function a(i){const a=i.distance,l=i.index!==t.get();r.add(a),a&&(o.duration()?e.start():(e.update(),e.render(1),e.update())),l&&(n.set(t.get()),t.set(i.index),s.emit("select"))}return{distance:function(e,t){a(i.byDistance(e,t))},index:function(e,n){const o=t.clone().set(e);a(i.byIndex(o.get(),n))}}}(Y,$,U,Q,X,J,s),te=function(e){const{max:t,length:n}=e;return{get:function(e){return n?(e-t)/-n:0}}}(H),ne=Ge(),oe=ct(t,n,s,m),{slideRegistry:ie}=function(e,t,n,o,i,r){const{groupSlides:s}=i,{min:a,max:l}=o;return{slideRegistry:function(){const o=s(r),i=!e||"keepSnaps"===t;return 1===n.length?[r]:i?o:o.slice(a,l).map((e,t,n)=>{const o=!t,i=$e(n,t);return o?Ue(Be(n[0])+1):i?Ue(He(r)-Be(n)[0]+1,Be(n)[0]):e})}()}}(N,b,B,V,A,K),re=it(e,n,ie,ee,Q,ne,s,_),se={ownerDocument:o,ownerWindow:i,eventHandler:s,containerRect:S,slideRects:L,animation:Y,axis:E,dragHandler:Qe(E,e,o,i,J,Xe(E,i),G,Y,ee,Q,X,$,s,I,f,p,v,.68,j),eventStore:ne,percentOfView:I,index:$,indexPrevious:U,limit:H,location:G,offsetLocation:q,previousLocation:Z,options:r,resizeHandler:et(t,s,i,n,E,x,w),scrollBody:Q,scrollBounds:tt(H,q,J,Q,I),scrollLooper:nt(z,H,q,[G,q,Z,J]),scrollProgress:te,scrollSnapList:B.map(te.get),scrollSnaps:B,scrollTarget:X,scrollTo:ee,slideLooper:at(E,O,z,C,T,M,B,q,n),slideFocus:re,slidesHandler:lt(t,s,y),slidesInView:oe,slideIndexes:K,slideRegistry:ie,slidesToScroll:A,target:J,translate:st(E,t)};return se}function ht(e){function t(e,t){return Ye(e,t||{})}return{mergeOptions:t,optionsAtMedia:function(n){const o=n.breakpoints||{};return t(n,Ke(o).filter(t=>e.matchMedia(t).matches).map(e=>o[e]).reduce((e,n)=>t(e,n),{}))},optionsMediaQueries:function(t){return t.map(e=>Ke(e.breakpoints||{})).reduce((e,t)=>e.concat(t),[]).map(e.matchMedia)}}}function ft(e,t,n){const o=e.ownerDocument,i=o.defaultView,r=ht(i),s=function(e){let t=[];return{init:function(n,o){return t=o.filter(({options:t})=>!1!==e.optionsAtMedia(t).active),t.forEach(t=>t.init(n,e)),o.reduce((e,t)=>Object.assign(e,{[t.name]:t}),{})},destroy:function(){t=t.filter(e=>e.destroy())}}}(r),a=Ge(),l=function(){let e,t={};function n(e){return t[e]||[]}const o={init:function(t){e=t},emit:function(t){return n(t).forEach(n=>n(e,t)),o},off:function(e,i){return t[e]=n(e).filter(e=>e!==i),o},on:function(e,i){return t[e]=n(e).concat([i]),o},clear:function(){t={}}};return o}(),{mergeOptions:c,optionsAtMedia:d,optionsMediaQueries:u}=r,{on:h,off:f,emit:p}=l,m=E;let g,v,b,x,y=!1,j=c(xe,ft.globalOptions),_=c(j),w=[];function S(t){const n=ut(e,b,x,o,i,t,l);return t.loop&&!n.slideLooper.canLoop()?S(Object.assign({},t,{loop:!1})):n}function L(t,n){y||(j=c(j,t),_=d(j),w=n||w,function(){const{container:t,slides:n}=_;b=(Fe(t)?e.querySelector(t):t)||e.children[0];const o=Fe(n)?b.querySelectorAll(n):n;x=[].slice.call(o||b.children)}(),g=S(_),u([j,...w.map(({options:e})=>e)]).forEach(e=>a.add(e,"change",E)),_.active&&(g.translate.to(g.location.get()),g.animation.init(),g.slidesInView.init(),g.slideFocus.init(N),g.eventHandler.init(N),g.resizeHandler.init(N),g.slidesHandler.init(N),g.options.loop&&g.slideLooper.loop(),b.offsetParent&&x.length&&g.dragHandler.init(N),v=s.init(N,w)))}function E(e,t){const n=k();O(),L(c({startIndex:n},e),t),l.emit("reInit")}function O(){g.dragHandler.destroy(),g.eventStore.clear(),g.translate.clear(),g.slideLooper.clear(),g.resizeHandler.destroy(),g.slidesHandler.destroy(),g.slidesInView.destroy(),g.animation.destroy(),s.destroy(),a.clear()}function I(e,t,n){_.active&&!y&&(g.scrollBody.useBaseFriction().useDuration(!0===t?0:_.duration),g.scrollTo.index(e,n||0))}function k(){return g.index.get()}const N={canScrollNext:function(){return g.index.add(1).get()!==k()},canScrollPrev:function(){return g.index.add(-1).get()!==k()},containerNode:function(){return b},internalEngine:function(){return g},destroy:function(){y||(y=!0,a.clear(),O(),l.emit("destroy"),l.clear())},off:f,on:h,emit:p,plugins:function(){return v},previousScrollSnap:function(){return g.indexPrevious.get()},reInit:m,rootNode:function(){return e},scrollNext:function(e){I(g.index.add(1).get(),e,-1)},scrollPrev:function(e){I(g.index.add(-1).get(),e,1)},scrollProgress:function(){return g.scrollProgress.get(g.offsetLocation.get())},scrollSnapList:function(){return g.scrollSnapList},scrollTo:I,selectedScrollSnap:k,slideNodes:function(){return x},slidesInView:function(){return g.slidesInView.get()},slidesNotInView:function(){return g.slidesInView.get(!1)}};return L(t,n),setTimeout(()=>l.emit("init"),0),N}function pt(e={},t=[]){const n=(0,J.useRef)(e),o=(0,J.useRef)(t),[i,r]=(0,J.useState)(),[s,a]=(0,J.useState)(),l=(0,J.useCallback)(()=>{i&&i.reInit(n.current,o.current)},[i]);return(0,J.useEffect)(()=>{Ce(n.current,e)||(n.current=e,l())},[e,l]),(0,J.useEffect)(()=>{(function(e,t){if(e.length!==t.length)return!1;const n=Te(e),o=Te(t);return n.every((e,t)=>Ce(e,o[t]))})(o.current,t)||(o.current=t,l())},[t,l]),(0,J.useEffect)(()=>{if("undefined"!=typeof window&&window.document&&window.document.createElement&&s){ft.globalOptions=pt.globalOptions;const e=ft(s,n.current,o.current);return r(e),()=>e.destroy()}r(void 0)},[s,r]),[a,i]}return{setters:[function(e){c=e.a},function(e){d=e.l},function(e){u=e.a,h=e.d,f=e.f,p=e.g,m=e.m,g=e.n,v=e.o,b=e.p,x=e.r,y=e.s,j=e.t,_=e.u},function(e){w=e.t},function(e){S=e.t},function(e){L=e.t},function(e){E=e.t},function(e){O=e.r,I=e.t},function(e){k=e.C,N=e.D,C=e.J,T=e.O,D=e.T,F=e.i,A=e.j,M=e.k,P=e.n,z=e.w,R=e.x},function(e){V=e.r},function(e){B=e.t},function(e){H=e.t},function(e){$=e.t},function(e){},function(e){U=e.t},function(e){K=e.t},function(e){Y=e.t},function(e){W=e.t},function(e){G=e.t},function(e){Z=e.t}],execute:function(){(q=document.createElement("style")).textContent='.embla{--slide-height:16rem;--slide-spacing:1rem;--slide-size:100%;max-width:48rem;margin:auto}.embla__viewport{overflow:hidden}.embla__container{touch-action:pan-y pinch-zoom;margin-left:calc(var(--slide-spacing) * -1);display:flex}.embla__slide{flex:0 0 var(--slide-size);min-width:0;padding-left:var(--slide-spacing);transform:translate(0,0)}.embla__slide__number{box-shadow:inset 0 0 0 .2rem var(--detail-medium-contrast);height:var(--slide-height);user-select:none;border-radius:1.8rem;justify-content:center;align-items:center;font-size:4rem;font-weight:600;display:flex}.embla__dots{flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.embla__dot{-webkit-tap-highlight-color:rgba(var(--text-high-contrast-rgb-value), .5);-webkit-appearance:none;appearance:none;touch-action:manipulation;cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;width:.6rem;height:.6rem;margin:5px;padding:0;text-decoration:none;display:flex}.embla__dot:after{box-shadow:inset 0 0 0 .2rem var(--detail-medium-contrast);content:"";border-radius:50%;align-items:center;width:1.4rem;height:1.4rem;display:flex}.embla__dot--selected{background-color:#0ff}.embla__dot--selected:after{box-shadow:inset 0 0 0 .2rem var(--text-body)}\n/*$vite$:1*/',document.head.appendChild(q),J=c(d(),1),Q=new Map([["bold",J.createElement(J.Fragment,null,J.createElement("path",{d:"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z"}))],["duotone",J.createElement(J.Fragment,null,J.createElement("path",{d:"M232,56V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56Z",opacity:"0.2"}),J.createElement("path",{d:"M205.66,85.66l-96,96a8,8,0,0,1-11.32,0l-40-40a8,8,0,0,1,11.32-11.32L104,164.69l90.34-90.35a8,8,0,0,1,11.32,11.32Z"}))],["fill",J.createElement(J.Fragment,null,J.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM205.66,85.66l-96,96a8,8,0,0,1-11.32,0l-40-40a8,8,0,0,1,11.32-11.32L104,164.69l90.34-90.35a8,8,0,0,1,11.32,11.32Z"}))],["light",J.createElement(J.Fragment,null,J.createElement("path",{d:"M228.24,76.24l-128,128a6,6,0,0,1-8.48,0l-56-56a6,6,0,0,1,8.48-8.48L96,191.51,219.76,67.76a6,6,0,0,1,8.48,8.48Z"}))],["regular",J.createElement(J.Fragment,null,J.createElement("path",{d:"M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z"}))],["thin",J.createElement(J.Fragment,null,J.createElement("path",{d:"M226.83,74.83l-128,128a4,4,0,0,1-5.66,0l-56-56a4,4,0,0,1,5.66-5.66L96,194.34,221.17,69.17a4,4,0,1,1,5.66,5.66Z"}))]]),X=J.forwardRef((e,t)=>J.createElement(E,s(s({ref:t},e),{},{weights:Q}))),X.displayName="CheckIcon",ee=function(e){return e.SDK_VIEWED="neighborhood-schools-Viewed",e.ATTRIBUTION_CLICKED="LC-Attribution-Clicked",e.SCHOOL_URL_CLICKED="neighborhood-schools-URL-Clicked",e.FILTER_BY_TYPE="neighborhood-schools-Filter-By-Type",e.FILTER_BY_LEVEL="neighborhood-schools-Filter-By-Level",e}({}),te=function(e){return e.SDK_VIEWED="sdk_viewed",e.SCHOOL_URL_CLICKED="neighborhood_schools_url_clicked",e.FILTER_BY_TYPE="neighborhood_schools_filter_by_type",e.FILTER_BY_LEVEL="neighborhood_schools_filter_by_level",e}({}),ne=C(),oe=J.createContext({}),ie=()=>(0,J.useContext)(oe),re=({children:t})=>{var n,o,i,r,a,c,d,u;const{sdkState:h}=P(),f=(null===(n=h.globalOptions)||void 0===n?void 0:n.locale)||"en",p=y();F(()=>{p.postEvent({eventType:ee.SDK_VIEWED}),p.trackAnalyticsEvent({eventName:te.SDK_VIEWED})});const{isLoading:m,data:g}=B({geogID:null===(o=h.options)||void 0===o?void 0:o.geographyId,location:{lat:null===(i=h.options)||void 0===i?void 0:i.lat,lng:null===(r=h.options)||void 0===r?void 0:r.lng}}),{geographyId:v,geography:b}=(0,J.useMemo)(()=>{var e,t;const n=Object.entries(g||{});return{geographyId:null===(e=n[0])||void 0===e?void 0:e[0],geography:null===(t=n[0])||void 0===t?void 0:t[1]}},[m,g]),x=(0,J.useMemo)(()=>{var e,t,n;return null!==(e=h.options)&&void 0!==e&&e.geographyId?(null==b?void 0:b.centroid)||{lat:0,lng:0}:{lat:(null===(t=h.options)||void 0===t?void 0:t.lat)||0,lng:(null===(n=h.options)||void 0===n?void 0:n.lng)||0}},[null===(a=h.options)||void 0===a?void 0:a.geographyId,null===(c=h.options)||void 0===c?void 0:c.lat,null===(d=h.options)||void 0===d?void 0:d.lng,b]),{isLoading:j,data:_}=H({lat:x.lat,lng:x.lng}),[w,S]=(0,J.useState)(),[L,E]=(0,J.useState)(),{isLoading:O,filteredSchools:k,schoolTypes:N,schoolLevels:C,hasCategories:T}=function(t){let{country:n,filterLevel:o,filterType:i}=t,r=l(t,e);const{isLoading:a,data:c}=I(s(s({},r),{},{include:["schools"],radius:2e3,limit:30,buffer:250})),{schools:d,filteredSchools:u,schoolTypes:h,schoolLevels:f,hasCategories:p}=(0,J.useMemo)(()=>{const e={schools:void 0,filteredSchools:void 0,schoolTypes:[],schoolLevels:[],hasCategories:!1};if(!c||!c.primary_schools&&!c.high_schools)return e;const t=new Set,r=new Set,s=new Set,a=[...c.primary_schools||[],...c.high_schools||[]],l=[],d=[];for(const c of a){var u,h;if(t.has(c.name))continue;t.add(c.name),l.push(c),"USA"===n&&(e.hasCategories=e.hasCategories||!!c.is_advanced_placement||!!c.is_charter||!!c.is_magnet);for(const e of(null===(f=c.school_attributes)||void 0===f?void 0:f.types)||[]){var f;r.add(e)}for(const e of(null===(p=c.school_attributes)||void 0===p?void 0:p.levels)||[]){var p;s.add(e)}const a=void 0===o||(null===(u=c.school_attributes)||void 0===u||null===(u=u.levels)||void 0===u?void 0:u.includes(o)),m=void 0===i||(null===(h=c.school_attributes)||void 0===h||null===(h=h.types)||void 0===h?void 0:h.includes(i));a&&m&&d.push(c)}return{schools:l,filteredSchools:d,schoolTypes:[...r],schoolLevels:[...s],hasCategories:e.hasCategories}},[n,o,i,c]);return{isLoading:a,schools:d,filteredSchools:u,schoolTypes:h,schoolLevels:f,hasCategories:p}}({geogId:v,country:_.country,filterLevel:w,filterType:L}),D=(0,J.useMemo)(()=>O||j,[O,j]);(0,J.useEffect)(()=>{E(e=>void 0===e||N.includes(e)?e:void 0)},[N]),(0,J.useEffect)(()=>{S(e=>void 0===e||C.includes(e)?e:void 0)},[C]);const A=(0,J.useMemo)(()=>{var e;return{isLoading:D,filteredSchools:k,schoolTypes:N,schoolLevels:C,filterType:L,filterLevel:w,setFilterType:E,setFilterLevel:S,hasCategories:T,locale:f,location:_,showSchoolRatings:null===(e=h.options)||void 0===e?void 0:e.showSchoolRatings}},[D,k,N,C,L,w,f,T,_,null===(u=h.options)||void 0===u?void 0:u.showSchoolRatings]);return(0,ne.jsx)(oe.Provider,{value:A,children:t})},se=_({lat:h().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),lng:h().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),geographyId:f().optional(),title:m().optional(),hideAttribution:b().optional(),showSchoolRatings:b().optional()}).noUnknown(!0),ae=e=>{let{size:n="medium",children:o}=e,i=l(e,t);return(0,ne.jsx)(R,s(s({className:"\n overflow-hidden bg-base-white rounded-sm shadow-md\n z-10 min-w-32\n data-[size=medium]:text-sm\n data-[size=large]:text-base\n","data-size":n},i),{},{children:(0,ne.jsx)(A,{className:"font-inherit p-0",children:o})}))},le=e=>{let{variant:t="dark",children:o}=e,i=l(e,n);return(0,ne.jsxs)(k,s(s({className:'\n font-sans font-inherit py-1 pr-8 pl-6 outline-none\n relative rounded-sm cursor-default text-zinc-800\n\n data-[highlighted]:[&:not([data-variant="light"])]:bg-primary-100\n data-[highlighted]:[&:not([data-variant="light"])]:text-base-white\n\n // Special color between now and design system\n data-[highlighted]:[&:not([data-variant="dark"])]:bg-primary-10\n data-[highlighted]:[&:not([data-variant="dark"])]:text-zinc-950\n ',"data-variant":t},i),{},{children:[(0,ne.jsx)(D,{children:o}),(0,ne.jsx)(z,{className:"\n absolute left-0 bottom-0\n inline-flex justify-center items-center\n h-full w-6\n",children:(0,ne.jsx)(X,{className:"\n text-base-black\n h-3 w-3\n"})})]}))},ce=e=>{let{size:t="medium",children:n}=e,i=l(e,o);return(0,ne.jsxs)(M,s(s({className:"\n inline-flex items-center justify-between flex-1\n bg-base-white rounded-lg border\n py-1 pr-2 pl-3 min-w-32\n data-[size=medium]:text-sm data-[size=medium]:h-8\n data-[size=large]:text-base data-[size=large]:h-10\n","data-size":t},i),{},{children:[n,(0,ne.jsx)(T,{children:(0,ne.jsx)(S,{className:"\n text-base-black\n h-5 w-5\n"})})]}))},de="\n capitalize text-sm font-normal\n py-2 pl-2\n pr-6 sm:pr-36\n",ue=({options:e,activeFilter:t,allLabel:n,label:o,icon:i=w,handleFilterChange:r})=>{var s;const a=[{label:n,value:"ALL"},...e],l=null!=t?t:"ALL";return(0,ne.jsxs)("div",{children:[(0,ne.jsx)("label",{className:"\n ml-2 mb-1\n text-sm font-normal\n","data-testid":`filter-label-${o}`,htmlFor:`filter-select-${o}`,children:o}),e&&(0,ne.jsx)("div",{className:"\n shadow\n rounded-lg\n -outline-offset-2\n",children:(0,ne.jsxs)(N,{value:l,onValueChange:e=>r("ALL"===e?void 0:e),children:[(0,ne.jsxs)(ce,{size:"large",id:`filter-select-${o}`,children:[(0,ne.jsx)(i,{className:"\n w-4 h-4 text-stone-500\n"}),(0,ne.jsx)("p",{className:de,children:null===(s=a.find(e=>e.value===l))||void 0===s?void 0:s.label})]}),(0,ne.jsx)(ae,{children:a.map(e=>(0,ne.jsx)(le,{value:e.value,variant:"light",children:(0,ne.jsx)("p",{className:de,children:e.label})},e.value))})]})})]})},he='\n text-neutral-600\n text-sm font-bold\n data-[has-link="true"]:text-primary-100\n data-[has-link="true"]:pointer\n data-[has-link="true"]:hover:underline\n',fe=({school:e})=>{const{t:t}=p(["common"]),n=y(),{showSchoolRatings:o}=ie();return(0,ne.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[e.url?(0,ne.jsx)("a",{onClick:()=>{n.postEvent({eventType:ee.SCHOOL_URL_CLICKED,eventAttributes:[{label:"school_name_clicked",data:e.name},{label:"school_url_clicked",data:e.url}]}),n.trackAnalyticsEvent({eventName:te.SCHOOL_URL_CLICKED,eventAttributes:{school_name:e.name,school_url:e.url}})},className:he,href:e.url,target:"_blank",rel:"noreferrer","data-has-link":void 0!==e.url,"data-testid":"school-name-with-link",children:e.name}):(0,ne.jsx)("p",{"data-testid":"school-name",className:he,children:e.name}),o&&e.rating&&(0,ne.jsx)("div",{"data-testid":"school-rating",className:"cursor-pointer",title:t("common:map.marker.schoolAttributes.rating"),children:(0,ne.jsx)(V,{children:e.rating})})]})},pe=({school:e})=>{var t,n;return(0,ne.jsxs)("div",{className:"pb-4",children:[(0,ne.jsx)(fe,{school:e}),(null===(t=e.school_board_attributes)||void 0===t?void 0:t.name)&&(0,ne.jsx)("p",{"data-testid":"school-board",className:"text-xs font-normal text-neutral-600",children:null===(n=e.school_board_attributes)||void 0===n?void 0:n.name})]})},me="\n flex flex-wrap gap-2\n",ge=({schools:e,headers:t})=>{const{t:n}=p("neighborhoodSchools"),{hasCategories:o}=ie();return(0,ne.jsx)(ne.Fragment,{children:null==e?void 0:e.map(e=>{var i,r,s;return(0,ne.jsxs)("tr",{className:"\n odd:bg-white even:bg-neutral-50\n [&_td]:px-4 [&_td]:py-3\n",children:[(0,ne.jsx)("td",{children:(0,ne.jsx)(pe,{school:e})}),(0,ne.jsx)("td",{children:(0,ne.jsx)("div",{className:me,children:null===(i=e.school_attributes)||void 0===i||null===(i=i.types)||void 0===i?void 0:i.map(t=>(0,ne.jsx)(V,{children:t},`${e.name}-${t}`))})}),-1!==t.indexOf("languages")&&(0,ne.jsx)("td",{children:(0,ne.jsx)("div",{className:me,children:null===(r=e.school_attributes)||void 0===r||null===(r=r.languages)||void 0===r?void 0:r.map(t=>(0,ne.jsx)(V,{variant:"light",children:n("fr"===t?"french":"english")},`${e.name}-${t}`))})}),(0,ne.jsx)("td",{children:(0,ne.jsx)("div",{className:me,children:null===(s=e.school_attributes)||void 0===s||null===(s=s.levels)||void 0===s?void 0:s.map(t=>(0,ne.jsx)(V,{variant:"light",children:t},`${e.name}-${t}`))})}),o&&(0,ne.jsx)("td",{children:(0,ne.jsxs)("div",{className:me,children:[(0,ne.jsx)(V,{isVisible:!!e.is_advanced_placement,children:n("categories.advancedPlacement")}),(0,ne.jsx)(V,{isVisible:!!e.is_charter,children:n("categories.charter")}),(0,ne.jsx)(V,{isVisible:!!e.is_magnet,children:n("categories.magnet")})]})}),(0,ne.jsx)("td",{children:(0,ne.jsx)("p",{className:"\n text-sm font-normal\n text-neutral-600\n",children:O({street:e.address,city:e.city,state:e.province})})})]},`row-${e.name}`)})})},ve={CAN:["name","type","languages","levels","address"],USA:["name","type","levels","address"]},be=({schools:e})=>{const{t:t}=p("neighborhoodSchools"),{isLoading:n,hasCategories:o,location:i}=ie(),r=(0,J.useMemo)(()=>{if(n)return ve.USA;if("USA"===(null==i?void 0:i.country)&&o){const e=[...ve.USA];return e.includes("category")||e.splice(e.length-1,0,"category"),e}return ve[i.country]},[n,i,o]);return(0,ne.jsxs)("div",{className:"\n overflow-y-scroll\n h-full\n max-h-[70vh]\n border border-neutral-300 rounded-lg\n\n data-[is-loading=true]:h-36\n data-[is-loading=true]:bg-gray-200\n data-[is-loading=true]:animate-pulse\n ","data-is-loading":n,children:[!n&&(0,ne.jsxs)("table",{className:"\n w-full h-full\n table-auto\n -outline-offset-2\n",children:[(0,ne.jsx)("thead",{children:(0,ne.jsx)("tr",{children:r&&r.map(e=>(0,ne.jsx)("th",{className:"\n p-4\n text-left\n bg-neutral-50\n [&_h2]:text-md\n [&_h2]:font-medium\n",children:(0,ne.jsx)("h2",{children:t(`headers.${e}`)})},e))})}),(0,ne.jsxs)("tbody",{children:[e&&(null==e?void 0:e.length)>0&&(0,ne.jsx)(ge,{schools:e,headers:r}),0===(null==e?void 0:e.length)&&(0,ne.jsx)("div",{className:"m-5",children:(0,ne.jsx)(Z,{text:t("noFilteredData")})})]})]}),!n&&!e&&(0,ne.jsx)(Z,{text:t("noData")})]})},xe={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0},ft.globalOptions=void 0,pt.globalOptions=void 0,ye=e=>{const[t,n]=(0,J.useState)(0),[o,i]=(0,J.useState)([]),r=(0,J.useCallback)(t=>{e&&e.scrollTo(t)},[e]),s=(0,J.useCallback)(e=>{i(e.scrollSnapList())},[]),a=(0,J.useCallback)(e=>{n(e.selectedScrollSnap())},[]);return(0,J.useEffect)(()=>{e&&(s(e),a(e),e.on("reInit",s).on("reInit",a).on("select",a))},[e,s,a]),{selectedIndex:t,scrollSnaps:o,onDotButtonClick:r}},je=e=>{const{children:t}=e,n=l(e,i);return(0,ne.jsx)("button",s(s({type:"button"},n),{},{children:t}))},_e="\n flex flex-wrap\n mb-4 gap-2\n",we=({selectedIndex:e,scrollSnaps:t,onDotButtonClick:n})=>(0,ne.jsx)("div",{className:W("embla__dots py-2"),children:t.map((t,o)=>(0,ne.jsx)(je,{onClick:()=>n(o),className:W("embla__dot \n bg-zinc-300\n data-[selected=true]:bg-primary-100\n"),"data-selected":o===e},o))}),Se=({title:e,children:t})=>(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsx)("p",{className:"\n pt-4 pb-2\n font-medium\n text-sm\n border-t border-neutral-300\n",children:e}),t]}),Le=({school:e})=>{const{t:t}=p("neighborhoodSchools");return e.is_advanced_placement||e.is_charter||e.is_magnet?(0,ne.jsx)(Se,{title:t("headers.category"),children:(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsx)(V,{isVisible:!!e.is_advanced_placement,children:t("categories.advancedPlacement")}),(0,ne.jsx)(V,{isVisible:!!e.is_charter,children:t("categories.charter")}),(0,ne.jsx)(V,{isVisible:!!e.is_magnet,children:t("categories.magnet")})]})}):null},Ee=({school:e})=>{var t,n;const{t:o}=p("neighborhoodSchools");return(0,ne.jsxs)("div",{className:"\n px-6 pt-4 pb-6\n md:px-5 md:pt-6 md:pb-6\n",children:[(0,ne.jsx)(pe,{school:e}),(0,ne.jsx)(Se,{title:o("headers.type"),children:(0,ne.jsx)("div",{className:_e,children:null===(t=e.school_attributes)||void 0===t||null===(t=t.types)||void 0===t?void 0:t.map(t=>(0,ne.jsx)(V,{children:t},`${e.name}-${t}`))})}),(0,ne.jsx)(Se,{title:o("headers.levels"),children:(0,ne.jsx)("div",{className:_e,children:null===(n=e.school_attributes)||void 0===n||null===(n=n.levels)||void 0===n?void 0:n.map(t=>(0,ne.jsx)(V,{variant:"light",children:t},`${e.name}-${t}`))})}),(0,ne.jsx)(Le,{school:e}),(0,ne.jsx)(Se,{title:o("headers.address"),children:(0,ne.jsx)("p",{className:"\n font-normal text-sm\n text-neutral-600 \n mb-4\n",children:O({street:e.address,city:e.city,state:e.province})})})]})},Oe=({schools:e})=>{const{t:t}=p("neighborhoodSchools"),{isLoading:n}=ie(),[o,i]=pt(),{selectedIndex:r,scrollSnaps:s,onDotButtonClick:a}=ye(i);return(0,ne.jsx)(ne.Fragment,{children:(0,ne.jsxs)("section",{className:W("embla \n group/schools-list\n\n data-[is-loading=true]:h-36\n data-[is-loading=true]:bg-gray-200\n data-[is-loading=true]:animate-pulse\n\n"),"data-is-loading":n,children:[!n&&(e&&0!==e.length?(0,ne.jsx)("div",{className:"embla__viewport",ref:o,children:(0,ne.jsx)("div",{className:W("embla__container \n [&>div:nth-child(odd)]:bg-neutral-50\n"),children:e.map(e=>(0,ne.jsx)("div",{className:"embla__slide",children:(0,ne.jsx)(Ee,{school:e})},e.name))})}):(0,ne.jsx)(Z,{text:t("noData")})),(0,ne.jsx)(we,{selectedIndex:r,scrollSnaps:s,onDotButtonClick:a})]})})},Ie=({hideAttribution:e})=>{const{t:t}=p("neighborhoodSchools"),n=y(),{locale:o}=ie();return(0,ne.jsxs)("div",{className:"\n mt-4\n md:flex items-center\n bg-base-white\n [&>a]:justify-end\n",children:[(0,ne.jsx)("p",{className:"flex-1 text-xs",children:t("dataDisclaimer")}),(0,ne.jsx)($,{onClick:()=>{n.postEvent({eventType:ee.ATTRIBUTION_CLICKED})},sdkName:"neighborhood-schools",locale:o,isHidden:e})]})},ke=()=>{var e,t,n;const{t:o}=p("neighborhoodSchools"),i=y(),{sdkState:r}=P(),{filteredSchools:s,schoolLevels:a,schoolTypes:l,filterLevel:c,filterType:d,setFilterLevel:u,setFilterType:h}=ie(),f=Y(),m=l.map(e=>({value:e,label:e})),g=a.map(e=>({value:e,label:e}));return(0,J.useEffect)(()=>{void 0!==d&&(i.postEvent({eventType:ee.FILTER_BY_TYPE,eventAttributes:[{label:"filter_by_type",data:d}]}),i.trackAnalyticsEvent({eventName:te.FILTER_BY_TYPE,eventAttributes:{filter_by_type:d}})),void 0!==c&&(i.postEvent({eventType:ee.FILTER_BY_LEVEL,eventAttributes:[{label:"filter_by_level",data:c}]}),i.trackAnalyticsEvent({eventName:te.FILTER_BY_LEVEL,eventAttributes:{filter_by_level:c}}))},[c,d]),(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsx)(G,{title:"string"==typeof(null===(e=r.options)||void 0===e?void 0:e.title)||!1===(null===(t=r.options)||void 0===t?void 0:t.title)?r.options.title:o("title")}),(0,ne.jsxs)("div",{className:"\n flex flex-wrap\n justify-around sm:justify-normal\n gap-2 md:gap-6\n mb-5 md:mb-6\n mt-3 md:mt-4\n",children:[(0,ne.jsx)(ue,{options:m,icon:w,label:o("headers.type"),allLabel:o("headers.typesFilter"),activeFilter:d,handleFilterChange:e=>h(e)}),(0,ne.jsx)(ue,{options:g,icon:L,label:o("headers.levels"),allLabel:o("headers.levelsFilter"),activeFilter:c,handleFilterChange:e=>u(e)})]}),f?(0,ne.jsx)(Oe,{schools:s}):(0,ne.jsx)(be,{schools:s}),(0,ne.jsx)(Ie,{hideAttribution:null===(n=r.options)||void 0===n?void 0:n.hideAttribution})]})},v(g.neighborhoodWrap.key),r("default",()=>{var e,t,n,o,i,r,s;const{sdkState:a}=P(),l=Y(),c=(null===(e=a.globalOptions)||void 0===e?void 0:e.locale)||"en",d=(0,J.useMemo)(()=>{var e,t,n,o;return null!==(e=a.options)&&void 0!==e&&e.geographyId?{geographyId:null===(t=a.options)||void 0===t?void 0:t.geographyId}:{lat:null===(n=a.options)||void 0===n?void 0:n.lat,lng:null===(o=a.options)||void 0===o?void 0:o.lng}},[null===(t=a.options)||void 0===t?void 0:t.lat,null===(n=a.options)||void 0===n?void 0:n.lng,null===(o=a.options)||void 0===o?void 0:o.geographyId]);return(0,ne.jsx)(U,{children:(0,ne.jsx)(K,{sdk:"Neighborhood Schools",schema:se,options:a.options,children:(0,ne.jsx)(x,{environment:null===(i=a.globalOptions)||void 0===i||null===(i=i.environment)||void 0===i?void 0:i.api,apiKey:a.apiKey,appearance:null===(r=a.globalOptions)||void 0===r?void 0:r.appearance,locale:null===(s=a.globalOptions)||void 0===s?void 0:s.locale,product:j.NEIGHBORHOOD_SCHOOLS,children:(0,ne.jsx)(u,{trackingPipelineSettings:{apiKey:a.apiKey||""},analyticsSettings:g.neighborhoodWrap,meta:{clientId:a.clientId,productName:j.NEIGHBORHOOD_SCHOOLS,productVersion:"1.24.46"},attributes:{location:d,host:a.location,host_url:document.referrer,locale:c,isMobile:l},flags:{isDebugMode:!1},children:(0,ne.jsx)(re,{children:(0,ne.jsx)(ke,{})})})})})})})}}})}();
|
|
2
|
-
//# sourceMappingURL=NeighborhoodSchools-legacy-
|
|
1
|
+
!function(){const e=["country","filterLevel","filterType"],t=["size","children"],n=["variant","children"],o=["size","children"],i=["children"];function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach(function(t){a(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function a(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){if(null==e)return{};var n,o,i=function(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(-1!==t.indexOf(o))continue;n[o]=e[o]}return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o<r.length;o++)n=r[o],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}System.register(["./rolldown-runtime-legacy-Djb2rrqm.js","./google-maps-vendor-legacy-CPuMOKGq.js","./sdks-legacy-CGD_BVHv.js","./Backpack.es-legacy-DEMK6Tuk.js","./CaretDown.es-legacy-AW_6LRgL.js","./GraduationCap.es-legacy-DDaS8ZM6.js","./IconBase.es-legacy-VUFA7Zpu.js","./useSchools-legacy-CI4xGBO9.js","./index-legacy-k3Sg9cNx.js","./index.es-legacy-DA8oW7UU.js","./useGeographies-legacy-B2A71Fvq.js","./useLocation-legacy-TDQwoBsN.js","./Attribution-legacy-DboLkPv_.js","./globals-legacy-DFpaXsPl.js","./ResizeWrapper-legacy-DkCsuOZO.js","./ValidateOptions-legacy-C72LlxRr.js","./useIsMobile-legacy-BCZnP0fd.js","./bundle-mjs-legacy-Oe_TmErs.js","./TitleHeader-legacy-DtRJmLOD.js","./NoDataContent-legacy-BBaI2iBm.js"],function(r,a){var c,d,u,f,h,p,m,g,v,b,x,y,j,_,w,S,L,E,O,I,k,N,C,T,D,A,F,M,P,z,R,V,B,H,$,U,K,Y,W,G,Z,q,J,Q,X,ee,te,ne,oe,ie,re,se,ae,le,ce,de,ue,fe,he,pe,me,ge,ve,be,xe,ye,je,_e,we,Se,Le,Ee,Oe,Ie,ke;function Ne(e){return function(e){return"[object Object]"===Object.prototype.toString.call(e)}(e)||Array.isArray(e)}function Ce(e,t){const n=Object.keys(e),o=Object.keys(t);return n.length===o.length&&(JSON.stringify(Object.keys(e.breakpoints||{}))===JSON.stringify(Object.keys(t.breakpoints||{}))&&n.every(n=>{const o=e[n],i=t[n];return"function"==typeof o?`${o}`==`${i}`:Ne(o)&&Ne(i)?Ce(o,i):o===i}))}function Te(e){return e.concat().sort((e,t)=>e.name>t.name?1:-1).map(e=>e.options)}function De(e){return"number"==typeof e}function Ae(e){return"string"==typeof e}function Fe(e){return"boolean"==typeof e}function Me(e){return"[object Object]"===Object.prototype.toString.call(e)}function Pe(e){return Math.abs(e)}function ze(e){return Math.sign(e)}function Re(e,t){return Pe(e-t)}function Ve(e){return Ke(e).map(Number)}function Be(e){return e[He(e)]}function He(e){return Math.max(0,e.length-1)}function $e(e,t){return t===He(e)}function Ue(e,t=0){return Array.from(Array(e),(e,n)=>t+n)}function Ke(e){return Object.keys(e)}function Ye(e,t){return[e,t].reduce((e,t)=>(Ke(t).forEach(n=>{const o=e[n],i=t[n];e[n]=Me(o)&&Me(i)?Ye(o,i):i}),e),{})}function We(e,t){return void 0!==t.MouseEvent&&e instanceof t.MouseEvent}function Ge(){let e=[];const t={add:function(n,o,i,r={passive:!0}){let s;if("addEventListener"in n)n.addEventListener(o,i,r),s=()=>n.removeEventListener(o,i,r);else{const e=n;e.addListener(i),s=()=>e.removeListener(i)}return e.push(s),t},clear:function(){e=e.filter(e=>e())}};return t}function Ze(e,t,n,o){const i=Ge(),r=1e3/60;let s=null,a=0,l=0;function c(e){if(!l)return;s||(s=e,n(),n());const i=e-s;for(s=e,a+=i;a>=r;)n(),a-=r;o(a/r),l&&(l=t.requestAnimationFrame(c))}function d(){t.cancelAnimationFrame(l),s=null,a=0,l=0}return{init:function(){i.add(e,"visibilitychange",()=>{e.hidden&&(s=null,a=0)})},destroy:function(){d(),i.clear()},start:function(){l||(l=t.requestAnimationFrame(c))},stop:d,update:n,render:o}}function qe(e=0,t=0){const n=Pe(e-t);function o(t){return t<e}function i(e){return e>t}function r(e){return o(e)||i(e)}return{length:n,max:t,min:e,constrain:function(n){return r(n)?o(n)?e:t:n},reachedAny:r,reachedMax:i,reachedMin:o,removeOffset:function(e){return n?e-n*Math.ceil((e-t)/n):e}}}function Je(e,t,n){const{constrain:o}=qe(0,e),i=e+1;let r=s(t);function s(e){return n?Pe((i+e)%i):o(e)}function a(){return r}function l(){return Je(e,a(),n)}const c={get:a,set:function(e){return r=s(e),c},add:function(e){return l().set(a()+e)},clone:l};return c}function Qe(e,t,n,o,i,r,s,a,l,c,d,u,f,h,p,m,g,v,b){const{cross:x,direction:y}=e,j=["INPUT","SELECT","TEXTAREA"],_={passive:!1},w=Ge(),S=Ge(),L=qe(50,225).constrain(h.measure(20)),E={mouse:300,touch:400},O={mouse:500,touch:600},I=p?43:25;let k=!1,N=0,C=0,T=!1,D=!1,A=!1,F=!1;function M(e){if(!We(e,o)&&e.touches.length>=2)return P(e);const t=r.readPoint(e),n=r.readPoint(e,x),s=Re(t,N),l=Re(n,C);if(!D&&!F){if(!e.cancelable)return P(e);if(D=s>l,!D)return P(e)}const d=r.pointerMove(e);s>m&&(A=!0),c.useFriction(.3).useDuration(.75),a.start(),i.add(y(d)),e.preventDefault()}function P(e){const t=d.byDistance(0,!1).index!==u.get(),n=r.pointerUp(e)*(p?O:E)[F?"mouse":"touch"],o=function(e,t){const n=u.add(-1*ze(e)),o=d.byDistance(e,!p).distance;return p||Pe(e)<L?o:g&&t?.5*o:d.byIndex(n.get(),0).distance}(y(n),t),i=(a=o,0===(s=n)||0===a||Pe(s)<=Pe(a)?0:Pe(Re(Pe(s),Pe(a))/s));var s,a;const h=I-10*i,m=v+i/50;D=!1,T=!1,S.clear(),c.useDuration(h).useFriction(m),l.distance(o,!p),F=!1,f.emit("pointerUp")}function z(e){A&&(e.stopPropagation(),e.preventDefault(),A=!1)}return{init:function(e){if(!b)return;function a(a){(Fe(b)||b(e,a))&&function(e){const a=We(e,o);if(F=a,A=p&&a&&!e.buttons&&k,k=Re(i.get(),s.get())>=2,a&&0!==e.button)return;if(function(e){const t=e.nodeName||"";return j.includes(t)}(e.target))return;T=!0,r.pointerDown(e),c.useFriction(0).useDuration(0),i.set(s),function(){const e=F?n:t;S.add(e,"touchmove",M,_).add(e,"touchend",P).add(e,"mousemove",M,_).add(e,"mouseup",P)}(),N=r.readPoint(e),C=r.readPoint(e,x),f.emit("pointerDown")}(a)}const l=t;w.add(l,"dragstart",e=>e.preventDefault(),_).add(l,"touchmove",()=>{},_).add(l,"touchend",()=>{}).add(l,"touchstart",a).add(l,"mousedown",a).add(l,"touchcancel",P).add(l,"contextmenu",P).add(l,"click",z,!0)},destroy:function(){w.clear(),S.clear()},pointerDown:function(){return T}}}function Xe(e,t){let n,o;function i(e){return e.timeStamp}function r(n,o){const i="client"+("x"===(o||e.scroll)?"X":"Y");return(We(n,t)?n:n.touches[0])[i]}return{pointerDown:function(e){return n=e,o=e,r(e)},pointerMove:function(e){const t=r(e)-r(o),s=i(e)-i(n)>170;return o=e,s&&(n=e),t},pointerUp:function(e){if(!n||!o)return 0;const t=r(o)-r(n),s=i(e)-i(n),a=i(e)-i(o)>170,l=t/s;return s&&!a&&Pe(l)>.1?l:0},readPoint:r}}function et(e,t,n,o,i,r,s){const a=[e].concat(o);let l,c,d=[],u=!1;function f(e){return i.measureSize(s.measure(e))}return{init:function(i){r&&(c=f(e),d=o.map(f),l=new ResizeObserver(n=>{(Fe(r)||r(i,n))&&function(n){for(const r of n){if(u)return;const n=r.target===e,s=o.indexOf(r.target),a=n?c:d[s];if(Pe(f(n?e:o[s])-a)>=.5){i.reInit(),t.emit("resize");break}}}(n)}),n.requestAnimationFrame(()=>{a.forEach(e=>l.observe(e))}))},destroy:function(){u=!0,l&&l.disconnect()}}}function tt(e,t,n,o,i){const r=i.measure(10),s=i.measure(50),a=qe(.1,.99);let l=!1;function c(){return!l&&(!!e.reachedAny(n.get())&&!!e.reachedAny(t.get()))}return{shouldConstrain:c,constrain:function(i){if(!c())return;const l=Pe(e[e.reachedMin(t.get())?"min":"max"]-t.get()),d=n.get()-t.get(),u=a.constrain(l/s);n.subtract(d*u),!i&&Pe(d)<r&&(n.set(e.constrain(n.get())),o.useDuration(25).useBaseFriction())},toggleActive:function(e){l=!e}}}function nt(e,t,n,o){const{reachedMin:i,reachedMax:r}=qe(t.min+.1,t.max+.1);return{loop:function(t){if(!function(e){return 1===e?r(n.get()):-1===e&&i(n.get())}(t))return;const s=e*(-1*t);o.forEach(e=>e.add(s))}}}function ot(e,t,n,o,i){const{reachedAny:r,removeOffset:s,constrain:a}=o;function l(e){return e.concat().sort((e,t)=>Pe(e)-Pe(t))[0]}function c(t,o){const i=[t,t+n,t-n];if(!e)return t;if(!o)return l(i);const r=i.filter(e=>ze(e)===o);return r.length?l(r):Be(i)-n}return{byDistance:function(n,o){const l=i.get()+n,{index:d,distance:u}=function(n){const o=e?s(n):a(n),{index:i}=t.map((e,t)=>({diff:c(e-o,0),index:t})).sort((e,t)=>Pe(e.diff)-Pe(t.diff))[0];return{index:i,distance:o}}(l),f=!e&&r(l);return!o||f?{index:d,distance:n}:{index:d,distance:n+c(t[d]-u,0)}},byIndex:function(e,n){return{index:e,distance:c(t[e]-i.get(),n)}},shortcut:c}}function it(e,t,n,o,i,r,s,a){const l={passive:!0,capture:!0};let c=0;function d(e){"Tab"===e.code&&(c=(new Date).getTime())}return{init:function(u){a&&(r.add(document,"keydown",d,!1),t.forEach((t,d)=>{r.add(t,"focus",t=>{(Fe(a)||a(u,t))&&function(t){if((new Date).getTime()-c>10)return;s.emit("slideFocusStart"),e.scrollLeft=0;const r=n.findIndex(e=>e.includes(t));De(r)&&(i.useDuration(0),o.index(r,0),s.emit("slideFocus"))}(d)},l)}))}}}function rt(e){let t=e;function n(e){return De(e)?e:e.get()}return{get:function(){return t},set:function(e){t=n(e)},add:function(e){t+=n(e)},subtract:function(e){t-=n(e)}}}function st(e,t){const n="x"===e.scroll?function(e){return`translate3d(${e}px,0px,0px)`}:function(e){return`translate3d(0px,${e}px,0px)`},o=t.style;let i=null,r=!1;return{clear:function(){r||(o.transform="",t.getAttribute("style")||t.removeAttribute("style"))},to:function(t){if(r)return;const s=(a=e.direction(t),Math.round(100*a)/100);var a;s!==i&&(o.transform=n(s),i=s)},toggleActive:function(e){r=!e}}}function at(e,t,n,o,i,r,s,a,l){const c=Ve(i),d=Ve(i).reverse(),u=function(){const e=s[0];return p(h(d,e),n,!1)}().concat(p(h(c,t-s[0]-1),-n,!0));function f(e,t){return e.reduce((e,t)=>e-i[t],t)}function h(e,t){return e.reduce((e,n)=>f(e,t)>0?e.concat([n]):e,[])}function p(i,s,c){const d=function(e){return r.map((n,i)=>({start:n-o[i]+.5+e,end:n+t-.5+e}))}(s);return i.map(t=>{const o=c?0:-n,i=c?n:0,r=c?"end":"start",s=d[t][r];return{index:t,loopPoint:s,slideLocation:rt(-1),translate:st(e,l[t]),target:()=>a.get()>s?o:i}})}return{canLoop:function(){return u.every(({index:e})=>f(c.filter(t=>t!==e),t)<=.1)},clear:function(){u.forEach(e=>e.translate.clear())},loop:function(){u.forEach(e=>{const{target:t,translate:n,slideLocation:o}=e,i=t();i!==o.get()&&(n.to(i),o.set(i))})},loopPoints:u}}function lt(e,t,n){let o,i=!1;return{init:function(r){n&&(o=new MutationObserver(e=>{i||(Fe(n)||n(r,e))&&function(e){for(const n of e)if("childList"===n.type){r.reInit(),t.emit("slidesChanged");break}}(e)}),o.observe(e,{childList:!0}))},destroy:function(){o&&o.disconnect(),i=!0}}}function ct(e,t,n,o){const i={};let r,s=null,a=null,l=!1;return{init:function(){r=new IntersectionObserver(e=>{l||(e.forEach(e=>{const n=t.indexOf(e.target);i[n]=e}),s=null,a=null,n.emit("slidesInView"))},{root:e.parentElement,threshold:o}),t.forEach(e=>r.observe(e))},destroy:function(){r&&r.disconnect(),l=!0},get:function(e=!0){if(e&&s)return s;if(!e&&a)return a;const t=function(e){return Ke(i).reduce((t,n)=>{const o=parseInt(n),{isIntersecting:r}=i[o];return(e&&r||!e&&!r)&&t.push(o),t},[])}(e);return e&&(s=t),e||(a=t),t}}}function dt(e,t,n,o,i,r,s,a,l){const{startEdge:c,endEdge:d,direction:u}=e,f=De(n);return{groupSlides:function(e){return f?function(e,t){return Ve(e).filter(e=>e%t===0).map(n=>e.slice(n,n+t))}(e,n):function(e){return e.length?Ve(e).reduce((n,f,h)=>{const p=Be(n)||0,m=0===p,g=f===He(e),v=i[c]-r[p][c],b=i[c]-r[f][d],x=!o&&m?u(s):0,y=Pe(b-(!o&&g?u(a):0)-(v+x));return h&&y>t+l&&n.push(f),g&&n.push(e.length),n},[]).map((t,n,o)=>{const i=Math.max(o[n-1]||0);return e.slice(i,t)}):[]}(e)}}}function ut(e,t,n,o,i,r,s){const{align:a,axis:l,direction:c,startIndex:d,loop:u,duration:f,dragFree:h,dragThreshold:p,inViewThreshold:m,slidesToScroll:g,skipSnaps:v,containScroll:b,watchResize:x,watchSlides:y,watchDrag:j,watchFocus:_}=r,w={measure:function(e){const{offsetTop:t,offsetLeft:n,offsetWidth:o,offsetHeight:i}=e;return{top:t,right:n+o,bottom:t+i,left:n,width:o,height:i}}},S=w.measure(t),L=n.map(w.measure),E=function(e,t){const n="rtl"===t,o="y"===e,i=!o&&n?-1:1;return{scroll:o?"y":"x",cross:o?"x":"y",startEdge:o?"top":n?"right":"left",endEdge:o?"bottom":n?"left":"right",measureSize:function(e){const{height:t,width:n}=e;return o?t:n},direction:function(e){return e*i}}}(l,c),O=E.measureSize(S),I=function(e){return{measure:function(t){return e*(t/100)}}}(O),k=function(e,t){const n={start:function(){return 0},center:function(e){return o(e)/2},end:o};function o(e){return t-e}return{measure:function(o,i){return Ae(e)?n[e](o):e(t,o,i)}}}(a,O),N=!u&&!!b,{slideSizes:C,slideSizesWithGaps:T,startGap:D,endGap:A}=function(e,t,n,o,i,r){const{measureSize:s,startEdge:a,endEdge:l}=e,c=n[0]&&i,d=function(){if(!c)return 0;const e=n[0];return Pe(t[a]-e[a])}(),u=function(){if(!c)return 0;const e=r.getComputedStyle(Be(o));return parseFloat(e.getPropertyValue(`margin-${l}`))}(),f=n.map(s),h=n.map((e,t,n)=>{const o=!t,i=$e(n,t);return o?f[t]+d:i?f[t]+u:n[t+1][a]-e[a]}).map(Pe);return{slideSizes:f,slideSizesWithGaps:h,startGap:d,endGap:u}}(E,S,L,n,u||!!b,i),F=dt(E,O,g,u,S,L,D,A,2),{snaps:M,snapsAligned:P}=function(e,t,n,o,i){const{startEdge:r,endEdge:s}=e,{groupSlides:a}=i,l=a(o).map(e=>Be(e)[s]-e[0][r]).map(Pe).map(t.measure),c=o.map(e=>n[r]-e[r]).map(e=>-Pe(e)),d=a(c).map(e=>e[0]).map((e,t)=>e+l[t]);return{snaps:c,snapsAligned:d}}(E,k,S,L,F),z=-Be(M)+Be(T),{snapsContained:R,scrollContainLimit:V}=function(e,t,n,o,i){const r=qe(-t+e,0),s=n.map((e,t)=>{const{min:o,max:i}=r,s=r.constrain(e),a=!t,c=$e(n,t);return a?i:c||l(o,s)?o:l(i,s)?i:s}).map(e=>parseFloat(e.toFixed(3))),a=function(){const e=s[0],t=Be(s);return qe(s.lastIndexOf(e),s.indexOf(t)+1)}();function l(e,t){return Re(e,t)<=1}return{snapsContained:function(){if(t<=e+i)return[r.max];if("keepSnaps"===o)return s;const{min:n,max:l}=a;return s.slice(n,l)}(),scrollContainLimit:a}}(O,z,P,b,2),B=N?R:P,{limit:H}=function(e,t,n){const o=t[0];return{limit:qe(n?o-e:Be(t),o)}}(z,B,u),$=Je(He(B),d,u),U=$.clone(),K=Ve(n),Y=Ze(o,i,()=>(({dragHandler:e,scrollBody:t,scrollBounds:n,options:{loop:o}})=>{o||n.constrain(e.pointerDown()),t.seek()})(se),e=>(({scrollBody:e,translate:t,location:n,offsetLocation:o,previousLocation:i,scrollLooper:r,slideLooper:s,dragHandler:a,animation:l,eventHandler:c,scrollBounds:d,options:{loop:u}},f)=>{const h=e.settled(),p=!d.shouldConstrain(),m=u?h:h&&p,g=m&&!a.pointerDown();g&&l.stop();const v=n.get()*f+i.get()*(1-f);o.set(v),u&&(r.loop(e.direction()),s.loop()),t.to(o.get()),g&&c.emit("settle"),m||c.emit("scroll")})(se,e)),W=B[$.get()],G=rt(W),Z=rt(W),q=rt(W),J=rt(W),Q=function(e,t,n,o,i,r){let s=0,a=0,l=i,c=r,d=e.get(),u=0;function f(e){return l=e,p}function h(e){return c=e,p}const p={direction:function(){return a},duration:function(){return l},velocity:function(){return s},seek:function(){const t=o.get()-e.get();let i=0;return l?(n.set(e),s+=t/l,s*=c,d+=s,e.add(s),i=d-u):(s=0,n.set(o),e.set(o),i=t),a=ze(i),u=d,p},settled:function(){return Pe(o.get()-t.get())<.001},useBaseFriction:function(){return h(r)},useBaseDuration:function(){return f(i)},useFriction:h,useDuration:f};return p}(G,q,Z,J,f,.68),X=ot(u,B,z,H,J),ee=function(e,t,n,o,i,r,s){function a(i){const a=i.distance,l=i.index!==t.get();r.add(a),a&&(o.duration()?e.start():(e.update(),e.render(1),e.update())),l&&(n.set(t.get()),t.set(i.index),s.emit("select"))}return{distance:function(e,t){a(i.byDistance(e,t))},index:function(e,n){const o=t.clone().set(e);a(i.byIndex(o.get(),n))}}}(Y,$,U,Q,X,J,s),te=function(e){const{max:t,length:n}=e;return{get:function(e){return n?(e-t)/-n:0}}}(H),ne=Ge(),oe=ct(t,n,s,m),{slideRegistry:ie}=function(e,t,n,o,i,r){const{groupSlides:s}=i,{min:a,max:l}=o;return{slideRegistry:function(){const o=s(r),i=!e||"keepSnaps"===t;return 1===n.length?[r]:i?o:o.slice(a,l).map((e,t,n)=>{const o=!t,i=$e(n,t);return o?Ue(Be(n[0])+1):i?Ue(He(r)-Be(n)[0]+1,Be(n)[0]):e})}()}}(N,b,B,V,F,K),re=it(e,n,ie,ee,Q,ne,s,_),se={ownerDocument:o,ownerWindow:i,eventHandler:s,containerRect:S,slideRects:L,animation:Y,axis:E,dragHandler:Qe(E,e,o,i,J,Xe(E,i),G,Y,ee,Q,X,$,s,I,h,p,v,.68,j),eventStore:ne,percentOfView:I,index:$,indexPrevious:U,limit:H,location:G,offsetLocation:q,previousLocation:Z,options:r,resizeHandler:et(t,s,i,n,E,x,w),scrollBody:Q,scrollBounds:tt(H,q,J,Q,I),scrollLooper:nt(z,H,q,[G,q,Z,J]),scrollProgress:te,scrollSnapList:B.map(te.get),scrollSnaps:B,scrollTarget:X,scrollTo:ee,slideLooper:at(E,O,z,C,T,M,B,q,n),slideFocus:re,slidesHandler:lt(t,s,y),slidesInView:oe,slideIndexes:K,slideRegistry:ie,slidesToScroll:F,target:J,translate:st(E,t)};return se}function ft(e){function t(e,t){return Ye(e,t||{})}return{mergeOptions:t,optionsAtMedia:function(n){const o=n.breakpoints||{};return t(n,Ke(o).filter(t=>e.matchMedia(t).matches).map(e=>o[e]).reduce((e,n)=>t(e,n),{}))},optionsMediaQueries:function(t){return t.map(e=>Ke(e.breakpoints||{})).reduce((e,t)=>e.concat(t),[]).map(e.matchMedia)}}}function ht(e,t,n){const o=e.ownerDocument,i=o.defaultView,r=ft(i),s=function(e){let t=[];return{init:function(n,o){return t=o.filter(({options:t})=>!1!==e.optionsAtMedia(t).active),t.forEach(t=>t.init(n,e)),o.reduce((e,t)=>Object.assign(e,{[t.name]:t}),{})},destroy:function(){t=t.filter(e=>e.destroy())}}}(r),a=Ge(),l=function(){let e,t={};function n(e){return t[e]||[]}const o={init:function(t){e=t},emit:function(t){return n(t).forEach(n=>n(e,t)),o},off:function(e,i){return t[e]=n(e).filter(e=>e!==i),o},on:function(e,i){return t[e]=n(e).concat([i]),o},clear:function(){t={}}};return o}(),{mergeOptions:c,optionsAtMedia:d,optionsMediaQueries:u}=r,{on:f,off:h,emit:p}=l,m=E;let g,v,b,x,y=!1,j=c(xe,ht.globalOptions),_=c(j),w=[];function S(t){const n=ut(e,b,x,o,i,t,l);return t.loop&&!n.slideLooper.canLoop()?S(Object.assign({},t,{loop:!1})):n}function L(t,n){y||(j=c(j,t),_=d(j),w=n||w,function(){const{container:t,slides:n}=_;b=(Ae(t)?e.querySelector(t):t)||e.children[0];const o=Ae(n)?b.querySelectorAll(n):n;x=[].slice.call(o||b.children)}(),g=S(_),u([j,...w.map(({options:e})=>e)]).forEach(e=>a.add(e,"change",E)),_.active&&(g.translate.to(g.location.get()),g.animation.init(),g.slidesInView.init(),g.slideFocus.init(N),g.eventHandler.init(N),g.resizeHandler.init(N),g.slidesHandler.init(N),g.options.loop&&g.slideLooper.loop(),b.offsetParent&&x.length&&g.dragHandler.init(N),v=s.init(N,w)))}function E(e,t){const n=k();O(),L(c({startIndex:n},e),t),l.emit("reInit")}function O(){g.dragHandler.destroy(),g.eventStore.clear(),g.translate.clear(),g.slideLooper.clear(),g.resizeHandler.destroy(),g.slidesHandler.destroy(),g.slidesInView.destroy(),g.animation.destroy(),s.destroy(),a.clear()}function I(e,t,n){_.active&&!y&&(g.scrollBody.useBaseFriction().useDuration(!0===t?0:_.duration),g.scrollTo.index(e,n||0))}function k(){return g.index.get()}const N={canScrollNext:function(){return g.index.add(1).get()!==k()},canScrollPrev:function(){return g.index.add(-1).get()!==k()},containerNode:function(){return b},internalEngine:function(){return g},destroy:function(){y||(y=!0,a.clear(),O(),l.emit("destroy"),l.clear())},off:h,on:f,emit:p,plugins:function(){return v},previousScrollSnap:function(){return g.indexPrevious.get()},reInit:m,rootNode:function(){return e},scrollNext:function(e){I(g.index.add(1).get(),e,-1)},scrollPrev:function(e){I(g.index.add(-1).get(),e,1)},scrollProgress:function(){return g.scrollProgress.get(g.offsetLocation.get())},scrollSnapList:function(){return g.scrollSnapList},scrollTo:I,selectedScrollSnap:k,slideNodes:function(){return x},slidesInView:function(){return g.slidesInView.get()},slidesNotInView:function(){return g.slidesInView.get(!1)}};return L(t,n),setTimeout(()=>l.emit("init"),0),N}function pt(e={},t=[]){const n=(0,J.useRef)(e),o=(0,J.useRef)(t),[i,r]=(0,J.useState)(),[s,a]=(0,J.useState)(),l=(0,J.useCallback)(()=>{i&&i.reInit(n.current,o.current)},[i]);return(0,J.useEffect)(()=>{Ce(n.current,e)||(n.current=e,l())},[e,l]),(0,J.useEffect)(()=>{(function(e,t){if(e.length!==t.length)return!1;const n=Te(e),o=Te(t);return n.every((e,t)=>Ce(e,o[t]))})(o.current,t)||(o.current=t,l())},[t,l]),(0,J.useEffect)(()=>{if("undefined"!=typeof window&&window.document&&window.document.createElement&&s){ht.globalOptions=pt.globalOptions;const e=ht(s,n.current,o.current);return r(e),()=>e.destroy()}r(void 0)},[s,r]),[a,i]}return{setters:[function(e){c=e.a},function(e){d=e.l},function(e){u=e.a,f=e.d,h=e.f,p=e.g,m=e.m,g=e.n,v=e.o,b=e.p,x=e.r,y=e.s,j=e.t,_=e.u},function(e){w=e.t},function(e){S=e.t},function(e){L=e.t},function(e){E=e.t},function(e){O=e.r,I=e.t},function(e){k=e.C,N=e.D,C=e.J,T=e.O,D=e.T,A=e.i,F=e.j,M=e.k,P=e.n,z=e.w,R=e.x},function(e){V=e.r},function(e){B=e.t},function(e){H=e.t},function(e){$=e.t},function(e){},function(e){U=e.t},function(e){K=e.t},function(e){Y=e.t},function(e){W=e.t},function(e){G=e.t},function(e){Z=e.t}],execute:function(){(q=document.createElement("style")).textContent='.embla{--slide-height:16rem;--slide-spacing:1rem;--slide-size:100%;max-width:48rem;margin:auto}.embla__viewport{overflow:hidden}.embla__container{touch-action:pan-y pinch-zoom;margin-left:calc(var(--slide-spacing) * -1);display:flex}.embla__slide{flex:0 0 var(--slide-size);min-width:0;padding-left:var(--slide-spacing);transform:translate(0,0)}.embla__slide__number{box-shadow:inset 0 0 0 .2rem var(--detail-medium-contrast);height:var(--slide-height);user-select:none;border-radius:1.8rem;justify-content:center;align-items:center;font-size:4rem;font-weight:600;display:flex}.embla__dots{flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.embla__dot{-webkit-tap-highlight-color:rgba(var(--text-high-contrast-rgb-value), .5);-webkit-appearance:none;appearance:none;touch-action:manipulation;cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;width:.6rem;height:.6rem;margin:5px;padding:0;text-decoration:none;display:flex}.embla__dot:after{box-shadow:inset 0 0 0 .2rem var(--detail-medium-contrast);content:"";border-radius:50%;align-items:center;width:1.4rem;height:1.4rem;display:flex}.embla__dot--selected{background-color:#0ff}.embla__dot--selected:after{box-shadow:inset 0 0 0 .2rem var(--text-body)}\n/*$vite$:1*/',document.head.appendChild(q),J=c(d(),1),Q=new Map([["bold",J.createElement(J.Fragment,null,J.createElement("path",{d:"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z"}))],["duotone",J.createElement(J.Fragment,null,J.createElement("path",{d:"M232,56V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56Z",opacity:"0.2"}),J.createElement("path",{d:"M205.66,85.66l-96,96a8,8,0,0,1-11.32,0l-40-40a8,8,0,0,1,11.32-11.32L104,164.69l90.34-90.35a8,8,0,0,1,11.32,11.32Z"}))],["fill",J.createElement(J.Fragment,null,J.createElement("path",{d:"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM205.66,85.66l-96,96a8,8,0,0,1-11.32,0l-40-40a8,8,0,0,1,11.32-11.32L104,164.69l90.34-90.35a8,8,0,0,1,11.32,11.32Z"}))],["light",J.createElement(J.Fragment,null,J.createElement("path",{d:"M228.24,76.24l-128,128a6,6,0,0,1-8.48,0l-56-56a6,6,0,0,1,8.48-8.48L96,191.51,219.76,67.76a6,6,0,0,1,8.48,8.48Z"}))],["regular",J.createElement(J.Fragment,null,J.createElement("path",{d:"M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z"}))],["thin",J.createElement(J.Fragment,null,J.createElement("path",{d:"M226.83,74.83l-128,128a4,4,0,0,1-5.66,0l-56-56a4,4,0,0,1,5.66-5.66L96,194.34,221.17,69.17a4,4,0,1,1,5.66,5.66Z"}))]]),X=J.forwardRef((e,t)=>J.createElement(E,s(s({ref:t},e),{},{weights:Q}))),X.displayName="CheckIcon",ee=function(e){return e.SDK_VIEWED="neighborhood-schools-Viewed",e.ATTRIBUTION_CLICKED="LC-Attribution-Clicked",e.SCHOOL_URL_CLICKED="neighborhood-schools-URL-Clicked",e.FILTER_BY_TYPE="neighborhood-schools-Filter-By-Type",e.FILTER_BY_LEVEL="neighborhood-schools-Filter-By-Level",e}({}),te=function(e){return e.SDK_VIEWED="sdk_viewed",e.SCHOOL_URL_CLICKED="neighborhood_schools_url_clicked",e.FILTER_BY_TYPE="neighborhood_schools_filter_by_type",e.FILTER_BY_LEVEL="neighborhood_schools_filter_by_level",e}({}),ne=C(),oe=J.createContext({}),ie=()=>(0,J.useContext)(oe),re=({children:t})=>{var n,o,i,r,a,c,d,u;const{sdkState:f}=P(),h=(null===(n=f.globalOptions)||void 0===n?void 0:n.locale)||"en",p=y();A(()=>{p.postEvent({eventType:ee.SDK_VIEWED}),p.trackAnalyticsEvent({eventName:te.SDK_VIEWED})});const{isLoading:m,data:g}=B({geogID:null===(o=f.options)||void 0===o?void 0:o.geographyId,location:{lat:null===(i=f.options)||void 0===i?void 0:i.lat,lng:null===(r=f.options)||void 0===r?void 0:r.lng}}),{geographyId:v,geography:b}=(0,J.useMemo)(()=>{var e,t;const n=Object.entries(g||{});return{geographyId:null===(e=n[0])||void 0===e?void 0:e[0],geography:null===(t=n[0])||void 0===t?void 0:t[1]}},[m,g]),x=(0,J.useMemo)(()=>{var e,t,n;return null!==(e=f.options)&&void 0!==e&&e.geographyId?(null==b?void 0:b.centroid)||{lat:0,lng:0}:{lat:(null===(t=f.options)||void 0===t?void 0:t.lat)||0,lng:(null===(n=f.options)||void 0===n?void 0:n.lng)||0}},[null===(a=f.options)||void 0===a?void 0:a.geographyId,null===(c=f.options)||void 0===c?void 0:c.lat,null===(d=f.options)||void 0===d?void 0:d.lng,b]),{isLoading:j,data:_}=H({lat:x.lat,lng:x.lng}),[w,S]=(0,J.useState)(),[L,E]=(0,J.useState)(),{isLoading:O,filteredSchools:k,schoolTypes:N,schoolLevels:C,hasCategories:T}=function(t){let{country:n,filterLevel:o,filterType:i}=t,r=l(t,e);const{isLoading:a,data:c}=I(s(s({},r),{},{include:["schools"],radius:2e3,limit:30,buffer:250})),{schools:d,filteredSchools:u,schoolTypes:f,schoolLevels:h,hasCategories:p}=(0,J.useMemo)(()=>{const e={schools:void 0,filteredSchools:void 0,schoolTypes:[],schoolLevels:[],hasCategories:!1};if(!c||!c.primary_schools&&!c.high_schools)return e;const t=new Set,r=new Set,s=new Set,a=[...c.primary_schools||[],...c.high_schools||[]],l=[],d=[];for(const c of a){var u,f;if(t.has(c.name))continue;t.add(c.name),l.push(c),"USA"===n&&(e.hasCategories=e.hasCategories||!!c.is_advanced_placement||!!c.is_charter||!!c.is_magnet);for(const e of(null===(h=c.school_attributes)||void 0===h?void 0:h.types)||[]){var h;r.add(e)}for(const e of(null===(p=c.school_attributes)||void 0===p?void 0:p.levels)||[]){var p;s.add(e)}const a=void 0===o||(null===(u=c.school_attributes)||void 0===u||null===(u=u.levels)||void 0===u?void 0:u.includes(o)),m=void 0===i||(null===(f=c.school_attributes)||void 0===f||null===(f=f.types)||void 0===f?void 0:f.includes(i));a&&m&&d.push(c)}return{schools:l,filteredSchools:d,schoolTypes:[...r],schoolLevels:[...s],hasCategories:e.hasCategories}},[n,o,i,c]);return{isLoading:a,schools:d,filteredSchools:u,schoolTypes:f,schoolLevels:h,hasCategories:p}}({geogId:v,country:_.country,filterLevel:w,filterType:L}),D=(0,J.useMemo)(()=>O||j,[O,j]);(0,J.useEffect)(()=>{E(e=>void 0===e||N.includes(e)?e:void 0)},[N]),(0,J.useEffect)(()=>{S(e=>void 0===e||C.includes(e)?e:void 0)},[C]);const F=(0,J.useMemo)(()=>{var e;return{isLoading:D,filteredSchools:k,schoolTypes:N,schoolLevels:C,filterType:L,filterLevel:w,setFilterType:E,setFilterLevel:S,hasCategories:T,locale:h,location:_,showSchoolRatings:null===(e=f.options)||void 0===e?void 0:e.showSchoolRatings}},[D,k,N,C,L,w,h,T,_,null===(u=f.options)||void 0===u?void 0:u.showSchoolRatings]);return(0,ne.jsx)(oe.Provider,{value:F,children:t})},se=_({lat:f().min(-90,"Must be a valid latitude.").max(90,"Must be a valid latitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),lng:f().min(-180,"Must be a valid longitude.").max(180,"Must be a valid longitude.").when("geographyId",{is:e=>"string"==typeof e,then:e=>e.optional(),otherwise:e=>e.required()}),geographyId:h().optional(),title:m().optional(),hideAttribution:b().optional(),showSchoolRatings:b().optional()}).noUnknown(!0),ae=e=>{let{size:n="medium",children:o}=e,i=l(e,t);return(0,ne.jsx)(R,s(s({className:"\n overflow-hidden bg-base-white rounded-sm shadow-md\n z-10 min-w-32\n data-[size=medium]:text-sm\n data-[size=large]:text-base\n","data-size":n},i),{},{children:(0,ne.jsx)(F,{className:"font-inherit p-0",children:o})}))},le=e=>{let{variant:t="dark",children:o}=e,i=l(e,n);return(0,ne.jsxs)(k,s(s({className:'\n font-sans font-inherit py-1 pr-8 pl-6 outline-none\n relative rounded-sm cursor-default text-zinc-800\n\n data-[highlighted]:[&:not([data-variant="light"])]:bg-primary-100\n data-[highlighted]:[&:not([data-variant="light"])]:text-base-white\n\n // Special color between now and design system\n data-[highlighted]:[&:not([data-variant="dark"])]:bg-primary-10\n data-[highlighted]:[&:not([data-variant="dark"])]:text-zinc-950\n ',"data-variant":t},i),{},{children:[(0,ne.jsx)(D,{children:o}),(0,ne.jsx)(z,{className:"\n absolute left-0 bottom-0\n inline-flex justify-center items-center\n h-full w-6\n",children:(0,ne.jsx)(X,{className:"\n text-base-black\n h-3 w-3\n"})})]}))},ce=e=>{let{size:t="medium",children:n}=e,i=l(e,o);return(0,ne.jsxs)(M,s(s({className:"\n inline-flex items-center justify-between flex-1\n bg-base-white rounded-lg border\n py-1 pr-2 pl-3 min-w-32\n data-[size=medium]:text-sm data-[size=medium]:h-8\n data-[size=large]:text-base data-[size=large]:h-10\n","data-size":t},i),{},{children:[n,(0,ne.jsx)(T,{children:(0,ne.jsx)(S,{className:"\n text-base-black\n h-5 w-5\n"})})]}))},de="\n capitalize text-sm font-normal\n py-2 pl-2\n pr-6 sm:pr-36\n",ue=({options:e,activeFilter:t,allLabel:n,label:o,icon:i=w,handleFilterChange:r})=>{var s;const a=[{label:n,value:"ALL"},...e],l=null!=t?t:"ALL";return(0,ne.jsxs)("div",{children:[(0,ne.jsx)("label",{className:"\n ml-2 mb-1\n text-sm font-normal\n","data-testid":`filter-label-${o}`,htmlFor:`filter-select-${o}`,children:o}),e&&(0,ne.jsx)("div",{className:"\n shadow\n rounded-lg\n -outline-offset-2\n",children:(0,ne.jsxs)(N,{value:l,onValueChange:e=>r("ALL"===e?void 0:e),children:[(0,ne.jsxs)(ce,{size:"large",id:`filter-select-${o}`,children:[(0,ne.jsx)(i,{className:"\n w-4 h-4 text-stone-500\n"}),(0,ne.jsx)("p",{className:de,children:null===(s=a.find(e=>e.value===l))||void 0===s?void 0:s.label})]}),(0,ne.jsx)(ae,{children:a.map(e=>(0,ne.jsx)(le,{value:e.value,variant:"light",children:(0,ne.jsx)("p",{className:de,children:e.label})},e.value))})]})})]})},fe='\n text-neutral-600\n text-sm font-bold\n data-[has-link="true"]:text-primary-100\n data-[has-link="true"]:pointer\n data-[has-link="true"]:hover:underline\n',he=({school:e})=>{const{t:t}=p(["common"]),n=y(),{showSchoolRatings:o}=ie();return(0,ne.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[e.url?(0,ne.jsx)("a",{onClick:()=>{n.postEvent({eventType:ee.SCHOOL_URL_CLICKED,eventAttributes:[{label:"school_name_clicked",data:e.name},{label:"school_url_clicked",data:e.url}]}),n.trackAnalyticsEvent({eventName:te.SCHOOL_URL_CLICKED,eventAttributes:{school_name:e.name,school_url:e.url}})},className:fe,href:e.url,target:"_blank",rel:"noreferrer","data-has-link":void 0!==e.url,"data-testid":"school-name-with-link",children:e.name}):(0,ne.jsx)("p",{"data-testid":"school-name",className:fe,children:e.name}),o&&e.rating&&(0,ne.jsx)("div",{"data-testid":"school-rating",className:"cursor-pointer",title:t("common:map.marker.schoolAttributes.rating"),children:(0,ne.jsx)(V,{children:e.rating})})]})},pe=({school:e})=>{var t,n;return(0,ne.jsxs)("div",{className:"pb-4",children:[(0,ne.jsx)(he,{school:e}),(null===(t=e.school_board_attributes)||void 0===t?void 0:t.name)&&(0,ne.jsx)("p",{"data-testid":"school-board",className:"text-xs font-normal text-neutral-600",children:null===(n=e.school_board_attributes)||void 0===n?void 0:n.name})]})},me="\n flex flex-wrap gap-2\n",ge=({schools:e,headers:t})=>{const{t:n}=p("neighborhoodSchools"),{hasCategories:o}=ie();return(0,ne.jsx)(ne.Fragment,{children:null==e?void 0:e.map(e=>{var i,r,s;return(0,ne.jsxs)("tr",{className:"\n odd:bg-white even:bg-neutral-50\n [&_td]:px-4 [&_td]:py-3\n",children:[(0,ne.jsx)("td",{children:(0,ne.jsx)(pe,{school:e})}),(0,ne.jsx)("td",{children:(0,ne.jsx)("div",{className:me,children:null===(i=e.school_attributes)||void 0===i||null===(i=i.types)||void 0===i?void 0:i.map(t=>(0,ne.jsx)(V,{children:t},`${e.name}-${t}`))})}),-1!==t.indexOf("languages")&&(0,ne.jsx)("td",{children:(0,ne.jsx)("div",{className:me,children:null===(r=e.school_attributes)||void 0===r||null===(r=r.languages)||void 0===r?void 0:r.map(t=>(0,ne.jsx)(V,{variant:"light",children:n("fr"===t?"french":"english")},`${e.name}-${t}`))})}),(0,ne.jsx)("td",{children:(0,ne.jsx)("div",{className:me,children:null===(s=e.school_attributes)||void 0===s||null===(s=s.levels)||void 0===s?void 0:s.map(t=>(0,ne.jsx)(V,{variant:"light",children:t},`${e.name}-${t}`))})}),o&&(0,ne.jsx)("td",{children:(0,ne.jsxs)("div",{className:me,children:[(0,ne.jsx)(V,{isVisible:!!e.is_advanced_placement,children:n("categories.advancedPlacement")}),(0,ne.jsx)(V,{isVisible:!!e.is_charter,children:n("categories.charter")}),(0,ne.jsx)(V,{isVisible:!!e.is_magnet,children:n("categories.magnet")})]})}),(0,ne.jsx)("td",{children:(0,ne.jsx)("p",{className:"\n text-sm font-normal\n text-neutral-600\n",children:O({street:e.address,city:e.city,state:e.province})})})]},`row-${e.name}`)})})},ve={CAN:["name","type","languages","levels","address"],USA:["name","type","levels","address"]},be=({schools:e})=>{const{t:t}=p("neighborhoodSchools"),{isLoading:n,hasCategories:o,location:i}=ie(),r=(0,J.useMemo)(()=>{if(n)return ve.USA;if("USA"===(null==i?void 0:i.country)&&o){const e=[...ve.USA];return e.includes("category")||e.splice(e.length-1,0,"category"),e}return ve[i.country]},[n,i,o]);return(0,ne.jsxs)("div",{className:"\n overflow-y-scroll\n h-full\n max-h-[70vh]\n border border-neutral-300 rounded-lg\n\n data-[is-loading=true]:h-36\n data-[is-loading=true]:bg-gray-200\n data-[is-loading=true]:animate-pulse\n ","data-is-loading":n,children:[!n&&(0,ne.jsxs)("table",{className:"\n w-full h-full\n table-auto\n -outline-offset-2\n",children:[(0,ne.jsx)("thead",{children:(0,ne.jsx)("tr",{children:r&&r.map(e=>(0,ne.jsx)("th",{className:"\n p-4\n text-left\n bg-neutral-50\n [&_h2]:text-md\n [&_h2]:font-medium\n",children:(0,ne.jsx)("h2",{children:t(`headers.${e}`)})},e))})}),(0,ne.jsxs)("tbody",{children:[e&&(null==e?void 0:e.length)>0&&(0,ne.jsx)(ge,{schools:e,headers:r}),0===(null==e?void 0:e.length)&&(0,ne.jsx)("div",{className:"m-5",children:(0,ne.jsx)(Z,{text:t("noFilteredData")})})]})]}),!n&&!e&&(0,ne.jsx)(Z,{text:t("noData")})]})},xe={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0},ht.globalOptions=void 0,pt.globalOptions=void 0,ye=e=>{const[t,n]=(0,J.useState)(0),[o,i]=(0,J.useState)([]),r=(0,J.useCallback)(t=>{e&&e.scrollTo(t)},[e]),s=(0,J.useCallback)(e=>{i(e.scrollSnapList())},[]),a=(0,J.useCallback)(e=>{n(e.selectedScrollSnap())},[]);return(0,J.useEffect)(()=>{e&&(s(e),a(e),e.on("reInit",s).on("reInit",a).on("select",a))},[e,s,a]),{selectedIndex:t,scrollSnaps:o,onDotButtonClick:r}},je=e=>{const{children:t}=e,n=l(e,i);return(0,ne.jsx)("button",s(s({type:"button"},n),{},{children:t}))},_e="\n flex flex-wrap\n mb-4 gap-2\n",we=({selectedIndex:e,scrollSnaps:t,onDotButtonClick:n})=>(0,ne.jsx)("div",{className:W("embla__dots py-2"),children:t.map((t,o)=>(0,ne.jsx)(je,{onClick:()=>n(o),className:W("embla__dot \n bg-zinc-300\n data-[selected=true]:bg-primary-100\n"),"data-selected":o===e},o))}),Se=({title:e,children:t})=>(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsx)("p",{className:"\n pt-4 pb-2\n font-medium\n text-sm\n border-t border-neutral-300\n",children:e}),t]}),Le=({school:e})=>{const{t:t}=p("neighborhoodSchools");return e.is_advanced_placement||e.is_charter||e.is_magnet?(0,ne.jsx)(Se,{title:t("headers.category"),children:(0,ne.jsxs)("div",{className:"flex flex-wrap mb-4 gap-2",children:[(0,ne.jsx)(V,{isVisible:!!e.is_advanced_placement,children:t("categories.advancedPlacement")}),(0,ne.jsx)(V,{isVisible:!!e.is_charter,children:t("categories.charter")}),(0,ne.jsx)(V,{isVisible:!!e.is_magnet,children:t("categories.magnet")})]})}):null},Ee=({school:e})=>{var t,n;const{t:o}=p("neighborhoodSchools");return(0,ne.jsxs)("div",{className:"\n px-6 pt-4 pb-6\n md:px-5 md:pt-6 md:pb-6\n",children:[(0,ne.jsx)(pe,{school:e}),(0,ne.jsx)(Se,{title:o("headers.type"),children:(0,ne.jsx)("div",{className:_e,children:null===(t=e.school_attributes)||void 0===t||null===(t=t.types)||void 0===t?void 0:t.map(t=>(0,ne.jsx)(V,{children:t},`${e.name}-${t}`))})}),(0,ne.jsx)(Se,{title:o("headers.levels"),children:(0,ne.jsx)("div",{className:_e,children:null===(n=e.school_attributes)||void 0===n||null===(n=n.levels)||void 0===n?void 0:n.map(t=>(0,ne.jsx)(V,{variant:"light",children:t},`${e.name}-${t}`))})}),(0,ne.jsx)(Le,{school:e}),(0,ne.jsx)(Se,{title:o("headers.address"),children:(0,ne.jsx)("p",{className:"\n font-normal text-sm\n text-neutral-600 \n mb-4\n",children:O({street:e.address,city:e.city,state:e.province})})})]})},Oe=({schools:e})=>{const{t:t}=p("neighborhoodSchools"),{isLoading:n}=ie(),[o,i]=pt(),{selectedIndex:r,scrollSnaps:s,onDotButtonClick:a}=ye(i);return(0,ne.jsx)(ne.Fragment,{children:(0,ne.jsxs)("section",{className:W("embla \n group/schools-list w-full\n\n data-[is-loading=true]:h-36\n data-[is-loading=true]:bg-gray-200\n data-[is-loading=true]:animate-pulse\n\n"),"data-is-loading":n,children:[!n&&(e&&0!==e.length?(0,ne.jsx)("div",{className:"embla__viewport",ref:o,children:(0,ne.jsx)("div",{className:W("embla__container \n [&>div:nth-child(odd)]:bg-neutral-50\n"),children:e.map(e=>(0,ne.jsx)("div",{className:"embla__slide",children:(0,ne.jsx)(Ee,{school:e})},e.name))})}):(0,ne.jsx)(Z,{text:t("noData")})),(0,ne.jsx)(we,{selectedIndex:r,scrollSnaps:s,onDotButtonClick:a})]})})},Ie=({hideAttribution:e})=>{const{t:t}=p("neighborhoodSchools"),n=y(),{locale:o}=ie();return(0,ne.jsxs)("div",{className:"\n mt-4\n md:flex items-center\n bg-base-white\n [&>a]:justify-end\n",children:[(0,ne.jsx)("p",{className:"flex-1 text-xs",children:t("dataDisclaimer")}),(0,ne.jsx)($,{onClick:()=>{n.postEvent({eventType:ee.ATTRIBUTION_CLICKED})},sdkName:"neighborhood-schools",locale:o,isHidden:e})]})},ke=()=>{var e,t,n;const{t:o}=p("neighborhoodSchools"),i=y(),{sdkState:r}=P(),{filteredSchools:s,schoolLevels:a,schoolTypes:l,filterLevel:c,filterType:d,setFilterLevel:u,setFilterType:f}=ie(),h=Y(),m=l.map(e=>({value:e,label:e})),g=a.map(e=>({value:e,label:e}));return(0,J.useEffect)(()=>{void 0!==d&&(i.postEvent({eventType:ee.FILTER_BY_TYPE,eventAttributes:[{label:"filter_by_type",data:d}]}),i.trackAnalyticsEvent({eventName:te.FILTER_BY_TYPE,eventAttributes:{filter_by_type:d}})),void 0!==c&&(i.postEvent({eventType:ee.FILTER_BY_LEVEL,eventAttributes:[{label:"filter_by_level",data:c}]}),i.trackAnalyticsEvent({eventName:te.FILTER_BY_LEVEL,eventAttributes:{filter_by_level:c}}))},[c,d]),(0,ne.jsxs)("div",{className:"flex flex-col",children:[(0,ne.jsx)(G,{title:"string"==typeof(null===(e=r.options)||void 0===e?void 0:e.title)||!1===(null===(t=r.options)||void 0===t?void 0:t.title)?r.options.title:o("title")}),(0,ne.jsxs)("div",{className:"\n flex flex-wrap\n justify-around sm:justify-normal\n gap-2 md:gap-6\n mb-5 md:mb-6\n mt-3 md:mt-4\n",children:[(0,ne.jsx)(ue,{options:m,icon:w,label:o("headers.type"),allLabel:o("headers.typesFilter"),activeFilter:d,handleFilterChange:e=>f(e)}),(0,ne.jsx)(ue,{options:g,icon:L,label:o("headers.levels"),allLabel:o("headers.levelsFilter"),activeFilter:c,handleFilterChange:e=>u(e)})]}),h?(0,ne.jsx)(Oe,{schools:s}):(0,ne.jsx)(be,{schools:s}),(0,ne.jsx)(Ie,{hideAttribution:null===(n=r.options)||void 0===n?void 0:n.hideAttribution})]})},v(g.neighborhoodWrap.key),r("default",()=>{var e,t,n,o,i,r,s;const{sdkState:a}=P(),l=Y(),c=(null===(e=a.globalOptions)||void 0===e?void 0:e.locale)||"en",d=(0,J.useMemo)(()=>{var e,t,n,o;return null!==(e=a.options)&&void 0!==e&&e.geographyId?{geographyId:null===(t=a.options)||void 0===t?void 0:t.geographyId}:{lat:null===(n=a.options)||void 0===n?void 0:n.lat,lng:null===(o=a.options)||void 0===o?void 0:o.lng}},[null===(t=a.options)||void 0===t?void 0:t.lat,null===(n=a.options)||void 0===n?void 0:n.lng,null===(o=a.options)||void 0===o?void 0:o.geographyId]);return(0,ne.jsx)(U,{children:(0,ne.jsx)(K,{sdk:"Neighborhood Schools",schema:se,options:a.options,children:(0,ne.jsx)(x,{environment:null===(i=a.globalOptions)||void 0===i||null===(i=i.environment)||void 0===i?void 0:i.api,apiKey:a.apiKey,appearance:null===(r=a.globalOptions)||void 0===r?void 0:r.appearance,locale:null===(s=a.globalOptions)||void 0===s?void 0:s.locale,product:j.NEIGHBORHOOD_SCHOOLS,children:(0,ne.jsx)(u,{trackingPipelineSettings:{apiKey:a.apiKey||""},analyticsSettings:g.neighborhoodWrap,meta:{clientId:a.clientId,productName:j.NEIGHBORHOOD_SCHOOLS,productVersion:"1.24.48"},attributes:{location:d,host:a.location,host_url:document.referrer,locale:c,isMobile:l},flags:{isDebugMode:!1},children:(0,ne.jsx)(re,{children:(0,ne.jsx)(ke,{})})})})})})})}}})}();
|
|
2
|
+
//# sourceMappingURL=NeighborhoodSchools-legacy-BRf8JdnT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NeighborhoodSchools-legacy-BRf8JdnT.js","names":["t","isObject"],"sources":["../../../../node_modules/@phosphor-icons/react/dist/defs/Check.es.js","../../../../node_modules/@phosphor-icons/react/dist/csr/Check.es.js","../../src/sdks/NeighborhoodSchools/types.ts","../../src/sdks/NeighborhoodSchools/hooks/useFilteredSchools/index.ts","../../src/sdks/NeighborhoodSchools/context.tsx","../../src/sdks/NeighborhoodSchools/schema.ts","../../src/sdks/NeighborhoodSchools/components/Filter/Content/styles.ts","../../src/sdks/NeighborhoodSchools/components/Filter/Content/index.tsx","../../src/sdks/NeighborhoodSchools/components/Filter/Item/styles.ts","../../src/sdks/NeighborhoodSchools/components/Filter/Item/index.tsx","../../src/sdks/NeighborhoodSchools/components/Filter/Trigger/styles.ts","../../src/sdks/NeighborhoodSchools/components/Filter/Trigger/index.tsx","../../src/sdks/NeighborhoodSchools/components/Filter/styles.ts","../../src/sdks/NeighborhoodSchools/components/Filter/index.tsx","../../src/sdks/NeighborhoodSchools/components/SchoolsTable/styles.ts","../../src/sdks/NeighborhoodSchools/components/SchoolHeader/SchoolName/styles.ts","../../src/sdks/NeighborhoodSchools/components/SchoolHeader/SchoolName/index.tsx","../../src/sdks/NeighborhoodSchools/components/SchoolHeader/styles.ts","../../src/sdks/NeighborhoodSchools/components/SchoolHeader/index.tsx","../../src/sdks/NeighborhoodSchools/components/SchoolsTable/Body/styles.ts","../../src/sdks/NeighborhoodSchools/components/SchoolsTable/Body/index.tsx","../../src/sdks/NeighborhoodSchools/components/SchoolsTable/index.tsx","../../../../node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js","../../../../node_modules/embla-carousel/esm/embla-carousel.esm.js","../../../../node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js","../../src/sdks/NeighborhoodSchools/components/SchoolsList/EmblaCarouselDotButton.tsx","../../src/sdks/NeighborhoodSchools/components/SchoolsList/styles.ts","../../src/sdks/NeighborhoodSchools/components/SchoolsList/Controls/index.tsx","../../src/sdks/NeighborhoodSchools/components/SchoolsList/SchoolItem/SchoolSection/styles.ts","../../src/sdks/NeighborhoodSchools/components/SchoolsList/SchoolItem/SchoolSection/index.tsx","../../src/sdks/NeighborhoodSchools/components/SchoolsList/SchoolItem/SchoolCategories/styles.ts","../../src/sdks/NeighborhoodSchools/components/SchoolsList/SchoolItem/SchoolCategories/index.tsx","../../src/sdks/NeighborhoodSchools/components/SchoolsList/SchoolItem/index.tsx","../../src/sdks/NeighborhoodSchools/components/SchoolsList/index.tsx","../../src/sdks/NeighborhoodSchools/components/Footer/styles.ts","../../src/sdks/NeighborhoodSchools/components/Footer/index.tsx","../../src/sdks/NeighborhoodSchools/components/Content/styles.ts","../../src/sdks/NeighborhoodSchools/components/Content/index.tsx","../../src/sdks/NeighborhoodSchools/index.tsx"],"sourcesContent":["import * as e from \"react\";\nconst a = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\n \"path\",\n {\n d: \"M232,56V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56Z\",\n opacity: \"0.2\"\n }\n ), /* @__PURE__ */ e.createElement(\"path\", { d: \"M205.66,85.66l-96,96a8,8,0,0,1-11.32,0l-40-40a8,8,0,0,1,11.32-11.32L104,164.69l90.34-90.35a8,8,0,0,1,11.32,11.32Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM205.66,85.66l-96,96a8,8,0,0,1-11.32,0l-40-40a8,8,0,0,1,11.32-11.32L104,164.69l90.34-90.35a8,8,0,0,1,11.32,11.32Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M228.24,76.24l-128,128a6,6,0,0,1-8.48,0l-56-56a6,6,0,0,1,8.48-8.48L96,191.51,219.76,67.76a6,6,0,0,1,8.48,8.48Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M229.66,77.66l-128,128a8,8,0,0,1-11.32,0l-56-56a8,8,0,0,1,11.32-11.32L96,188.69,218.34,66.34a8,8,0,0,1,11.32,11.32Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M226.83,74.83l-128,128a4,4,0,0,1-5.66,0l-56-56a4,4,0,0,1,5.66-5.66L96,194.34,221.17,69.17a4,4,0,1,1,5.66,5.66Z\" }))\n ]\n]);\nexport {\n a as default\n};\n","import * as e from \"react\";\nimport t from \"../lib/IconBase.es.js\";\nimport a from \"../defs/Check.es.js\";\nconst o = e.forwardRef((c, r) => /* @__PURE__ */ e.createElement(t, { ref: r, ...c, weights: a }));\no.displayName = \"CheckIcon\";\nconst n = o;\nexport {\n n as Check,\n o as CheckIcon\n};\n","import { SDKOptions } from \"~/types/options\";\n\nexport type Options = {\n lat?: number;\n lng?: number;\n geographyId?: string;\n title?: boolean | string;\n hideAttribution?: boolean;\n showSchoolRatings?: boolean;\n};\n\nexport type NeighborhoodSchoolsProps = SDKOptions<\n Options,\n {\n options: Options | undefined;\n }\n>;\n\nexport type tableHeaders = Partial<\n \"name\" | \"type\" | \"languages\" | \"levels\" | \"address\" | \"category\"\n>;\n\nexport enum TrackingPipelineEvents {\n SDK_VIEWED = \"neighborhood-schools-Viewed\",\n ATTRIBUTION_CLICKED = \"LC-Attribution-Clicked\",\n SCHOOL_URL_CLICKED = \"neighborhood-schools-URL-Clicked\",\n FILTER_BY_TYPE = \"neighborhood-schools-Filter-By-Type\",\n FILTER_BY_LEVEL = \"neighborhood-schools-Filter-By-Level\",\n}\n\n// Why are these named differently?\n// https://docs.mixpanel.com/docs/data-structure/events-and-properties#name-events-and-properties-consistently\nexport enum AnalyticsEvents {\n SDK_VIEWED = \"sdk_viewed\",\n SCHOOL_URL_CLICKED = \"neighborhood_schools_url_clicked\",\n FILTER_BY_TYPE = \"neighborhood_schools_filter_by_type\",\n FILTER_BY_LEVEL = \"neighborhood_schools_filter_by_level\",\n}\n","import { useMemo } from \"react\";\nimport type { School, Schools } from \"@local-logic/client\";\nimport {\n SchoolLevel,\n SchoolType,\n} from \"@local-logic/client/dist/features/schools\";\n\nimport { SchoolsParams, useSchools } from \"~/features/clientLibrary/useSchools\";\n\ntype UseFilteredSchoolsParams = Omit<SchoolsParams, \"include\"> & {\n country?: string;\n filterLevel?: SchoolLevel;\n filterType?: SchoolType;\n};\n\ntype UseFilteredSchoolsResult = {\n isLoading: boolean;\n schools?: School[];\n filteredSchools?: School[];\n schoolTypes: SchoolType[];\n schoolLevels: SchoolLevel[];\n hasCategories: boolean;\n};\n\nexport function useFilteredSchools({\n country,\n filterLevel,\n filterType,\n ...schoolsParams\n}: UseFilteredSchoolsParams): UseFilteredSchoolsResult {\n const { isLoading, data: schoolsData } = useSchools({\n ...schoolsParams,\n include: [\"schools\" as keyof Schools],\n radius: 2000,\n limit: 30,\n buffer: 250,\n });\n\n const { schools, filteredSchools, schoolTypes, schoolLevels, hasCategories } =\n useMemo(() => {\n const result: Omit<UseFilteredSchoolsResult, \"isLoading\"> = {\n schools: undefined,\n filteredSchools: undefined,\n schoolTypes: [],\n schoolLevels: [],\n hasCategories: false,\n };\n\n if (\n !schoolsData ||\n (!schoolsData.primary_schools && !schoolsData.high_schools)\n ) {\n return result;\n }\n\n const schoolNames = new Set<string>();\n const schoolTypesSet = new Set<SchoolType>();\n const schoolLevelsSet = new Set<SchoolLevel>();\n const mergedSchools = [\n ...(schoolsData.primary_schools || []),\n ...(schoolsData.high_schools || []),\n ];\n const dedupedSchools: School[] = [];\n const visibleSchools: School[] = [];\n\n for (const school of mergedSchools) {\n if (schoolNames.has(school.name)) {\n continue;\n }\n\n schoolNames.add(school.name);\n dedupedSchools.push(school);\n\n if (country === \"USA\") {\n result.hasCategories =\n result.hasCategories ||\n !!school.is_advanced_placement ||\n !!school.is_charter ||\n !!school.is_magnet;\n }\n\n for (const type of school.school_attributes?.types || []) {\n schoolTypesSet.add(type);\n }\n\n for (const level of school.school_attributes?.levels || []) {\n schoolLevelsSet.add(level);\n }\n\n const matchesLevel =\n filterLevel === undefined ||\n school.school_attributes?.levels?.includes(filterLevel);\n const matchesType =\n filterType === undefined ||\n school.school_attributes?.types?.includes(filterType);\n\n if (matchesLevel && matchesType) {\n visibleSchools.push(school);\n }\n }\n\n return {\n schools: dedupedSchools,\n filteredSchools: visibleSchools,\n schoolTypes: [...schoolTypesSet],\n schoolLevels: [...schoolLevelsSet],\n hasCategories: result.hasCategories,\n };\n }, [country, filterLevel, filterType, schoolsData]);\n\n return {\n isLoading,\n schools,\n filteredSchools,\n schoolTypes,\n schoolLevels,\n hasCategories,\n };\n}\n","import React, { useContext, useMemo, useEffect, useState } from \"react\";\n\nimport type { School } from \"@local-logic/client\";\nimport {\n SchoolLevel,\n SchoolType,\n} from \"@local-logic/client/dist/features/schools\";\nimport {\n type NeighborhoodSchoolsProps,\n TrackingPipelineEvents,\n AnalyticsEvents,\n} from \"./types\";\nimport { useFilteredSchools } from \"./hooks/useFilteredSchools\";\nimport { useTracking } from \"~/tracking\";\n\nimport useEffectOnce from \"~/hooks/useEffectOnce\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport { useGeographies } from \"~/features/clientLibrary/useGeographies\";\nimport { useLocation } from \"~/hooks/useLocation\";\n\nexport type DefaultContext = {\n isLoading: boolean;\n filteredSchools?: School[];\n schoolTypes: SchoolType[];\n schoolLevels: SchoolLevel[];\n filterType?: SchoolType;\n filterLevel?: SchoolLevel;\n setFilterType: (type?: SchoolType) => void;\n setFilterLevel: (level?: SchoolLevel) => void;\n hasCategories: boolean;\n locale: \"en\" | \"fr\";\n location: {\n country: string;\n state: string;\n };\n showSchoolRatings?: boolean;\n};\n\nconst NeighborhoodSchoolsContext = React.createContext<DefaultContext>(\n {} as DefaultContext,\n);\n\nconst useNeighborhoodSchools = () => useContext(NeighborhoodSchoolsContext);\n\nconst NeighborhoodSchoolsProvider = ({\n children,\n}: {\n children: React.JSX.Element;\n}) => {\n const { sdkState } = useStateManagerContext<NeighborhoodSchoolsProps>();\n const locale = sdkState.globalOptions?.locale || \"en\";\n const tracking = useTracking();\n\n useEffectOnce(() => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SDK_VIEWED,\n });\n\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SDK_VIEWED,\n });\n });\n\n const { isLoading: isGeographyLoading, data: geographyData } = useGeographies(\n {\n geogID: sdkState.options?.geographyId,\n location: {\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n },\n },\n );\n\n const { geographyId, geography } = useMemo(() => {\n const geographiesArray = Object.entries(geographyData || {});\n\n return {\n geographyId: geographiesArray[0]?.[0],\n geography: geographiesArray[0]?.[1],\n };\n }, [isGeographyLoading, geographyData]);\n\n const center = useMemo(() => {\n if (!sdkState.options?.geographyId) {\n return {\n lat: sdkState.options?.lat || 0,\n lng: sdkState.options?.lng || 0,\n };\n }\n\n return geography?.centroid || { lat: 0, lng: 0 };\n }, [\n sdkState.options?.geographyId,\n sdkState.options?.lat,\n sdkState.options?.lng,\n geography,\n ]);\n\n const { isLoading: isLocationLoading, data: location } = useLocation({\n lat: center.lat,\n lng: center.lng,\n });\n\n const [filterLevel, setFilterLevel] = useState<SchoolLevel | undefined>();\n const [filterType, setFilterType] = useState<SchoolType | undefined>();\n\n const {\n isLoading: isSchoolsLoading,\n filteredSchools,\n schoolTypes,\n schoolLevels,\n hasCategories,\n } = useFilteredSchools({\n geogId: geographyId,\n country: location.country,\n filterLevel,\n filterType,\n });\n\n const isLoading = useMemo(\n () => isSchoolsLoading || isLocationLoading,\n [isSchoolsLoading, isLocationLoading],\n );\n\n useEffect(() => {\n setFilterType((currentFilterType) =>\n currentFilterType === undefined || schoolTypes.includes(currentFilterType)\n ? currentFilterType\n : undefined,\n );\n }, [schoolTypes]);\n\n useEffect(() => {\n setFilterLevel((currentFilterLevel) =>\n currentFilterLevel === undefined ||\n schoolLevels.includes(currentFilterLevel)\n ? currentFilterLevel\n : undefined,\n );\n }, [schoolLevels]);\n\n const contextValue = useMemo(\n () => ({\n isLoading,\n filteredSchools,\n schoolTypes,\n schoolLevels,\n filterType,\n filterLevel,\n setFilterType,\n setFilterLevel,\n hasCategories,\n locale,\n location,\n showSchoolRatings: sdkState.options?.showSchoolRatings,\n }),\n [\n isLoading,\n filteredSchools,\n schoolTypes,\n schoolLevels,\n filterType,\n filterLevel,\n locale,\n hasCategories,\n location,\n sdkState.options?.showSchoolRatings,\n ],\n );\n\n return (\n <NeighborhoodSchoolsContext.Provider value={contextValue}>\n {children}\n </NeighborhoodSchoolsContext.Provider>\n );\n};\n\nexport { useNeighborhoodSchools, NeighborhoodSchoolsProvider };\n","import { ObjectSchema, number, object, string, boolean, mixed } from \"yup\";\nimport { Options } from \"./types\";\n\nexport const schema: ObjectSchema<Options> = object({\n lat: number()\n .min(-90, \"Must be a valid latitude.\")\n .max(90, \"Must be a valid latitude.\")\n .when(\"geographyId\", {\n is: (geographyId?: string) => typeof geographyId === \"string\",\n then: (fieldSchema) => fieldSchema.optional(),\n otherwise: (fieldSchema) => fieldSchema.required(),\n }),\n lng: number()\n .min(-180, \"Must be a valid longitude.\")\n .max(180, \"Must be a valid longitude.\")\n .when(\"geographyId\", {\n is: (geographyId?: string) => typeof geographyId === \"string\",\n then: (fieldSchema) => fieldSchema.optional(),\n otherwise: (fieldSchema) => fieldSchema.required(),\n }),\n geographyId: string().optional(),\n title: mixed<string | boolean>().optional(),\n hideAttribution: boolean().optional(),\n showSchoolRatings: boolean().optional(),\n}).noUnknown(true);\n","export const content = `\n overflow-hidden bg-base-white rounded-sm shadow-md\n z-10 min-w-32\n data-[size=medium]:text-sm\n data-[size=large]:text-base\n`;\n\nexport const viewport = `font-inherit p-0`;\n","import React, { ComponentProps } from \"react\";\nimport * as RadixSelect from \"@radix-ui/react-select\";\n\nimport * as styles from \"./styles\";\n\ntype ContentProps = {\n size?: \"medium\" | \"large\";\n} & ComponentProps<typeof RadixSelect.Content>;\n\nexport const Content = ({\n size = \"medium\",\n children,\n ...props\n}: ContentProps) => (\n <RadixSelect.Content className={styles.content} data-size={size} {...props}>\n <RadixSelect.Viewport className={styles.viewport}>\n {children}\n </RadixSelect.Viewport>\n </RadixSelect.Content>\n);\n","export const item = `\n font-sans font-inherit py-1 pr-8 pl-6 outline-none\n relative rounded-sm cursor-default text-zinc-800\n\n data-[highlighted]:[&:not([data-variant=\"light\"])]:bg-primary-100\n data-[highlighted]:[&:not([data-variant=\"light\"])]:text-base-white\n\n // Special color between now and design system\n data-[highlighted]:[&:not([data-variant=\"dark\"])]:bg-primary-10\n data-[highlighted]:[&:not([data-variant=\"dark\"])]:text-zinc-950\n `;\n\nexport const itemIndicator = `\n absolute left-0 bottom-0\n inline-flex justify-center items-center\n h-full w-6\n`;\n\nexport const check = `\n text-base-black\n h-3 w-3\n`;\n","import React, { ComponentProps } from \"react\";\nimport * as RadixSelect from \"@radix-ui/react-select\";\nimport { CheckIcon } from \"@phosphor-icons/react\";\n\nimport * as styles from \"./styles\";\n\ntype ItemProps = {\n variant?: \"dark\" | \"light\";\n} & ComponentProps<typeof RadixSelect.Item>;\n\nexport const Item = ({ variant = \"dark\", children, ...props }: ItemProps) => (\n <RadixSelect.Item className={styles.item} data-variant={variant} {...props}>\n <RadixSelect.ItemText>{children}</RadixSelect.ItemText>\n <RadixSelect.ItemIndicator className={styles.itemIndicator}>\n <CheckIcon className={styles.check} />\n </RadixSelect.ItemIndicator>\n </RadixSelect.Item>\n);\n","export const trigger = `\n inline-flex items-center justify-between flex-1\n bg-base-white rounded-lg border\n py-1 pr-2 pl-3 min-w-32\n data-[size=medium]:text-sm data-[size=medium]:h-8\n data-[size=large]:text-base data-[size=large]:h-10\n`;\n\nexport const icon = `\n text-base-black\n h-5 w-5\n`;\n","import React, { ComponentProps } from \"react\";\nimport * as RadixSelect from \"@radix-ui/react-select\";\nimport { CaretDownIcon } from \"@phosphor-icons/react\";\n\nimport * as styles from \"./styles\";\n\ntype TriggerProps = {\n size?: \"medium\" | \"large\";\n} & ComponentProps<typeof RadixSelect.Trigger>;\n\nexport const Trigger = ({\n size = \"medium\",\n children,\n ...props\n}: TriggerProps) => (\n <RadixSelect.Trigger className={styles.trigger} data-size={size} {...props}>\n {children}\n <RadixSelect.SelectIcon>\n <CaretDownIcon className={styles.icon} />\n </RadixSelect.SelectIcon>\n </RadixSelect.Trigger>\n);\n","export const label = `\n ml-2 mb-1\n text-sm font-normal\n`;\n\nexport const filter = `\n shadow\n rounded-lg\n -outline-offset-2\n`;\n\nexport const item = `\n capitalize text-sm font-normal\n py-2 pl-2\n pr-6 sm:pr-36\n`;\n\nexport const icon = `\n w-4 h-4 text-stone-500\n`;\n","import React from \"react\";\nimport * as RadixSelect from \"@radix-ui/react-select\";\n\nimport { type Icon, BackpackIcon } from \"@phosphor-icons/react\";\nimport { Content } from \"./Content\";\nimport { Item } from \"./Item\";\nimport { Trigger } from \"./Trigger\";\nimport * as styles from \"./styles\";\n\ntype FilterOption = {\n label: string;\n value: string;\n};\n\nexport const Filter = ({\n options,\n activeFilter,\n allLabel,\n label,\n icon: Icon = BackpackIcon,\n handleFilterChange,\n}: {\n options: FilterOption[];\n activeFilter?: string;\n allLabel: string;\n label: string;\n icon?: Icon;\n handleFilterChange: (option?: string) => void;\n}) => {\n const filterOptions = [{ label: allLabel, value: \"ALL\" }, ...options];\n const selectedValue = activeFilter ?? \"ALL\";\n\n return (\n <div>\n <label\n className={styles.label}\n data-testid={`filter-label-${label}`}\n htmlFor={`filter-select-${label}`}\n >\n {label}\n </label>\n {options && (\n <div className={styles.filter}>\n <RadixSelect.Root\n value={selectedValue}\n onValueChange={(value) =>\n handleFilterChange(value === \"ALL\" ? undefined : value)\n }\n >\n <Trigger size=\"large\" id={`filter-select-${label}`}>\n <Icon className={styles.icon} />\n <p className={styles.item}>\n {\n filterOptions.find((option) => option.value === selectedValue)\n ?.label\n }\n </p>\n </Trigger>\n <Content>\n {filterOptions.map((option) => (\n <Item key={option.value} value={option.value} variant=\"light\">\n <p className={styles.item}>{option.label}</p>\n </Item>\n ))}\n </Content>\n </RadixSelect.Root>\n </div>\n )}\n </div>\n );\n};\n","export const container = `\n overflow-y-scroll\n h-full\n max-h-[70vh]\n border border-neutral-300 rounded-lg\n\n data-[is-loading=true]:h-36\n data-[is-loading=true]:bg-gray-200\n data-[is-loading=true]:animate-pulse\n `;\n\nexport const table = `\n w-full h-full\n table-auto\n -outline-offset-2\n`;\n\nexport const header = `\n p-4\n text-left\n bg-neutral-50\n [&_h2]:text-md\n [&_h2]:font-medium\n`;\n\nexport const blankFilter = `m-5`;\n","export const schoolName = `\n text-neutral-600\n text-sm font-bold\n data-[has-link=\"true\"]:text-primary-100\n data-[has-link=\"true\"]:pointer\n data-[has-link=\"true\"]:hover:underline\n`;\n\nexport const container = `flex flex-wrap items-center gap-2`;\nexport const ratingTag = `cursor-pointer`;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport type { School } from \"@local-logic/client\";\nimport { Tag } from \"@local-logic/design-system\";\nimport * as styles from \"./styles\";\nimport { useTracking } from \"~/tracking\";\n\nimport {\n AnalyticsEvents,\n TrackingPipelineEvents,\n} from \"~/sdks/NeighborhoodSchools/types\";\nimport { useNeighborhoodSchools } from \"~/sdks/NeighborhoodSchools/context\";\n\nexport const SchoolName = ({ school }: { school: School }) => {\n const { t } = useTranslation([\"common\"]);\n const tracking = useTracking();\n const { showSchoolRatings } = useNeighborhoodSchools();\n\n const schoolURLClicked = () => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.SCHOOL_URL_CLICKED,\n eventAttributes: [\n {\n label: \"school_name_clicked\",\n data: school.name,\n },\n {\n label: \"school_url_clicked\",\n data: school.url,\n },\n ],\n });\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.SCHOOL_URL_CLICKED,\n eventAttributes: {\n school_name: school.name,\n school_url: school.url,\n },\n });\n };\n\n return (\n <div className={styles.container}>\n {school.url ? (\n <a\n onClick={schoolURLClicked}\n className={styles.schoolName}\n href={school.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n data-has-link={school.url !== undefined}\n data-testid=\"school-name-with-link\"\n >\n {school.name}\n </a>\n ) : (\n <p data-testid=\"school-name\" className={styles.schoolName}>\n {school.name}\n </p>\n )}\n\n {showSchoolRatings && school.rating && (\n <div\n data-testid=\"school-rating\"\n className={styles.ratingTag}\n title={t(\"common:map.marker.schoolAttributes.rating\")}\n >\n <Tag>{school.rating}</Tag>\n </div>\n )}\n </div>\n );\n};\n","export const container = `pb-4`;\nexport const board = `text-xs font-normal text-neutral-600`;\n","import React from \"react\";\n\nimport type { School } from \"@local-logic/client\";\nimport { SchoolName } from \"./SchoolName\";\nimport * as styles from \"./styles\";\n\nexport const SchoolHeader = ({ school }: { school: School }) => (\n <div className={styles.container}>\n <SchoolName school={school} />\n\n {school.school_board_attributes?.name && (\n <p data-testid=\"school-board\" className={styles.board}>\n {school.school_board_attributes?.name}\n </p>\n )}\n </div>\n);\n","export const rows = `\n odd:bg-white even:bg-neutral-50\n [&_td]:px-4 [&_td]:py-3\n`;\n\nexport const schoolName = `\n text-neutral-600\n text-sm font-bold\n data-[has-link=\"true\"]:text-primary-100\n data-[has-link=\"true\"]:pointer\n data-[has-link=\"true\"]:hover:underline\n`;\n\nexport const smallText = `\n text-xs font-normal\n text-neutral-600\n`;\n\nexport const mediumText = `\n text-sm font-normal\n text-neutral-600\n`;\n\nexport const badges = `\n flex flex-wrap gap-2\n`;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport type { School } from \"@local-logic/client\";\nimport { Tag } from \"@local-logic/design-system\";\n\nimport { SchoolHeader } from \"../../SchoolHeader\";\nimport * as styles from \"./styles\";\nimport { useNeighborhoodSchools } from \"~/sdks/NeighborhoodSchools/context\";\nimport { formatAddress } from \"~/utils/primitives/stringUtils\";\n\nexport const Body = ({\n schools,\n headers,\n}: {\n schools?: School[];\n headers: string[];\n}) => {\n const { t } = useTranslation(\"neighborhoodSchools\");\n const { hasCategories } = useNeighborhoodSchools();\n\n return (\n <>\n {schools?.map((school) => (\n <tr key={`row-${school.name}`} className={styles.rows}>\n <td>\n <SchoolHeader school={school} />\n </td>\n <td>\n <div className={styles.badges}>\n {school.school_attributes?.types?.map((type) => (\n <Tag key={`${school.name}-${type}`}>{type}</Tag>\n ))}\n </div>\n </td>\n {headers.indexOf(\"languages\") !== -1 && (\n <td>\n <div className={styles.badges}>\n {school.school_attributes?.languages?.map((language) => (\n <Tag key={`${school.name}-${language}`} variant=\"light\">\n {language === \"fr\" ? t(\"french\") : t(\"english\")}\n </Tag>\n ))}\n </div>\n </td>\n )}\n <td>\n <div className={styles.badges}>\n {school.school_attributes?.levels?.map((level) => (\n <Tag key={`${school.name}-${level}`} variant=\"light\">\n {level}\n </Tag>\n ))}\n </div>\n </td>\n {hasCategories && (\n <td>\n <div className={styles.badges}>\n <Tag isVisible={!!school.is_advanced_placement}>\n {t(\"categories.advancedPlacement\")}\n </Tag>\n <Tag isVisible={!!school.is_charter}>\n {t(\"categories.charter\")}\n </Tag>\n <Tag isVisible={!!school.is_magnet}>\n {t(\"categories.magnet\")}\n </Tag>\n </div>\n </td>\n )}\n <td>\n <p className={styles.mediumText}>\n {formatAddress({\n street: school.address,\n city: school.city,\n state: school.province,\n })}\n </p>\n </td>\n </tr>\n ))}\n </>\n );\n};\n","import React, { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport type { School } from \"@local-logic/client\";\nimport * as styles from \"./styles\";\nimport { Body } from \"./Body\";\n\nimport { NoDataContent } from \"~/components/NoDataContent\";\nimport { useNeighborhoodSchools } from \"~/sdks/NeighborhoodSchools/context\";\nimport { tableHeaders } from \"~/sdks/NeighborhoodSchools/types\";\n\nconst baseHeaders: {\n [key: string]: tableHeaders[];\n} = {\n CAN: [\"name\", \"type\", \"languages\", \"levels\", \"address\"],\n USA: [\"name\", \"type\", \"levels\", \"address\"],\n};\n\nexport const SchoolsTable = ({ schools }: { schools?: School[] }) => {\n const { t } = useTranslation(\"neighborhoodSchools\");\n const { isLoading, hasCategories, location } = useNeighborhoodSchools();\n\n const headers = useMemo(() => {\n if (isLoading) {\n // defaulting to USA, to avoid an empty column\n return baseHeaders.USA;\n }\n\n if (location?.country === \"USA\" && hasCategories) {\n const usaHeaders = [...baseHeaders.USA];\n if (!usaHeaders.includes(\"category\")) {\n usaHeaders.splice(usaHeaders.length - 1, 0, \"category\");\n }\n return usaHeaders;\n }\n\n return baseHeaders[location.country];\n }, [isLoading, location, hasCategories]);\n\n return (\n <div className={styles.container} data-is-loading={isLoading}>\n {!isLoading && (\n <table className={styles.table}>\n <thead>\n <tr>\n {headers &&\n headers.map((header) => (\n <th key={header} className={styles.header}>\n <h2>{t(`headers.${header}`)}</h2>\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {schools && schools?.length > 0 && (\n <Body schools={schools} headers={headers} />\n )}\n\n {schools?.length === 0 && (\n <div className={styles.blankFilter}>\n <NoDataContent text={t(\"noFilteredData\")} />\n </div>\n )}\n </tbody>\n </table>\n )}\n\n {!isLoading && !schools && <NoDataContent text={t(\"noData\")} />}\n </div>\n );\n};\n","function isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction isRecord(subject) {\n return isObject(subject) || Array.isArray(subject);\n}\nfunction canUseDOM() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}\nfunction areOptionsEqual(optionsA, optionsB) {\n const optionsAKeys = Object.keys(optionsA);\n const optionsBKeys = Object.keys(optionsB);\n if (optionsAKeys.length !== optionsBKeys.length) return false;\n const breakpointsA = JSON.stringify(Object.keys(optionsA.breakpoints || {}));\n const breakpointsB = JSON.stringify(Object.keys(optionsB.breakpoints || {}));\n if (breakpointsA !== breakpointsB) return false;\n return optionsAKeys.every(key => {\n const valueA = optionsA[key];\n const valueB = optionsB[key];\n if (typeof valueA === 'function') return `${valueA}` === `${valueB}`;\n if (!isRecord(valueA) || !isRecord(valueB)) return valueA === valueB;\n return areOptionsEqual(valueA, valueB);\n });\n}\nfunction sortAndMapPluginToOptions(plugins) {\n return plugins.concat().sort((a, b) => a.name > b.name ? 1 : -1).map(plugin => plugin.options);\n}\nfunction arePluginsEqual(pluginsA, pluginsB) {\n if (pluginsA.length !== pluginsB.length) return false;\n const optionsA = sortAndMapPluginToOptions(pluginsA);\n const optionsB = sortAndMapPluginToOptions(pluginsB);\n return optionsA.every((optionA, index) => {\n const optionB = optionsB[index];\n return areOptionsEqual(optionA, optionB);\n });\n}\n\nexport { areOptionsEqual, arePluginsEqual, canUseDOM, sortAndMapPluginToOptions };\n//# sourceMappingURL=embla-carousel-reactive-utils.esm.js.map\n","function isNumber(subject) {\n return typeof subject === 'number';\n}\nfunction isString(subject) {\n return typeof subject === 'string';\n}\nfunction isBoolean(subject) {\n return typeof subject === 'boolean';\n}\nfunction isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction mathAbs(n) {\n return Math.abs(n);\n}\nfunction mathSign(n) {\n return Math.sign(n);\n}\nfunction deltaAbs(valueB, valueA) {\n return mathAbs(valueB - valueA);\n}\nfunction factorAbs(valueB, valueA) {\n if (valueB === 0 || valueA === 0) return 0;\n if (mathAbs(valueB) <= mathAbs(valueA)) return 0;\n const diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));\n return mathAbs(diff / valueB);\n}\nfunction roundToTwoDecimals(num) {\n return Math.round(num * 100) / 100;\n}\nfunction arrayKeys(array) {\n return objectKeys(array).map(Number);\n}\nfunction arrayLast(array) {\n return array[arrayLastIndex(array)];\n}\nfunction arrayLastIndex(array) {\n return Math.max(0, array.length - 1);\n}\nfunction arrayIsLastIndex(array, index) {\n return index === arrayLastIndex(array);\n}\nfunction arrayFromNumber(n, startAt = 0) {\n return Array.from(Array(n), (_, i) => startAt + i);\n}\nfunction objectKeys(object) {\n return Object.keys(object);\n}\nfunction objectsMergeDeep(objectA, objectB) {\n return [objectA, objectB].reduce((mergedObjects, currentObject) => {\n objectKeys(currentObject).forEach(key => {\n const valueA = mergedObjects[key];\n const valueB = currentObject[key];\n const areObjects = isObject(valueA) && isObject(valueB);\n mergedObjects[key] = areObjects ? objectsMergeDeep(valueA, valueB) : valueB;\n });\n return mergedObjects;\n }, {});\n}\nfunction isMouseEvent(evt, ownerWindow) {\n return typeof ownerWindow.MouseEvent !== 'undefined' && evt instanceof ownerWindow.MouseEvent;\n}\n\nfunction Alignment(align, viewSize) {\n const predefined = {\n start,\n center,\n end\n };\n function start() {\n return 0;\n }\n function center(n) {\n return end(n) / 2;\n }\n function end(n) {\n return viewSize - n;\n }\n function measure(n, index) {\n if (isString(align)) return predefined[align](n);\n return align(viewSize, n, index);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction EventStore() {\n let listeners = [];\n function add(node, type, handler, options = {\n passive: true\n }) {\n let removeListener;\n if ('addEventListener' in node) {\n node.addEventListener(type, handler, options);\n removeListener = () => node.removeEventListener(type, handler, options);\n } else {\n const legacyMediaQueryList = node;\n legacyMediaQueryList.addListener(handler);\n removeListener = () => legacyMediaQueryList.removeListener(handler);\n }\n listeners.push(removeListener);\n return self;\n }\n function clear() {\n listeners = listeners.filter(remove => remove());\n }\n const self = {\n add,\n clear\n };\n return self;\n}\n\nfunction Animations(ownerDocument, ownerWindow, update, render) {\n const documentVisibleHandler = EventStore();\n const fixedTimeStep = 1000 / 60;\n let lastTimeStamp = null;\n let accumulatedTime = 0;\n let animationId = 0;\n function init() {\n documentVisibleHandler.add(ownerDocument, 'visibilitychange', () => {\n if (ownerDocument.hidden) reset();\n });\n }\n function destroy() {\n stop();\n documentVisibleHandler.clear();\n }\n function animate(timeStamp) {\n if (!animationId) return;\n if (!lastTimeStamp) {\n lastTimeStamp = timeStamp;\n update();\n update();\n }\n const timeElapsed = timeStamp - lastTimeStamp;\n lastTimeStamp = timeStamp;\n accumulatedTime += timeElapsed;\n while (accumulatedTime >= fixedTimeStep) {\n update();\n accumulatedTime -= fixedTimeStep;\n }\n const alpha = accumulatedTime / fixedTimeStep;\n render(alpha);\n if (animationId) {\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n }\n function start() {\n if (animationId) return;\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n function stop() {\n ownerWindow.cancelAnimationFrame(animationId);\n lastTimeStamp = null;\n accumulatedTime = 0;\n animationId = 0;\n }\n function reset() {\n lastTimeStamp = null;\n accumulatedTime = 0;\n }\n const self = {\n init,\n destroy,\n start,\n stop,\n update,\n render\n };\n return self;\n}\n\nfunction Axis(axis, contentDirection) {\n const isRightToLeft = contentDirection === 'rtl';\n const isVertical = axis === 'y';\n const scroll = isVertical ? 'y' : 'x';\n const cross = isVertical ? 'x' : 'y';\n const sign = !isVertical && isRightToLeft ? -1 : 1;\n const startEdge = getStartEdge();\n const endEdge = getEndEdge();\n function measureSize(nodeRect) {\n const {\n height,\n width\n } = nodeRect;\n return isVertical ? height : width;\n }\n function getStartEdge() {\n if (isVertical) return 'top';\n return isRightToLeft ? 'right' : 'left';\n }\n function getEndEdge() {\n if (isVertical) return 'bottom';\n return isRightToLeft ? 'left' : 'right';\n }\n function direction(n) {\n return n * sign;\n }\n const self = {\n scroll,\n cross,\n startEdge,\n endEdge,\n measureSize,\n direction\n };\n return self;\n}\n\nfunction Limit(min = 0, max = 0) {\n const length = mathAbs(min - max);\n function reachedMin(n) {\n return n < min;\n }\n function reachedMax(n) {\n return n > max;\n }\n function reachedAny(n) {\n return reachedMin(n) || reachedMax(n);\n }\n function constrain(n) {\n if (!reachedAny(n)) return n;\n return reachedMin(n) ? min : max;\n }\n function removeOffset(n) {\n if (!length) return n;\n return n - length * Math.ceil((n - max) / length);\n }\n const self = {\n length,\n max,\n min,\n constrain,\n reachedAny,\n reachedMax,\n reachedMin,\n removeOffset\n };\n return self;\n}\n\nfunction Counter(max, start, loop) {\n const {\n constrain\n } = Limit(0, max);\n const loopEnd = max + 1;\n let counter = withinLimit(start);\n function withinLimit(n) {\n return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);\n }\n function get() {\n return counter;\n }\n function set(n) {\n counter = withinLimit(n);\n return self;\n }\n function add(n) {\n return clone().set(get() + n);\n }\n function clone() {\n return Counter(max, get(), loop);\n }\n const self = {\n get,\n set,\n add,\n clone\n };\n return self;\n}\n\nfunction DragHandler(axis, rootNode, ownerDocument, ownerWindow, target, dragTracker, location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, baseFriction, watchDrag) {\n const {\n cross: crossAxis,\n direction\n } = axis;\n const focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];\n const nonPassiveEvent = {\n passive: false\n };\n const initEvents = EventStore();\n const dragEvents = EventStore();\n const goToNextThreshold = Limit(50, 225).constrain(percentOfView.measure(20));\n const snapForceBoost = {\n mouse: 300,\n touch: 400\n };\n const freeForceBoost = {\n mouse: 500,\n touch: 600\n };\n const baseSpeed = dragFree ? 43 : 25;\n let isMoving = false;\n let startScroll = 0;\n let startCross = 0;\n let pointerIsDown = false;\n let preventScroll = false;\n let preventClick = false;\n let isMouse = false;\n function init(emblaApi) {\n if (!watchDrag) return;\n function downIfAllowed(evt) {\n if (isBoolean(watchDrag) || watchDrag(emblaApi, evt)) down(evt);\n }\n const node = rootNode;\n initEvents.add(node, 'dragstart', evt => evt.preventDefault(), nonPassiveEvent).add(node, 'touchmove', () => undefined, nonPassiveEvent).add(node, 'touchend', () => undefined).add(node, 'touchstart', downIfAllowed).add(node, 'mousedown', downIfAllowed).add(node, 'touchcancel', up).add(node, 'contextmenu', up).add(node, 'click', click, true);\n }\n function destroy() {\n initEvents.clear();\n dragEvents.clear();\n }\n function addDragEvents() {\n const node = isMouse ? ownerDocument : rootNode;\n dragEvents.add(node, 'touchmove', move, nonPassiveEvent).add(node, 'touchend', up).add(node, 'mousemove', move, nonPassiveEvent).add(node, 'mouseup', up);\n }\n function isFocusNode(node) {\n const nodeName = node.nodeName || '';\n return focusNodes.includes(nodeName);\n }\n function forceBoost() {\n const boost = dragFree ? freeForceBoost : snapForceBoost;\n const type = isMouse ? 'mouse' : 'touch';\n return boost[type];\n }\n function allowedForce(force, targetChanged) {\n const next = index.add(mathSign(force) * -1);\n const baseForce = scrollTarget.byDistance(force, !dragFree).distance;\n if (dragFree || mathAbs(force) < goToNextThreshold) return baseForce;\n if (skipSnaps && targetChanged) return baseForce * 0.5;\n return scrollTarget.byIndex(next.get(), 0).distance;\n }\n function down(evt) {\n const isMouseEvt = isMouseEvent(evt, ownerWindow);\n isMouse = isMouseEvt;\n preventClick = dragFree && isMouseEvt && !evt.buttons && isMoving;\n isMoving = deltaAbs(target.get(), location.get()) >= 2;\n if (isMouseEvt && evt.button !== 0) return;\n if (isFocusNode(evt.target)) return;\n pointerIsDown = true;\n dragTracker.pointerDown(evt);\n scrollBody.useFriction(0).useDuration(0);\n target.set(location);\n addDragEvents();\n startScroll = dragTracker.readPoint(evt);\n startCross = dragTracker.readPoint(evt, crossAxis);\n eventHandler.emit('pointerDown');\n }\n function move(evt) {\n const isTouchEvt = !isMouseEvent(evt, ownerWindow);\n if (isTouchEvt && evt.touches.length >= 2) return up(evt);\n const lastScroll = dragTracker.readPoint(evt);\n const lastCross = dragTracker.readPoint(evt, crossAxis);\n const diffScroll = deltaAbs(lastScroll, startScroll);\n const diffCross = deltaAbs(lastCross, startCross);\n if (!preventScroll && !isMouse) {\n if (!evt.cancelable) return up(evt);\n preventScroll = diffScroll > diffCross;\n if (!preventScroll) return up(evt);\n }\n const diff = dragTracker.pointerMove(evt);\n if (diffScroll > dragThreshold) preventClick = true;\n scrollBody.useFriction(0.3).useDuration(0.75);\n animation.start();\n target.add(direction(diff));\n evt.preventDefault();\n }\n function up(evt) {\n const currentLocation = scrollTarget.byDistance(0, false);\n const targetChanged = currentLocation.index !== index.get();\n const rawForce = dragTracker.pointerUp(evt) * forceBoost();\n const force = allowedForce(direction(rawForce), targetChanged);\n const forceFactor = factorAbs(rawForce, force);\n const speed = baseSpeed - 10 * forceFactor;\n const friction = baseFriction + forceFactor / 50;\n preventScroll = false;\n pointerIsDown = false;\n dragEvents.clear();\n scrollBody.useDuration(speed).useFriction(friction);\n scrollTo.distance(force, !dragFree);\n isMouse = false;\n eventHandler.emit('pointerUp');\n }\n function click(evt) {\n if (preventClick) {\n evt.stopPropagation();\n evt.preventDefault();\n preventClick = false;\n }\n }\n function pointerDown() {\n return pointerIsDown;\n }\n const self = {\n init,\n destroy,\n pointerDown\n };\n return self;\n}\n\nfunction DragTracker(axis, ownerWindow) {\n const logInterval = 170;\n let startEvent;\n let lastEvent;\n function readTime(evt) {\n return evt.timeStamp;\n }\n function readPoint(evt, evtAxis) {\n const property = evtAxis || axis.scroll;\n const coord = `client${property === 'x' ? 'X' : 'Y'}`;\n return (isMouseEvent(evt, ownerWindow) ? evt : evt.touches[0])[coord];\n }\n function pointerDown(evt) {\n startEvent = evt;\n lastEvent = evt;\n return readPoint(evt);\n }\n function pointerMove(evt) {\n const diff = readPoint(evt) - readPoint(lastEvent);\n const expired = readTime(evt) - readTime(startEvent) > logInterval;\n lastEvent = evt;\n if (expired) startEvent = evt;\n return diff;\n }\n function pointerUp(evt) {\n if (!startEvent || !lastEvent) return 0;\n const diffDrag = readPoint(lastEvent) - readPoint(startEvent);\n const diffTime = readTime(evt) - readTime(startEvent);\n const expired = readTime(evt) - readTime(lastEvent) > logInterval;\n const force = diffDrag / diffTime;\n const isFlick = diffTime && !expired && mathAbs(force) > 0.1;\n return isFlick ? force : 0;\n }\n const self = {\n pointerDown,\n pointerMove,\n pointerUp,\n readPoint\n };\n return self;\n}\n\nfunction NodeRects() {\n function measure(node) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = node;\n const offset = {\n top: offsetTop,\n right: offsetLeft + offsetWidth,\n bottom: offsetTop + offsetHeight,\n left: offsetLeft,\n width: offsetWidth,\n height: offsetHeight\n };\n return offset;\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction PercentOfView(viewSize) {\n function measure(n) {\n return viewSize * (n / 100);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects) {\n const observeNodes = [container].concat(slides);\n let resizeObserver;\n let containerSize;\n let slideSizes = [];\n let destroyed = false;\n function readSize(node) {\n return axis.measureSize(nodeRects.measure(node));\n }\n function init(emblaApi) {\n if (!watchResize) return;\n containerSize = readSize(container);\n slideSizes = slides.map(readSize);\n function defaultCallback(entries) {\n for (const entry of entries) {\n if (destroyed) return;\n const isContainer = entry.target === container;\n const slideIndex = slides.indexOf(entry.target);\n const lastSize = isContainer ? containerSize : slideSizes[slideIndex];\n const newSize = readSize(isContainer ? container : slides[slideIndex]);\n const diffSize = mathAbs(newSize - lastSize);\n if (diffSize >= 0.5) {\n emblaApi.reInit();\n eventHandler.emit('resize');\n break;\n }\n }\n }\n resizeObserver = new ResizeObserver(entries => {\n if (isBoolean(watchResize) || watchResize(emblaApi, entries)) {\n defaultCallback(entries);\n }\n });\n ownerWindow.requestAnimationFrame(() => {\n observeNodes.forEach(node => resizeObserver.observe(node));\n });\n }\n function destroy() {\n destroyed = true;\n if (resizeObserver) resizeObserver.disconnect();\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction ScrollBody(location, offsetLocation, previousLocation, target, baseDuration, baseFriction) {\n let scrollVelocity = 0;\n let scrollDirection = 0;\n let scrollDuration = baseDuration;\n let scrollFriction = baseFriction;\n let rawLocation = location.get();\n let rawLocationPrevious = 0;\n function seek() {\n const displacement = target.get() - location.get();\n const isInstant = !scrollDuration;\n let scrollDistance = 0;\n if (isInstant) {\n scrollVelocity = 0;\n previousLocation.set(target);\n location.set(target);\n scrollDistance = displacement;\n } else {\n previousLocation.set(location);\n scrollVelocity += displacement / scrollDuration;\n scrollVelocity *= scrollFriction;\n rawLocation += scrollVelocity;\n location.add(scrollVelocity);\n scrollDistance = rawLocation - rawLocationPrevious;\n }\n scrollDirection = mathSign(scrollDistance);\n rawLocationPrevious = rawLocation;\n return self;\n }\n function settled() {\n const diff = target.get() - offsetLocation.get();\n return mathAbs(diff) < 0.001;\n }\n function duration() {\n return scrollDuration;\n }\n function direction() {\n return scrollDirection;\n }\n function velocity() {\n return scrollVelocity;\n }\n function useBaseDuration() {\n return useDuration(baseDuration);\n }\n function useBaseFriction() {\n return useFriction(baseFriction);\n }\n function useDuration(n) {\n scrollDuration = n;\n return self;\n }\n function useFriction(n) {\n scrollFriction = n;\n return self;\n }\n const self = {\n direction,\n duration,\n velocity,\n seek,\n settled,\n useBaseFriction,\n useBaseDuration,\n useFriction,\n useDuration\n };\n return self;\n}\n\nfunction ScrollBounds(limit, location, target, scrollBody, percentOfView) {\n const pullBackThreshold = percentOfView.measure(10);\n const edgeOffsetTolerance = percentOfView.measure(50);\n const frictionLimit = Limit(0.1, 0.99);\n let disabled = false;\n function shouldConstrain() {\n if (disabled) return false;\n if (!limit.reachedAny(target.get())) return false;\n if (!limit.reachedAny(location.get())) return false;\n return true;\n }\n function constrain(pointerDown) {\n if (!shouldConstrain()) return;\n const edge = limit.reachedMin(location.get()) ? 'min' : 'max';\n const diffToEdge = mathAbs(limit[edge] - location.get());\n const diffToTarget = target.get() - location.get();\n const friction = frictionLimit.constrain(diffToEdge / edgeOffsetTolerance);\n target.subtract(diffToTarget * friction);\n if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {\n target.set(limit.constrain(target.get()));\n scrollBody.useDuration(25).useBaseFriction();\n }\n }\n function toggleActive(active) {\n disabled = !active;\n }\n const self = {\n shouldConstrain,\n constrain,\n toggleActive\n };\n return self;\n}\n\nfunction ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance) {\n const scrollBounds = Limit(-contentSize + viewSize, 0);\n const snapsBounded = measureBounded();\n const scrollContainLimit = findScrollContainLimit();\n const snapsContained = measureContained();\n function usePixelTolerance(bound, snap) {\n return deltaAbs(bound, snap) <= 1;\n }\n function findScrollContainLimit() {\n const startSnap = snapsBounded[0];\n const endSnap = arrayLast(snapsBounded);\n const min = snapsBounded.lastIndexOf(startSnap);\n const max = snapsBounded.indexOf(endSnap) + 1;\n return Limit(min, max);\n }\n function measureBounded() {\n return snapsAligned.map((snapAligned, index) => {\n const {\n min,\n max\n } = scrollBounds;\n const snap = scrollBounds.constrain(snapAligned);\n const isFirst = !index;\n const isLast = arrayIsLastIndex(snapsAligned, index);\n if (isFirst) return max;\n if (isLast) return min;\n if (usePixelTolerance(min, snap)) return min;\n if (usePixelTolerance(max, snap)) return max;\n return snap;\n }).map(scrollBound => parseFloat(scrollBound.toFixed(3)));\n }\n function measureContained() {\n if (contentSize <= viewSize + pixelTolerance) return [scrollBounds.max];\n if (containScroll === 'keepSnaps') return snapsBounded;\n const {\n min,\n max\n } = scrollContainLimit;\n return snapsBounded.slice(min, max);\n }\n const self = {\n snapsContained,\n scrollContainLimit\n };\n return self;\n}\n\nfunction ScrollLimit(contentSize, scrollSnaps, loop) {\n const max = scrollSnaps[0];\n const min = loop ? max - contentSize : arrayLast(scrollSnaps);\n const limit = Limit(min, max);\n const self = {\n limit\n };\n return self;\n}\n\nfunction ScrollLooper(contentSize, limit, location, vectors) {\n const jointSafety = 0.1;\n const min = limit.min + jointSafety;\n const max = limit.max + jointSafety;\n const {\n reachedMin,\n reachedMax\n } = Limit(min, max);\n function shouldLoop(direction) {\n if (direction === 1) return reachedMax(location.get());\n if (direction === -1) return reachedMin(location.get());\n return false;\n }\n function loop(direction) {\n if (!shouldLoop(direction)) return;\n const loopDistance = contentSize * (direction * -1);\n vectors.forEach(v => v.add(loopDistance));\n }\n const self = {\n loop\n };\n return self;\n}\n\nfunction ScrollProgress(limit) {\n const {\n max,\n length\n } = limit;\n function get(n) {\n const currentLocation = n - max;\n return length ? currentLocation / -length : 0;\n }\n const self = {\n get\n };\n return self;\n}\n\nfunction ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll) {\n const {\n startEdge,\n endEdge\n } = axis;\n const {\n groupSlides\n } = slidesToScroll;\n const alignments = measureSizes().map(alignment.measure);\n const snaps = measureUnaligned();\n const snapsAligned = measureAligned();\n function measureSizes() {\n return groupSlides(slideRects).map(rects => arrayLast(rects)[endEdge] - rects[0][startEdge]).map(mathAbs);\n }\n function measureUnaligned() {\n return slideRects.map(rect => containerRect[startEdge] - rect[startEdge]).map(snap => -mathAbs(snap));\n }\n function measureAligned() {\n return groupSlides(snaps).map(g => g[0]).map((snap, index) => snap + alignments[index]);\n }\n const self = {\n snaps,\n snapsAligned\n };\n return self;\n}\n\nfunction SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes) {\n const {\n groupSlides\n } = slidesToScroll;\n const {\n min,\n max\n } = scrollContainLimit;\n const slideRegistry = createSlideRegistry();\n function createSlideRegistry() {\n const groupedSlideIndexes = groupSlides(slideIndexes);\n const doNotContain = !containSnaps || containScroll === 'keepSnaps';\n if (scrollSnaps.length === 1) return [slideIndexes];\n if (doNotContain) return groupedSlideIndexes;\n return groupedSlideIndexes.slice(min, max).map((group, index, groups) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(groups, index);\n if (isFirst) {\n const range = arrayLast(groups[0]) + 1;\n return arrayFromNumber(range);\n }\n if (isLast) {\n const range = arrayLastIndex(slideIndexes) - arrayLast(groups)[0] + 1;\n return arrayFromNumber(range, arrayLast(groups)[0]);\n }\n return group;\n });\n }\n const self = {\n slideRegistry\n };\n return self;\n}\n\nfunction ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {\n const {\n reachedAny,\n removeOffset,\n constrain\n } = limit;\n function minDistance(distances) {\n return distances.concat().sort((a, b) => mathAbs(a) - mathAbs(b))[0];\n }\n function findTargetSnap(target) {\n const distance = loop ? removeOffset(target) : constrain(target);\n const ascDiffsToSnaps = scrollSnaps.map((snap, index) => ({\n diff: shortcut(snap - distance, 0),\n index\n })).sort((d1, d2) => mathAbs(d1.diff) - mathAbs(d2.diff));\n const {\n index\n } = ascDiffsToSnaps[0];\n return {\n index,\n distance\n };\n }\n function shortcut(target, direction) {\n const targets = [target, target + contentSize, target - contentSize];\n if (!loop) return target;\n if (!direction) return minDistance(targets);\n const matchingTargets = targets.filter(t => mathSign(t) === direction);\n if (matchingTargets.length) return minDistance(matchingTargets);\n return arrayLast(targets) - contentSize;\n }\n function byIndex(index, direction) {\n const diffToSnap = scrollSnaps[index] - targetVector.get();\n const distance = shortcut(diffToSnap, direction);\n return {\n index,\n distance\n };\n }\n function byDistance(distance, snap) {\n const target = targetVector.get() + distance;\n const {\n index,\n distance: targetSnapDistance\n } = findTargetSnap(target);\n const reachedBound = !loop && reachedAny(target);\n if (!snap || reachedBound) return {\n index,\n distance\n };\n const diffToSnap = scrollSnaps[index] - targetSnapDistance;\n const snapDistance = distance + shortcut(diffToSnap, 0);\n return {\n index,\n distance: snapDistance\n };\n }\n const self = {\n byDistance,\n byIndex,\n shortcut\n };\n return self;\n}\n\nfunction ScrollTo(animation, indexCurrent, indexPrevious, scrollBody, scrollTarget, targetVector, eventHandler) {\n function scrollTo(target) {\n const distanceDiff = target.distance;\n const indexDiff = target.index !== indexCurrent.get();\n targetVector.add(distanceDiff);\n if (distanceDiff) {\n if (scrollBody.duration()) {\n animation.start();\n } else {\n animation.update();\n animation.render(1);\n animation.update();\n }\n }\n if (indexDiff) {\n indexPrevious.set(indexCurrent.get());\n indexCurrent.set(target.index);\n eventHandler.emit('select');\n }\n }\n function distance(n, snap) {\n const target = scrollTarget.byDistance(n, snap);\n scrollTo(target);\n }\n function index(n, direction) {\n const targetIndex = indexCurrent.clone().set(n);\n const target = scrollTarget.byIndex(targetIndex.get(), direction);\n scrollTo(target);\n }\n const self = {\n distance,\n index\n };\n return self;\n}\n\nfunction SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus) {\n const focusListenerOptions = {\n passive: true,\n capture: true\n };\n let lastTabPressTime = 0;\n function init(emblaApi) {\n if (!watchFocus) return;\n function defaultCallback(index) {\n const nowTime = new Date().getTime();\n const diffTime = nowTime - lastTabPressTime;\n if (diffTime > 10) return;\n eventHandler.emit('slideFocusStart');\n root.scrollLeft = 0;\n const group = slideRegistry.findIndex(group => group.includes(index));\n if (!isNumber(group)) return;\n scrollBody.useDuration(0);\n scrollTo.index(group, 0);\n eventHandler.emit('slideFocus');\n }\n eventStore.add(document, 'keydown', registerTabPress, false);\n slides.forEach((slide, slideIndex) => {\n eventStore.add(slide, 'focus', evt => {\n if (isBoolean(watchFocus) || watchFocus(emblaApi, evt)) {\n defaultCallback(slideIndex);\n }\n }, focusListenerOptions);\n });\n }\n function registerTabPress(event) {\n if (event.code === 'Tab') lastTabPressTime = new Date().getTime();\n }\n const self = {\n init\n };\n return self;\n}\n\nfunction Vector1D(initialValue) {\n let value = initialValue;\n function get() {\n return value;\n }\n function set(n) {\n value = normalizeInput(n);\n }\n function add(n) {\n value += normalizeInput(n);\n }\n function subtract(n) {\n value -= normalizeInput(n);\n }\n function normalizeInput(n) {\n return isNumber(n) ? n : n.get();\n }\n const self = {\n get,\n set,\n add,\n subtract\n };\n return self;\n}\n\nfunction Translate(axis, container) {\n const translate = axis.scroll === 'x' ? x : y;\n const containerStyle = container.style;\n let previousTarget = null;\n let disabled = false;\n function x(n) {\n return `translate3d(${n}px,0px,0px)`;\n }\n function y(n) {\n return `translate3d(0px,${n}px,0px)`;\n }\n function to(target) {\n if (disabled) return;\n const newTarget = roundToTwoDecimals(axis.direction(target));\n if (newTarget === previousTarget) return;\n containerStyle.transform = translate(newTarget);\n previousTarget = newTarget;\n }\n function toggleActive(active) {\n disabled = !active;\n }\n function clear() {\n if (disabled) return;\n containerStyle.transform = '';\n if (!container.getAttribute('style')) container.removeAttribute('style');\n }\n const self = {\n clear,\n to,\n toggleActive\n };\n return self;\n}\n\nfunction SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, location, slides) {\n const roundingSafety = 0.5;\n const ascItems = arrayKeys(slideSizesWithGaps);\n const descItems = arrayKeys(slideSizesWithGaps).reverse();\n const loopPoints = startPoints().concat(endPoints());\n function removeSlideSizes(indexes, from) {\n return indexes.reduce((a, i) => {\n return a - slideSizesWithGaps[i];\n }, from);\n }\n function slidesInGap(indexes, gap) {\n return indexes.reduce((a, i) => {\n const remainingGap = removeSlideSizes(a, gap);\n return remainingGap > 0 ? a.concat([i]) : a;\n }, []);\n }\n function findSlideBounds(offset) {\n return snaps.map((snap, index) => ({\n start: snap - slideSizes[index] + roundingSafety + offset,\n end: snap + viewSize - roundingSafety + offset\n }));\n }\n function findLoopPoints(indexes, offset, isEndEdge) {\n const slideBounds = findSlideBounds(offset);\n return indexes.map(index => {\n const initial = isEndEdge ? 0 : -contentSize;\n const altered = isEndEdge ? contentSize : 0;\n const boundEdge = isEndEdge ? 'end' : 'start';\n const loopPoint = slideBounds[index][boundEdge];\n return {\n index,\n loopPoint,\n slideLocation: Vector1D(-1),\n translate: Translate(axis, slides[index]),\n target: () => location.get() > loopPoint ? initial : altered\n };\n });\n }\n function startPoints() {\n const gap = scrollSnaps[0];\n const indexes = slidesInGap(descItems, gap);\n return findLoopPoints(indexes, contentSize, false);\n }\n function endPoints() {\n const gap = viewSize - scrollSnaps[0] - 1;\n const indexes = slidesInGap(ascItems, gap);\n return findLoopPoints(indexes, -contentSize, true);\n }\n function canLoop() {\n return loopPoints.every(({\n index\n }) => {\n const otherIndexes = ascItems.filter(i => i !== index);\n return removeSlideSizes(otherIndexes, viewSize) <= 0.1;\n });\n }\n function loop() {\n loopPoints.forEach(loopPoint => {\n const {\n target,\n translate,\n slideLocation\n } = loopPoint;\n const shiftLocation = target();\n if (shiftLocation === slideLocation.get()) return;\n translate.to(shiftLocation);\n slideLocation.set(shiftLocation);\n });\n }\n function clear() {\n loopPoints.forEach(loopPoint => loopPoint.translate.clear());\n }\n const self = {\n canLoop,\n clear,\n loop,\n loopPoints\n };\n return self;\n}\n\nfunction SlidesHandler(container, eventHandler, watchSlides) {\n let mutationObserver;\n let destroyed = false;\n function init(emblaApi) {\n if (!watchSlides) return;\n function defaultCallback(mutations) {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n emblaApi.reInit();\n eventHandler.emit('slidesChanged');\n break;\n }\n }\n }\n mutationObserver = new MutationObserver(mutations => {\n if (destroyed) return;\n if (isBoolean(watchSlides) || watchSlides(emblaApi, mutations)) {\n defaultCallback(mutations);\n }\n });\n mutationObserver.observe(container, {\n childList: true\n });\n }\n function destroy() {\n if (mutationObserver) mutationObserver.disconnect();\n destroyed = true;\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction SlidesInView(container, slides, eventHandler, threshold) {\n const intersectionEntryMap = {};\n let inViewCache = null;\n let notInViewCache = null;\n let intersectionObserver;\n let destroyed = false;\n function init() {\n intersectionObserver = new IntersectionObserver(entries => {\n if (destroyed) return;\n entries.forEach(entry => {\n const index = slides.indexOf(entry.target);\n intersectionEntryMap[index] = entry;\n });\n inViewCache = null;\n notInViewCache = null;\n eventHandler.emit('slidesInView');\n }, {\n root: container.parentElement,\n threshold\n });\n slides.forEach(slide => intersectionObserver.observe(slide));\n }\n function destroy() {\n if (intersectionObserver) intersectionObserver.disconnect();\n destroyed = true;\n }\n function createInViewList(inView) {\n return objectKeys(intersectionEntryMap).reduce((list, slideIndex) => {\n const index = parseInt(slideIndex);\n const {\n isIntersecting\n } = intersectionEntryMap[index];\n const inViewMatch = inView && isIntersecting;\n const notInViewMatch = !inView && !isIntersecting;\n if (inViewMatch || notInViewMatch) list.push(index);\n return list;\n }, []);\n }\n function get(inView = true) {\n if (inView && inViewCache) return inViewCache;\n if (!inView && notInViewCache) return notInViewCache;\n const slideIndexes = createInViewList(inView);\n if (inView) inViewCache = slideIndexes;\n if (!inView) notInViewCache = slideIndexes;\n return slideIndexes;\n }\n const self = {\n init,\n destroy,\n get\n };\n return self;\n}\n\nfunction SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow) {\n const {\n measureSize,\n startEdge,\n endEdge\n } = axis;\n const withEdgeGap = slideRects[0] && readEdgeGap;\n const startGap = measureStartGap();\n const endGap = measureEndGap();\n const slideSizes = slideRects.map(measureSize);\n const slideSizesWithGaps = measureWithGaps();\n function measureStartGap() {\n if (!withEdgeGap) return 0;\n const slideRect = slideRects[0];\n return mathAbs(containerRect[startEdge] - slideRect[startEdge]);\n }\n function measureEndGap() {\n if (!withEdgeGap) return 0;\n const style = ownerWindow.getComputedStyle(arrayLast(slides));\n return parseFloat(style.getPropertyValue(`margin-${endEdge}`));\n }\n function measureWithGaps() {\n return slideRects.map((rect, index, rects) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(rects, index);\n if (isFirst) return slideSizes[index] + startGap;\n if (isLast) return slideSizes[index] + endGap;\n return rects[index + 1][startEdge] - rect[startEdge];\n }).map(mathAbs);\n }\n const self = {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n };\n return self;\n}\n\nfunction SlidesToScroll(axis, viewSize, slidesToScroll, loop, containerRect, slideRects, startGap, endGap, pixelTolerance) {\n const {\n startEdge,\n endEdge,\n direction\n } = axis;\n const groupByNumber = isNumber(slidesToScroll);\n function byNumber(array, groupSize) {\n return arrayKeys(array).filter(i => i % groupSize === 0).map(i => array.slice(i, i + groupSize));\n }\n function bySize(array) {\n if (!array.length) return [];\n return arrayKeys(array).reduce((groups, rectB, index) => {\n const rectA = arrayLast(groups) || 0;\n const isFirst = rectA === 0;\n const isLast = rectB === arrayLastIndex(array);\n const edgeA = containerRect[startEdge] - slideRects[rectA][startEdge];\n const edgeB = containerRect[startEdge] - slideRects[rectB][endEdge];\n const gapA = !loop && isFirst ? direction(startGap) : 0;\n const gapB = !loop && isLast ? direction(endGap) : 0;\n const chunkSize = mathAbs(edgeB - gapB - (edgeA + gapA));\n if (index && chunkSize > viewSize + pixelTolerance) groups.push(rectB);\n if (isLast) groups.push(array.length);\n return groups;\n }, []).map((currentSize, index, groups) => {\n const previousSize = Math.max(groups[index - 1] || 0);\n return array.slice(previousSize, currentSize);\n });\n }\n function groupSlides(array) {\n return groupByNumber ? byNumber(array, slidesToScroll) : bySize(array);\n }\n const self = {\n groupSlides\n };\n return self;\n}\n\nfunction Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler) {\n // Options\n const {\n align,\n axis: scrollAxis,\n direction,\n startIndex,\n loop,\n duration,\n dragFree,\n dragThreshold,\n inViewThreshold,\n slidesToScroll: groupSlides,\n skipSnaps,\n containScroll,\n watchResize,\n watchSlides,\n watchDrag,\n watchFocus\n } = options;\n // Measurements\n const pixelTolerance = 2;\n const nodeRects = NodeRects();\n const containerRect = nodeRects.measure(container);\n const slideRects = slides.map(nodeRects.measure);\n const axis = Axis(scrollAxis, direction);\n const viewSize = axis.measureSize(containerRect);\n const percentOfView = PercentOfView(viewSize);\n const alignment = Alignment(align, viewSize);\n const containSnaps = !loop && !!containScroll;\n const readEdgeGap = loop || !!containScroll;\n const {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n } = SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow);\n const slidesToScroll = SlidesToScroll(axis, viewSize, groupSlides, loop, containerRect, slideRects, startGap, endGap, pixelTolerance);\n const {\n snaps,\n snapsAligned\n } = ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll);\n const contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);\n const {\n snapsContained,\n scrollContainLimit\n } = ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance);\n const scrollSnaps = containSnaps ? snapsContained : snapsAligned;\n const {\n limit\n } = ScrollLimit(contentSize, scrollSnaps, loop);\n // Indexes\n const index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);\n const indexPrevious = index.clone();\n const slideIndexes = arrayKeys(slides);\n // Animation\n const update = ({\n dragHandler,\n scrollBody,\n scrollBounds,\n options: {\n loop\n }\n }) => {\n if (!loop) scrollBounds.constrain(dragHandler.pointerDown());\n scrollBody.seek();\n };\n const render = ({\n scrollBody,\n translate,\n location,\n offsetLocation,\n previousLocation,\n scrollLooper,\n slideLooper,\n dragHandler,\n animation,\n eventHandler,\n scrollBounds,\n options: {\n loop\n }\n }, alpha) => {\n const shouldSettle = scrollBody.settled();\n const withinBounds = !scrollBounds.shouldConstrain();\n const hasSettled = loop ? shouldSettle : shouldSettle && withinBounds;\n const hasSettledAndIdle = hasSettled && !dragHandler.pointerDown();\n if (hasSettledAndIdle) animation.stop();\n const interpolatedLocation = location.get() * alpha + previousLocation.get() * (1 - alpha);\n offsetLocation.set(interpolatedLocation);\n if (loop) {\n scrollLooper.loop(scrollBody.direction());\n slideLooper.loop();\n }\n translate.to(offsetLocation.get());\n if (hasSettledAndIdle) eventHandler.emit('settle');\n if (!hasSettled) eventHandler.emit('scroll');\n };\n const animation = Animations(ownerDocument, ownerWindow, () => update(engine), alpha => render(engine, alpha));\n // Shared\n const friction = 0.68;\n const startLocation = scrollSnaps[index.get()];\n const location = Vector1D(startLocation);\n const previousLocation = Vector1D(startLocation);\n const offsetLocation = Vector1D(startLocation);\n const target = Vector1D(startLocation);\n const scrollBody = ScrollBody(location, offsetLocation, previousLocation, target, duration, friction);\n const scrollTarget = ScrollTarget(loop, scrollSnaps, contentSize, limit, target);\n const scrollTo = ScrollTo(animation, index, indexPrevious, scrollBody, scrollTarget, target, eventHandler);\n const scrollProgress = ScrollProgress(limit);\n const eventStore = EventStore();\n const slidesInView = SlidesInView(container, slides, eventHandler, inViewThreshold);\n const {\n slideRegistry\n } = SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes);\n const slideFocus = SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus);\n // Engine\n const engine = {\n ownerDocument,\n ownerWindow,\n eventHandler,\n containerRect,\n slideRects,\n animation,\n axis,\n dragHandler: DragHandler(axis, root, ownerDocument, ownerWindow, target, DragTracker(axis, ownerWindow), location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, friction, watchDrag),\n eventStore,\n percentOfView,\n index,\n indexPrevious,\n limit,\n location,\n offsetLocation,\n previousLocation,\n options,\n resizeHandler: ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects),\n scrollBody,\n scrollBounds: ScrollBounds(limit, offsetLocation, target, scrollBody, percentOfView),\n scrollLooper: ScrollLooper(contentSize, limit, offsetLocation, [location, offsetLocation, previousLocation, target]),\n scrollProgress,\n scrollSnapList: scrollSnaps.map(scrollProgress.get),\n scrollSnaps,\n scrollTarget,\n scrollTo,\n slideLooper: SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, offsetLocation, slides),\n slideFocus,\n slidesHandler: SlidesHandler(container, eventHandler, watchSlides),\n slidesInView,\n slideIndexes,\n slideRegistry,\n slidesToScroll,\n target,\n translate: Translate(axis, container)\n };\n return engine;\n}\n\nfunction EventHandler() {\n let listeners = {};\n let api;\n function init(emblaApi) {\n api = emblaApi;\n }\n function getListeners(evt) {\n return listeners[evt] || [];\n }\n function emit(evt) {\n getListeners(evt).forEach(e => e(api, evt));\n return self;\n }\n function on(evt, cb) {\n listeners[evt] = getListeners(evt).concat([cb]);\n return self;\n }\n function off(evt, cb) {\n listeners[evt] = getListeners(evt).filter(e => e !== cb);\n return self;\n }\n function clear() {\n listeners = {};\n }\n const self = {\n init,\n emit,\n off,\n on,\n clear\n };\n return self;\n}\n\nconst defaultOptions = {\n align: 'center',\n axis: 'x',\n container: null,\n slides: null,\n containScroll: 'trimSnaps',\n direction: 'ltr',\n slidesToScroll: 1,\n inViewThreshold: 0,\n breakpoints: {},\n dragFree: false,\n dragThreshold: 10,\n loop: false,\n skipSnaps: false,\n duration: 25,\n startIndex: 0,\n active: true,\n watchDrag: true,\n watchResize: true,\n watchSlides: true,\n watchFocus: true\n};\n\nfunction OptionsHandler(ownerWindow) {\n function mergeOptions(optionsA, optionsB) {\n return objectsMergeDeep(optionsA, optionsB || {});\n }\n function optionsAtMedia(options) {\n const optionsAtMedia = options.breakpoints || {};\n const matchedMediaOptions = objectKeys(optionsAtMedia).filter(media => ownerWindow.matchMedia(media).matches).map(media => optionsAtMedia[media]).reduce((a, mediaOption) => mergeOptions(a, mediaOption), {});\n return mergeOptions(options, matchedMediaOptions);\n }\n function optionsMediaQueries(optionsList) {\n return optionsList.map(options => objectKeys(options.breakpoints || {})).reduce((acc, mediaQueries) => acc.concat(mediaQueries), []).map(ownerWindow.matchMedia);\n }\n const self = {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n };\n return self;\n}\n\nfunction PluginsHandler(optionsHandler) {\n let activePlugins = [];\n function init(emblaApi, plugins) {\n activePlugins = plugins.filter(({\n options\n }) => optionsHandler.optionsAtMedia(options).active !== false);\n activePlugins.forEach(plugin => plugin.init(emblaApi, optionsHandler));\n return plugins.reduce((map, plugin) => Object.assign(map, {\n [plugin.name]: plugin\n }), {});\n }\n function destroy() {\n activePlugins = activePlugins.filter(plugin => plugin.destroy());\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction EmblaCarousel(root, userOptions, userPlugins) {\n const ownerDocument = root.ownerDocument;\n const ownerWindow = ownerDocument.defaultView;\n const optionsHandler = OptionsHandler(ownerWindow);\n const pluginsHandler = PluginsHandler(optionsHandler);\n const mediaHandlers = EventStore();\n const eventHandler = EventHandler();\n const {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n } = optionsHandler;\n const {\n on,\n off,\n emit\n } = eventHandler;\n const reInit = reActivate;\n let destroyed = false;\n let engine;\n let optionsBase = mergeOptions(defaultOptions, EmblaCarousel.globalOptions);\n let options = mergeOptions(optionsBase);\n let pluginList = [];\n let pluginApis;\n let container;\n let slides;\n function storeElements() {\n const {\n container: userContainer,\n slides: userSlides\n } = options;\n const customContainer = isString(userContainer) ? root.querySelector(userContainer) : userContainer;\n container = customContainer || root.children[0];\n const customSlides = isString(userSlides) ? container.querySelectorAll(userSlides) : userSlides;\n slides = [].slice.call(customSlides || container.children);\n }\n function createEngine(options) {\n const engine = Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler);\n if (options.loop && !engine.slideLooper.canLoop()) {\n const optionsWithoutLoop = Object.assign({}, options, {\n loop: false\n });\n return createEngine(optionsWithoutLoop);\n }\n return engine;\n }\n function activate(withOptions, withPlugins) {\n if (destroyed) return;\n optionsBase = mergeOptions(optionsBase, withOptions);\n options = optionsAtMedia(optionsBase);\n pluginList = withPlugins || pluginList;\n storeElements();\n engine = createEngine(options);\n optionsMediaQueries([optionsBase, ...pluginList.map(({\n options\n }) => options)]).forEach(query => mediaHandlers.add(query, 'change', reActivate));\n if (!options.active) return;\n engine.translate.to(engine.location.get());\n engine.animation.init();\n engine.slidesInView.init();\n engine.slideFocus.init(self);\n engine.eventHandler.init(self);\n engine.resizeHandler.init(self);\n engine.slidesHandler.init(self);\n if (engine.options.loop) engine.slideLooper.loop();\n if (container.offsetParent && slides.length) engine.dragHandler.init(self);\n pluginApis = pluginsHandler.init(self, pluginList);\n }\n function reActivate(withOptions, withPlugins) {\n const startIndex = selectedScrollSnap();\n deActivate();\n activate(mergeOptions({\n startIndex\n }, withOptions), withPlugins);\n eventHandler.emit('reInit');\n }\n function deActivate() {\n engine.dragHandler.destroy();\n engine.eventStore.clear();\n engine.translate.clear();\n engine.slideLooper.clear();\n engine.resizeHandler.destroy();\n engine.slidesHandler.destroy();\n engine.slidesInView.destroy();\n engine.animation.destroy();\n pluginsHandler.destroy();\n mediaHandlers.clear();\n }\n function destroy() {\n if (destroyed) return;\n destroyed = true;\n mediaHandlers.clear();\n deActivate();\n eventHandler.emit('destroy');\n eventHandler.clear();\n }\n function scrollTo(index, jump, direction) {\n if (!options.active || destroyed) return;\n engine.scrollBody.useBaseFriction().useDuration(jump === true ? 0 : options.duration);\n engine.scrollTo.index(index, direction || 0);\n }\n function scrollNext(jump) {\n const next = engine.index.add(1).get();\n scrollTo(next, jump, -1);\n }\n function scrollPrev(jump) {\n const prev = engine.index.add(-1).get();\n scrollTo(prev, jump, 1);\n }\n function canScrollNext() {\n const next = engine.index.add(1).get();\n return next !== selectedScrollSnap();\n }\n function canScrollPrev() {\n const prev = engine.index.add(-1).get();\n return prev !== selectedScrollSnap();\n }\n function scrollSnapList() {\n return engine.scrollSnapList;\n }\n function scrollProgress() {\n return engine.scrollProgress.get(engine.offsetLocation.get());\n }\n function selectedScrollSnap() {\n return engine.index.get();\n }\n function previousScrollSnap() {\n return engine.indexPrevious.get();\n }\n function slidesInView() {\n return engine.slidesInView.get();\n }\n function slidesNotInView() {\n return engine.slidesInView.get(false);\n }\n function plugins() {\n return pluginApis;\n }\n function internalEngine() {\n return engine;\n }\n function rootNode() {\n return root;\n }\n function containerNode() {\n return container;\n }\n function slideNodes() {\n return slides;\n }\n const self = {\n canScrollNext,\n canScrollPrev,\n containerNode,\n internalEngine,\n destroy,\n off,\n on,\n emit,\n plugins,\n previousScrollSnap,\n reInit,\n rootNode,\n scrollNext,\n scrollPrev,\n scrollProgress,\n scrollSnapList,\n scrollTo,\n selectedScrollSnap,\n slideNodes,\n slidesInView,\n slidesNotInView\n };\n activate(userOptions, userPlugins);\n setTimeout(() => eventHandler.emit('init'), 0);\n return self;\n}\nEmblaCarousel.globalOptions = undefined;\n\nexport { EmblaCarousel as default };\n//# sourceMappingURL=embla-carousel.esm.js.map\n","import { useRef, useState, useCallback, useEffect } from 'react';\nimport { areOptionsEqual, arePluginsEqual, canUseDOM } from 'embla-carousel-reactive-utils';\nimport EmblaCarousel from 'embla-carousel';\n\nfunction useEmblaCarousel(options = {}, plugins = []) {\n const storedOptions = useRef(options);\n const storedPlugins = useRef(plugins);\n const [emblaApi, setEmblaApi] = useState();\n const [viewport, setViewport] = useState();\n const reInit = useCallback(() => {\n if (emblaApi) emblaApi.reInit(storedOptions.current, storedPlugins.current);\n }, [emblaApi]);\n useEffect(() => {\n if (areOptionsEqual(storedOptions.current, options)) return;\n storedOptions.current = options;\n reInit();\n }, [options, reInit]);\n useEffect(() => {\n if (arePluginsEqual(storedPlugins.current, plugins)) return;\n storedPlugins.current = plugins;\n reInit();\n }, [plugins, reInit]);\n useEffect(() => {\n if (canUseDOM() && viewport) {\n EmblaCarousel.globalOptions = useEmblaCarousel.globalOptions;\n const newEmblaApi = EmblaCarousel(viewport, storedOptions.current, storedPlugins.current);\n setEmblaApi(newEmblaApi);\n return () => newEmblaApi.destroy();\n } else {\n setEmblaApi(undefined);\n }\n }, [viewport, setEmblaApi]);\n return [setViewport, emblaApi];\n}\nuseEmblaCarousel.globalOptions = undefined;\n\nexport { useEmblaCarousel as default };\n//# sourceMappingURL=embla-carousel-react.esm.js.map\n","import React, {\n ComponentPropsWithRef,\n useCallback,\n useEffect,\n useState,\n} from \"react\";\n\nimport type { EmblaCarouselType } from \"embla-carousel\";\n\ntype UseDotButtonType = {\n selectedIndex: number;\n scrollSnaps: number[];\n onDotButtonClick: (index: number) => void;\n};\n\nexport const useDotButton = (\n emblaApi: EmblaCarouselType | undefined,\n): UseDotButtonType => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n const [scrollSnaps, setScrollSnaps] = useState<number[]>([]);\n\n const onDotButtonClick = useCallback(\n (index: number) => {\n if (!emblaApi) return;\n emblaApi.scrollTo(index);\n },\n [emblaApi],\n );\n\n const onInit = useCallback((emblaApiInit: EmblaCarouselType) => {\n setScrollSnaps(emblaApiInit.scrollSnapList());\n }, []);\n\n const onSelect = useCallback((emblaApiSelect: EmblaCarouselType) => {\n setSelectedIndex(emblaApiSelect.selectedScrollSnap());\n }, []);\n\n useEffect(() => {\n if (!emblaApi) return;\n\n onInit(emblaApi);\n onSelect(emblaApi);\n emblaApi.on(\"reInit\", onInit).on(\"reInit\", onSelect).on(\"select\", onSelect);\n }, [emblaApi, onInit, onSelect]);\n\n return {\n selectedIndex,\n scrollSnaps,\n onDotButtonClick,\n };\n};\n\ntype PropType = ComponentPropsWithRef<\"button\">;\n\nexport const DotButton: React.FC<PropType> = (props) => {\n const { children, ...restProps } = props;\n\n return (\n <button type=\"button\" {...restProps}>\n {children}\n </button>\n );\n};\n","export const section = `\n group/schools-list w-full\n\n data-[is-loading=true]:h-36\n data-[is-loading=true]:bg-gray-200\n data-[is-loading=true]:animate-pulse\n\n`;\n\nexport const container = `\n [&>div:nth-child(odd)]:bg-neutral-50\n`;\n\nexport const slide = `\n px-6 pt-4 pb-6\n md:px-5 md:pt-6 md:pb-6\n`;\n\nexport const title = `\n pb-4 \n`;\n\nexport const schoolName = `\n text-neutral-600\n text-sm font-bold\n data-[has-link=\"true\"]:text-primary-100\n data-[has-link=\"true\"]:pointer\n`;\n\nexport const board = `\n text-xs font-normal\n text-neutral-600\n`;\n\nexport const address = `\n font-normal text-sm\n text-neutral-600 \n mb-4\n`;\n\nexport const controls = `py-2`;\n\nexport const dot = `\n bg-zinc-300\n data-[selected=true]:bg-primary-100\n`;\n\nexport const badges = `\n flex flex-wrap\n mb-4 gap-2\n`;\n","import React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { DotButton } from \"../EmblaCarouselDotButton\";\nimport * as styles from \"../styles\";\n\nexport const Controls = ({\n selectedIndex,\n scrollSnaps,\n onDotButtonClick,\n}: {\n selectedIndex: number;\n scrollSnaps: number[];\n onDotButtonClick: (index: number) => void;\n}) => {\n return (\n <div className={twMerge(`embla__dots ${styles.controls}`)}>\n {scrollSnaps.map((_, index) => (\n <DotButton\n key={index}\n onClick={() => onDotButtonClick(index)}\n className={twMerge(`embla__dot ${styles.dot}`)}\n data-selected={index === selectedIndex}\n />\n ))}\n </div>\n );\n};\n","export const header = `\n pt-4 pb-2\n font-medium\n text-sm\n border-t border-neutral-300\n`;\n","import React from \"react\";\nimport * as styles from \"./styles\";\n\nexport const SchoolSection = ({\n title,\n children,\n}: {\n title: string;\n children: React.ReactNode;\n}) => {\n return (\n <>\n <p className={styles.header}>{title}</p>\n {children}\n </>\n );\n};\n","export const categories = `flex flex-wrap mb-4 gap-2`;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport type { School } from \"@local-logic/client\";\nimport { Tag } from \"@local-logic/design-system\";\nimport { SchoolSection } from \"../SchoolSection\";\nimport * as styles from \"./styles\";\n\nexport const SchoolCategories = ({ school }: { school: School }) => {\n const { t } = useTranslation(\"neighborhoodSchools\");\n\n if (\n !school.is_advanced_placement &&\n !school.is_charter &&\n !school.is_magnet\n ) {\n return null;\n }\n\n return (\n <SchoolSection title={t(\"headers.category\")}>\n <div className={styles.categories}>\n <Tag isVisible={!!school.is_advanced_placement}>\n {t(\"categories.advancedPlacement\")}\n </Tag>\n <Tag isVisible={!!school.is_charter}>{t(\"categories.charter\")}</Tag>\n <Tag isVisible={!!school.is_magnet}>{t(\"categories.magnet\")}</Tag>\n </div>\n </SchoolSection>\n );\n};\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport type { School } from \"@local-logic/client\";\nimport { Tag } from \"@local-logic/design-system\";\nimport { SchoolHeader } from \"../../SchoolHeader\";\nimport * as styles from \"../styles\";\n\nimport { SchoolSection } from \"./SchoolSection\";\nimport { SchoolCategories } from \"./SchoolCategories\";\n\nimport { formatAddress } from \"~/utils/primitives/stringUtils\";\n\nexport const SchoolItem = ({ school }: { school: School }) => {\n const { t } = useTranslation(\"neighborhoodSchools\");\n\n return (\n <div className={styles.slide}>\n <SchoolHeader school={school} />\n\n <SchoolSection title={t(\"headers.type\")}>\n <div className={styles.badges}>\n {school.school_attributes?.types?.map((type) => (\n <Tag key={`${school.name}-${type}`}>{type}</Tag>\n ))}\n </div>\n </SchoolSection>\n\n <SchoolSection title={t(\"headers.levels\")}>\n <div className={styles.badges}>\n {school.school_attributes?.levels?.map((level) => (\n <Tag variant=\"light\" key={`${school.name}-${level}`}>\n {level}\n </Tag>\n ))}\n </div>\n </SchoolSection>\n\n <SchoolCategories school={school} />\n\n <SchoolSection title={t(\"headers.address\")}>\n <p className={styles.address}>\n {formatAddress({\n street: school.address,\n city: school.city,\n state: school.province,\n })}\n </p>\n </SchoolSection>\n </div>\n );\n};\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport type { School } from \"@local-logic/client\";\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { useDotButton } from \"./EmblaCarouselDotButton\";\nimport { Controls } from \"./Controls\";\nimport { SchoolItem } from \"./SchoolItem\";\nimport * as styles from \"./styles\";\n\nimport { NoDataContent } from \"~/components/NoDataContent\";\nimport { useNeighborhoodSchools } from \"~/sdks/NeighborhoodSchools/context\";\nimport \"./embla.css\";\n\nexport const SchoolsList = ({ schools }: { schools?: School[] }) => {\n const { t } = useTranslation(\"neighborhoodSchools\");\n const { isLoading } = useNeighborhoodSchools();\n const [emblaRef, emblaApi] = useEmblaCarousel();\n\n const { selectedIndex, scrollSnaps, onDotButtonClick } =\n useDotButton(emblaApi);\n\n return (\n <>\n <section\n className={twMerge(`embla ${styles.section}`)}\n data-is-loading={isLoading}\n >\n {!isLoading &&\n (!schools || schools.length === 0 ? (\n <NoDataContent text={t(\"noData\")} />\n ) : (\n <div className=\"embla__viewport\" ref={emblaRef}>\n <div className={twMerge(`embla__container ${styles.container}`)}>\n {schools.map((school) => (\n <div className=\"embla__slide\" key={school.name}>\n <SchoolItem school={school} />\n </div>\n ))}\n </div>\n </div>\n ))}\n\n <Controls\n selectedIndex={selectedIndex}\n scrollSnaps={scrollSnaps}\n onDotButtonClick={onDotButtonClick}\n />\n </section>\n </>\n );\n};\n","export const container = `\n mt-4\n md:flex items-center\n bg-base-white\n [&>a]:justify-end\n`;\n\nexport const dataDisclaimer = `flex-1 text-xs`;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport * as styles from \"./styles\";\nimport { useTracking } from \"~/tracking\";\n\nimport { Attribution } from \"~/components/Attribution\";\nimport { TrackingPipelineEvents } from \"~/sdks/NeighborhoodSchools/types\";\nimport { useNeighborhoodSchools } from \"~/sdks/NeighborhoodSchools/context\";\n\nexport const Footer = ({ hideAttribution }: { hideAttribution?: boolean }) => {\n const { t } = useTranslation(\"neighborhoodSchools\");\n const tracking = useTracking();\n const { locale } = useNeighborhoodSchools();\n\n const handleAttributionClicked = () => {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.ATTRIBUTION_CLICKED,\n });\n };\n\n return (\n <div className={styles.container}>\n <p className={styles.dataDisclaimer}>{t(\"dataDisclaimer\")}</p>\n <Attribution\n onClick={handleAttributionClicked}\n sdkName=\"neighborhood-schools\"\n locale={locale}\n isHidden={hideAttribution}\n />\n </div>\n );\n};\n","export const container = `flex flex-col`;\n\nexport const spinner = `\n flex justify-center items-center \n px-3 pt-4 pb-3 w-full h-full\n`;\n\nexport const noDataContainer = `\n bg-neutral-50 px-3 pt-4 pb-3 rounded-sm box-border\n`;\n\nexport const header = `\n flex justify-between items-center\n`;\n\nexport const filters = `\n flex flex-wrap\n justify-around sm:justify-normal\n gap-2 md:gap-6\n mb-5 md:mb-6\n mt-3 md:mt-4\n`;\n","import React, { useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n SchoolLevel,\n SchoolType,\n} from \"@local-logic/client/dist/features/schools\";\nimport { BackpackIcon, GraduationCapIcon } from \"@phosphor-icons/react\";\n\nimport { Filter } from \"../Filter\";\nimport { SchoolsTable } from \"../SchoolsTable\";\n\nimport { SchoolsList } from \"../SchoolsList\";\nimport { Footer } from \"../Footer\";\nimport * as styles from \"./styles\";\nimport { TitleHeader } from \"~/components/TitleHeader\";\nimport { useNeighborhoodSchools } from \"~/sdks/NeighborhoodSchools/context\";\nimport {\n AnalyticsEvents,\n TrackingPipelineEvents,\n NeighborhoodSchoolsProps,\n} from \"~/sdks/NeighborhoodSchools/types\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport useIsMobile from \"~/hooks/useIsMobile\";\nimport { useTracking } from \"~/tracking\";\n\nexport const Content = () => {\n const { t } = useTranslation(\"neighborhoodSchools\");\n const tracking = useTracking();\n const { sdkState } = useStateManagerContext<NeighborhoodSchoolsProps>();\n const {\n filteredSchools,\n schoolLevels,\n schoolTypes,\n filterLevel,\n filterType,\n setFilterLevel,\n setFilterType,\n } = useNeighborhoodSchools();\n const isMobile = useIsMobile();\n\n const schoolTypeOptions = schoolTypes.map((type) => ({\n value: type,\n label: type,\n }));\n\n const schoolLevelOptions = schoolLevels.map((level) => ({\n value: level,\n label: level,\n }));\n\n useEffect(() => {\n if (filterType !== undefined) {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.FILTER_BY_TYPE,\n eventAttributes: [\n {\n label: \"filter_by_type\",\n data: filterType,\n },\n ],\n });\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.FILTER_BY_TYPE,\n eventAttributes: {\n filter_by_type: filterType,\n },\n });\n }\n\n if (filterLevel !== undefined) {\n tracking.postEvent({\n eventType: TrackingPipelineEvents.FILTER_BY_LEVEL,\n eventAttributes: [\n {\n label: \"filter_by_level\",\n data: filterLevel,\n },\n ],\n });\n tracking.trackAnalyticsEvent({\n eventName: AnalyticsEvents.FILTER_BY_LEVEL,\n eventAttributes: {\n filter_by_level: filterLevel,\n },\n });\n }\n }, [filterLevel, filterType]);\n\n return (\n <div className={styles.container}>\n <TitleHeader\n title={\n typeof sdkState.options?.title === \"string\" ||\n sdkState.options?.title === false\n ? sdkState.options.title\n : t(\"title\")\n }\n />\n <div className={styles.filters}>\n <Filter\n options={schoolTypeOptions}\n icon={BackpackIcon}\n label={t(\"headers.type\")}\n allLabel={t(\"headers.typesFilter\")}\n activeFilter={filterType}\n handleFilterChange={(type) =>\n setFilterType(type as SchoolType | undefined)\n }\n />\n <Filter\n options={schoolLevelOptions}\n icon={GraduationCapIcon}\n label={t(\"headers.levels\")}\n allLabel={t(\"headers.levelsFilter\")}\n activeFilter={filterLevel}\n handleFilterChange={(level) =>\n setFilterLevel(level as SchoolLevel | undefined)\n }\n />\n </div>\n {isMobile ? (\n <SchoolsList schools={filteredSchools} />\n ) : (\n <SchoolsTable schools={filteredSchools} />\n )}\n\n <Footer hideAttribution={sdkState.options?.hideAttribution} />\n </div>\n );\n};\n","import React, { useMemo } from \"react\";\n// TODO Move this import to sdks/sdks-app/src/App.tsx once all SDKs are migrated\nimport \"~/assets/styles/globals.css\";\nimport type { NeighborhoodSchoolsProps } from \"./types\";\nimport { NeighborhoodSchoolsProvider } from \"./context\";\nimport { schema } from \"./schema\";\nimport { Content } from \"./components/Content\";\nimport { TrackingProvider, initializeAnalytics } from \"~/tracking\";\n\nimport ResizeWrapper from \"~/components/ResizeWrapper\";\nimport { ValidateOptions } from \"~/components/ValidateOptions\";\nimport { LocalLogicProvider } from \"~/context/LocalLogicProvider\";\nimport { useStateManagerContext } from \"~/context/stateManager\";\nimport useIsMobile from \"~/hooks/useIsMobile\";\nimport { ProductNames } from \"~/types\";\nimport { ANALYTICS_SETTINGS } from \"~/constants/analytics\";\n\ninitializeAnalytics(ANALYTICS_SETTINGS.neighborhoodWrap.key);\n\nconst NeighborhoodSchools = () => {\n const { sdkState } = useStateManagerContext<NeighborhoodSchoolsProps>();\n const isMobile = useIsMobile();\n const locale = sdkState.globalOptions?.locale || \"en\";\n\n const location = useMemo(() => {\n if (sdkState.options?.geographyId) {\n return {\n geographyId: sdkState.options?.geographyId,\n };\n }\n\n return {\n lat: sdkState.options?.lat,\n lng: sdkState.options?.lng,\n };\n }, [\n sdkState.options?.lat,\n sdkState.options?.lng,\n sdkState.options?.geographyId,\n ]);\n\n return (\n <ResizeWrapper>\n <ValidateOptions\n sdk=\"Neighborhood Schools\"\n schema={schema}\n options={sdkState.options!}\n >\n <LocalLogicProvider\n environment={sdkState.globalOptions?.environment?.api}\n apiKey={sdkState.apiKey}\n appearance={sdkState.globalOptions?.appearance}\n locale={sdkState.globalOptions?.locale}\n product={ProductNames.NEIGHBORHOOD_SCHOOLS}\n >\n <TrackingProvider\n trackingPipelineSettings={{\n apiKey: sdkState.apiKey || \"\",\n }}\n analyticsSettings={ANALYTICS_SETTINGS.neighborhoodWrap}\n meta={{\n clientId: sdkState.clientId,\n productName: ProductNames.NEIGHBORHOOD_SCHOOLS,\n productVersion: FULL_APP_VERSION,\n }}\n attributes={{\n location,\n host: sdkState.location,\n host_url: document.referrer,\n locale,\n isMobile,\n }}\n flags={{\n isDebugMode:\n import.meta.env.VITE_TRACKING_PIPELINE_DEBUG === \"true\",\n }}\n >\n <NeighborhoodSchoolsProvider>\n <Content />\n </NeighborhoodSchoolsProvider>\n </TrackingProvider>\n </LocalLogicProvider>\n </ValidateOptions>\n </ResizeWrapper>\n );\n};\n\nexport default NeighborhoodSchools;\n"],"x_google_ignoreList":[0,1,22,23,24],"mappings":"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"}
|