@explorer-1/vue 0.2.54 → 0.2.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/dist/explorer-1-vue.js +6113 -6105
  2. package/dist/explorer-1-vue.umd.cjs +16 -16
  3. package/dist/src/components/BackToTop/BackToTop.stories.d.ts +96 -4
  4. package/dist/src/components/BackToTop/BackToTop.vue.d.ts +96 -4
  5. package/dist/src/components/BaseAccordionItem/BaseAccordionItem.vue.d.ts +12 -10
  6. package/dist/src/components/BaseAudio/BaseAudio.vue.d.ts +12 -5
  7. package/dist/src/components/BaseButton/BaseButton.stories.d.ts +7 -7
  8. package/dist/src/components/BaseButton/BaseButton.vue.d.ts +7 -7
  9. package/dist/src/components/BaseCheckboxGroup/BaseCheckboxGroup.vue.d.ts +4 -4
  10. package/dist/src/components/BaseHeading/BaseHeading.stories.d.ts +9 -9
  11. package/dist/src/components/BaseHeading/BaseHeading.vue.d.ts +6 -6
  12. package/dist/src/components/BaseImage/BaseImage.stories.d.ts +4 -4
  13. package/dist/src/components/BaseImage/BaseImage.vue.d.ts +4 -4
  14. package/dist/src/components/BaseImagePlaceholder/BaseImagePlaceholder.vue.d.ts +4 -4
  15. package/dist/src/components/BaseLightboxCloseButton/BaseLightboxCloseButton.vue.d.ts +3 -1
  16. package/dist/src/components/BaseLightboxOpenButton/BaseLightboxOpenButton.vue.d.ts +3 -1
  17. package/dist/src/components/BaseLink/BaseLink.vue.d.ts +70 -6
  18. package/dist/src/components/BaseModal/BaseModal.stories.d.ts +685 -34
  19. package/dist/src/components/BaseModal/BaseModal.vue.d.ts +141 -4
  20. package/dist/src/components/BaseModal/BaseModalDialog.vue.d.ts +124 -4
  21. package/dist/src/components/BasePill/BasePill.vue.d.ts +4 -4
  22. package/dist/src/components/BasePlaceholder/BasePlaceholder.stories.d.ts +1 -1
  23. package/dist/src/components/BasePlaceholder/BasePlaceholder.vue.d.ts +1 -1
  24. package/dist/src/components/BaseRadioGroup/BaseRadioGroup.vue.d.ts +4 -4
  25. package/dist/src/components/BaseSwimlane/BaseSwimlane.vue.d.ts +4 -4
  26. package/dist/src/components/BaseTimer/BaseTimer.vue.d.ts +6 -6
  27. package/dist/src/components/BaseUnitToggle/BaseUnitToggle.stories.d.ts +33 -33
  28. package/dist/src/components/BaseUnitToggle/BaseUnitToggle.vue.d.ts +8 -8
  29. package/dist/src/components/BaseVideo/BaseVideo.vue.d.ts +61 -4
  30. package/dist/src/components/BlockAccordion/BlockAccordion.vue.d.ts +4 -4
  31. package/dist/src/components/BlockAnchor/BlockAnchor.vue.d.ts +3 -3
  32. package/dist/src/components/BlockAudio/BlockAudio.vue.d.ts +230 -3
  33. package/dist/src/components/BlockCardGridItem/BlockCardGridItemElement.vue.d.ts +172 -5
  34. package/dist/src/components/BlockCircleImageCard/BlockCircleImageCard.vue.d.ts +170 -4
  35. package/dist/src/components/BlockCta/BlockCta.vue.d.ts +96 -4
  36. package/dist/src/components/BlockDialog/BlockDialog.stories.d.ts +7 -5
  37. package/dist/src/components/BlockGist/BlockGist.vue.d.ts +1 -1
  38. package/dist/src/components/BlockGist/GitHub404.vue.d.ts +1 -1
  39. package/dist/src/components/BlockHeading/BlockHeading.vue.d.ts +35 -5
  40. package/dist/src/components/BlockKeyPoints/BlockKeyPoints.vue.d.ts +87 -3
  41. package/dist/src/components/BlockLinkCard/BlockLinkCard.stories.d.ts +60 -23
  42. package/dist/src/components/BlockLinkCardList/BlockLinkCardList.vue.d.ts +4 -4
  43. package/dist/src/components/BlockTable/BlockTable.vue.d.ts +3 -3
  44. package/dist/src/components/BlockTeaser/BlockTeaser.vue.d.ts +175 -4
  45. package/dist/src/components/BlockText/BlockText.vue.d.ts +4 -4
  46. package/dist/src/components/CalendarButton/CalendarButton.vue.d.ts +95 -4
  47. package/dist/src/components/CalendarChip/CalendarChip.vue.d.ts +4 -4
  48. package/dist/src/components/EventDetailHero/EventDetailHero.vue.d.ts +172 -4
  49. package/dist/src/components/FormContact/FormContact.stories.d.ts +361 -1
  50. package/dist/src/components/FormContact/FormContact.vue.d.ts +361 -1
  51. package/dist/src/components/FormNewsletterSignup/FormNewsletterSignup.stories.d.ts +396 -1
  52. package/dist/src/components/FormNewsletterSignup/FormNewsletterSignup.vue.d.ts +396 -1
  53. package/dist/src/components/HeroLarge/HeroLarge.vue.d.ts +51 -4
  54. package/dist/src/components/HomepageFeaturedRobot/HomepageFeaturedRobot.vue.d.ts +281 -3
  55. package/dist/src/components/HomepageTeaserBlock/HomepageTeaserBlockCardImage.vue.d.ts +141 -3
  56. package/dist/src/components/Icons/Icon360.vue.d.ts +1 -1
  57. package/dist/src/components/Icons/IconArrow.vue.d.ts +1 -1
  58. package/dist/src/components/Icons/IconArrows.vue.d.ts +1 -1
  59. package/dist/src/components/Icons/IconAudio.vue.d.ts +1 -1
  60. package/dist/src/components/Icons/IconBook.vue.d.ts +1 -1
  61. package/dist/src/components/Icons/IconBookUser.vue.d.ts +1 -1
  62. package/dist/src/components/Icons/IconBriefcase.vue.d.ts +1 -1
  63. package/dist/src/components/Icons/IconCalendar.vue.d.ts +1 -1
  64. package/dist/src/components/Icons/IconCaret.vue.d.ts +1 -1
  65. package/dist/src/components/Icons/IconCheckbox.vue.d.ts +1 -1
  66. package/dist/src/components/Icons/IconCheckboxSelected.vue.d.ts +1 -1
  67. package/dist/src/components/Icons/IconClose.vue.d.ts +1 -1
  68. package/dist/src/components/Icons/IconCloseLightbox.vue.d.ts +1 -1
  69. package/dist/src/components/Icons/IconDownload.vue.d.ts +1 -1
  70. package/dist/src/components/Icons/IconDropdown.vue.d.ts +1 -1
  71. package/dist/src/components/Icons/IconEnvelope.vue.d.ts +1 -1
  72. package/dist/src/components/Icons/IconExpand.vue.d.ts +1 -1
  73. package/dist/src/components/Icons/IconExternal.vue.d.ts +1 -1
  74. package/dist/src/components/Icons/IconFilter.vue.d.ts +1 -1
  75. package/dist/src/components/Icons/IconForwardTen.vue.d.ts +1 -1
  76. package/dist/src/components/Icons/IconGrid.vue.d.ts +1 -1
  77. package/dist/src/components/Icons/IconHand.vue.d.ts +1 -1
  78. package/dist/src/components/Icons/IconInfo.vue.d.ts +1 -1
  79. package/dist/src/components/Icons/IconLink.vue.d.ts +1 -1
  80. package/dist/src/components/Icons/IconList.vue.d.ts +1 -1
  81. package/dist/src/components/Icons/IconLocation.vue.d.ts +1 -1
  82. package/dist/src/components/Icons/IconMagnifyingGlass.vue.d.ts +1 -1
  83. package/dist/src/components/Icons/IconMedal.vue.d.ts +1 -1
  84. package/dist/src/components/Icons/IconMenu.vue.d.ts +1 -1
  85. package/dist/src/components/Icons/IconMinus.vue.d.ts +1 -1
  86. package/dist/src/components/Icons/IconMute.vue.d.ts +1 -1
  87. package/dist/src/components/Icons/IconNext.vue.d.ts +1 -1
  88. package/dist/src/components/Icons/IconPause.vue.d.ts +1 -1
  89. package/dist/src/components/Icons/IconPlay.vue.d.ts +1 -1
  90. package/dist/src/components/Icons/IconPlus.vue.d.ts +1 -1
  91. package/dist/src/components/Icons/IconPrev.vue.d.ts +1 -1
  92. package/dist/src/components/Icons/IconProfile.vue.d.ts +1 -1
  93. package/dist/src/components/Icons/IconRewindTen.vue.d.ts +1 -1
  94. package/dist/src/components/Icons/IconSearch.vue.d.ts +1 -1
  95. package/dist/src/components/Icons/IconShare.vue.d.ts +1 -1
  96. package/dist/src/components/Icons/IconSlideshow.vue.d.ts +1 -1
  97. package/dist/src/components/Icons/IconSocialEmail.vue.d.ts +1 -1
  98. package/dist/src/components/Icons/IconSocialFacebook.vue.d.ts +1 -1
  99. package/dist/src/components/Icons/IconSocialGoogleClassroom.vue.d.ts +1 -1
  100. package/dist/src/components/Icons/IconSocialInstagram.vue.d.ts +1 -1
  101. package/dist/src/components/Icons/IconSocialPinterest.vue.d.ts +1 -1
  102. package/dist/src/components/Icons/IconSocialReddit.vue.d.ts +1 -1
  103. package/dist/src/components/Icons/IconSocialTwitter.vue.d.ts +1 -1
  104. package/dist/src/components/Icons/IconSocialYoutube.vue.d.ts +1 -1
  105. package/dist/src/components/Icons/IconStop.vue.d.ts +1 -1
  106. package/dist/src/components/Icons/IconSubject.vue.d.ts +1 -1
  107. package/dist/src/components/Icons/IconTime.vue.d.ts +1 -1
  108. package/dist/src/components/Icons/IconUniversity.vue.d.ts +1 -1
  109. package/dist/src/components/Icons/IconUser.vue.d.ts +1 -1
  110. package/dist/src/components/Icons/IconVolume.vue.d.ts +1 -1
  111. package/dist/src/components/Icons/Icons.stories.d.ts +110 -110
  112. package/dist/src/components/ImageDetailContextImage/ImageDetailContextImage.vue.d.ts +142 -3
  113. package/dist/src/components/LayoutHelper/LayoutHelper.vue.d.ts +4 -4
  114. package/dist/src/components/LoadingTransition/LoadingTransition.vue.d.ts +1 -1
  115. package/dist/src/components/LogoCaltech/LogoCaltech.stories.d.ts +1 -1
  116. package/dist/src/components/LogoCaltech/LogoCaltech.vue.d.ts +1 -1
  117. package/dist/src/components/LogoTribrand/LogoTribrand.stories.d.ts +4 -5
  118. package/dist/src/components/LogoTribrand/LogoTribrand.vue.d.ts +4 -4
  119. package/dist/src/components/MetadataEduResource/MetadataEduResource.vue.d.ts +4 -4
  120. package/dist/src/components/MetadataEvent/MetadataEvent.vue.d.ts +4 -4
  121. package/dist/src/components/MissionDetailAbout/MissionDetailAbout.vue.d.ts +61 -4
  122. package/dist/src/components/MissionDetailHero/MissionDetailHero.stories.d.ts +0 -1
  123. package/dist/src/components/MissionDetailHero/MissionDetailHero.vue.d.ts +154 -4
  124. package/dist/src/components/MissionDetailHighlights/MissionDetailHighlights.stories.d.ts +0 -1
  125. package/dist/src/components/MissionDetailStats/DistanceStats.vue.d.ts +63 -8
  126. package/dist/src/components/MissionDetailStats/MissionDetailStats.stories.d.ts +460 -31
  127. package/dist/src/components/MissionDetailStats/MissionDetailStats.vue.d.ts +199 -12
  128. package/dist/src/components/MissionDetailStats/MissionDetailStatsMicro.vue.d.ts +63 -6
  129. package/dist/src/components/MissionDetailStats/MissionDetailStatsMini.vue.d.ts +195 -8
  130. package/dist/src/components/MixinAnimationCaret/MixinAnimationCaret.stories.d.ts +6 -4
  131. package/dist/src/components/MixinAnimationCaret/MixinAnimationCaret.vue.d.ts +6 -4
  132. package/dist/src/components/MixinFancybox/MixinFancybox.vue.d.ts +8 -4
  133. package/dist/src/components/MixinFancybox/MixinFancyboxOpenButton.vue.d.ts +3 -1
  134. package/dist/src/components/MixinVideoBg/MixinVideoBg.vue.d.ts +3 -3
  135. package/dist/src/components/NavDesktop/NavDesktopDropdown.vue.d.ts +44 -4
  136. package/dist/src/components/NavDropdownToggle/NavDropdownToggle.vue.d.ts +5 -5
  137. package/dist/src/components/NavSearchForm/NavSearchForm.vue.d.ts +5 -5
  138. package/dist/src/components/NavSocial/NavSocial.stories.d.ts +99 -4
  139. package/dist/src/components/NavSocial/NavSocial.vue.d.ts +99 -4
  140. package/dist/src/components/NewsDetailMediaContact/NewsDetailMediaContact.vue.d.ts +4 -4
  141. package/dist/src/components/ParallaxContainer/ParallaxContainer.stories.d.ts +8 -8
  142. package/dist/src/components/ParallaxContainer/ParallaxContainer.vue.d.ts +4 -4
  143. package/dist/src/components/ParallaxElement/ParallaxElement.vue.d.ts +4 -4
  144. package/dist/src/components/ProfileDetailSectionGroup/ProfileDetailSectionGroup.vue.d.ts +67 -3
  145. package/dist/src/components/RoboticsDetailStats/RoboticsDetailStats.stories.d.ts +59 -4
  146. package/dist/src/components/RoboticsDetailStats/RoboticsDetailStats.vue.d.ts +3 -3
  147. package/dist/src/components/RoboticsDetailStats/RoboticsDetailStatsMini.vue.d.ts +58 -3
  148. package/dist/src/components/SearchFilterGroup/SearchFilterGroup.vue.d.ts +5 -5
  149. package/dist/src/components/SearchInput/SearchInput.vue.d.ts +5 -5
  150. package/dist/src/components/SearchPagination/SearchPagination.vue.d.ts +96 -3
  151. package/dist/src/components/SearchResultCard/SearchResultCard.stories.d.ts +19 -1
  152. package/dist/src/components/SearchSelectMenu/SearchSelectMenu.vue.d.ts +4 -4
  153. package/dist/src/components/ShareButtons/ShareButtons.vue.d.ts +99 -4
  154. package/dist/src/components/ShareButtonsEdu/ShareButtonsEdu.vue.d.ts +1 -1
  155. package/dist/src/components/SkipLink/SkipLink.vue.d.ts +92 -1
  156. package/dist/src/components/TextArea/TextArea.vue.d.ts +14 -14
  157. package/dist/src/components/TextInput/TextInput.vue.d.ts +14 -14
  158. package/dist/src/components/TheFooter/TheFooterSignUp.vue.d.ts +3 -1
  159. package/dist/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.vue.d.ts +314 -3
  160. package/dist/src/components/TopicDetailMore/TopicDetailMoreVisibility.vue.d.ts +1 -1
  161. package/dist/src/components/YearTicker/YearTicker.stories.d.ts +3 -3
  162. package/dist/src/components/YearTicker/YearTicker.vue.d.ts +3 -3
  163. package/dist/src/docs/foundation/grid_layouthelpers.stories.d.ts +16 -16
  164. package/dist/src/docs/foundation/typography.stories.d.ts +7 -7
  165. package/dist/src/interfaces.d.ts +1 -0
  166. package/dist/src/templates/edu/PageEduExplainerArticle/PageEduExplainerArticle.stories.d.ts +105 -38
  167. package/dist/src/templates/edu/PageEduLesson/PageEduLesson.stories.d.ts +112 -34
  168. package/dist/src/templates/edu/PageEduStudentProject/PageEduStudentProject.stories.d.ts +131 -35
  169. package/dist/src/templates/edu/PageEduTeachableMoment/PageEduTeachableMoment.stories.d.ts +112 -34
  170. package/dist/style.css +1 -1
  171. package/package.json +2 -2
  172. package/src/components/BaseImage/BaseImage.vue +2 -28
  173. package/src/components/BlockHeading/BlockHeading.vue +1 -1
  174. package/src/components/BlockIframeEmbed/BlockIframeEmbed.vue +4 -28
  175. package/src/components/BlockText/BlockText.stories.js +30 -1
  176. package/src/components/BlockVideoEmbed/BlockVideoEmbed.vue +0 -2
  177. package/src/components/HeroMedium/HeroMedium.vue +1 -1
  178. package/src/components/MetaPanel/MetaPanel.vue +6 -6
  179. package/src/components/NavJumpMenu/NavJumpMenu.vue +7 -1
  180. package/src/components/NavJumpMenu/NavJumpMenuContent.vue +6 -1
  181. package/src/components/SearchInput/SearchInput.vue +15 -4
  182. package/src/templates/edu/PageEduHome/PageEduHome.stories.js +99 -0
  183. package/src/templates/edu/PageEduHome/PageEduHome.vue +154 -0
  184. package/src/templates/edu/PageEduLesson/PageEduLesson.vue +5 -6
  185. package/src/templates/edu/PageEduStudentProject/PageEduStudentProject.vue +77 -92
  186. package/src/templates/edu/PageEduStudentProject/PageEduStudentProjectSection.vue +59 -44
  187. package/dist/src/components/AsteroidWatchWidget/AsteroidWatchWidget.vue.d.ts +0 -36
  188. package/dist/src/components/BaseImageCaption/BaseImageCaption.vue.d.ts +0 -37
  189. package/dist/src/components/BlockCardGrid/BlockCardGrid.vue.d.ts +0 -33
  190. package/dist/src/components/BlockCardGridItem/BlockCardGridItem.vue.d.ts +0 -19
  191. package/dist/src/components/BlockIframeEmbed/BlockIframeEmbed.vue.d.ts +0 -24
  192. package/dist/src/components/BlockImage/BlockImage.stories.d.ts +0 -345
  193. package/dist/src/components/BlockImage/BlockImage.vue.d.ts +0 -24
  194. package/dist/src/components/BlockImage/BlockImageFullBleed.vue.d.ts +0 -68
  195. package/dist/src/components/BlockImage/BlockImageStandard.vue.d.ts +0 -65
  196. package/dist/src/components/BlockImageCarousel/BlockImageCarousel.vue.d.ts +0 -74
  197. package/dist/src/components/BlockImageCarouselItem/BlockImageCarouselItem.vue.d.ts +0 -58
  198. package/dist/src/components/BlockImageComparison/BlockImageComparison.vue.d.ts +0 -25
  199. package/dist/src/components/BlockImageGallery/BlockImageGallery.vue.d.ts +0 -57
  200. package/dist/src/components/BlockInlineImage/BlockInlineImage.vue.d.ts +0 -19
  201. package/dist/src/components/BlockLinkCard/BlockLinkCard.vue.d.ts +0 -198
  202. package/dist/src/components/BlockLinkCarousel/BlockLinkCarousel.stories.d.ts +0 -306
  203. package/dist/src/components/BlockLinkCarousel/BlockLinkCarousel.vue.d.ts +0 -47
  204. package/dist/src/components/BlockLinkTile/BlockLinkTile.vue.d.ts +0 -93
  205. package/dist/src/components/BlockListCards/BlockListCards.vue.d.ts +0 -16
  206. package/dist/src/components/BlockQuote/BlockQuote.stories.d.ts +0 -202
  207. package/dist/src/components/BlockQuote/BlockQuote.vue.d.ts +0 -32
  208. package/dist/src/components/BlockRelatedLinks/BlockRelatedLinks.vue.d.ts +0 -36
  209. package/dist/src/components/BlockRelatedLinks/RelatedLink.vue.d.ts +0 -42
  210. package/dist/src/components/BlockStreamfield/BlockStreamfield.vue.d.ts +0 -49
  211. package/dist/src/components/BlockVideo/BlockVideo.vue.d.ts +0 -40
  212. package/dist/src/components/BlockVideoEmbed/BlockVideoEmbed.vue.d.ts +0 -38
  213. package/dist/src/components/DetailHeadline/DetailHeadline.vue.d.ts +0 -156
  214. package/dist/src/components/DsnWidget/DsnWidget.vue.d.ts +0 -15
  215. package/dist/src/components/EventCard/EventCard.vue.d.ts +0 -111
  216. package/dist/src/components/HeroListingIndex/HeroListingIndex.vue.d.ts +0 -42
  217. package/dist/src/components/HeroMedia/HeroMedia.vue.d.ts +0 -66
  218. package/dist/src/components/HeroMedium/HeroMedium.vue.d.ts +0 -96
  219. package/dist/src/components/HomepageCarousel/HomepageCarousel.vue.d.ts +0 -45
  220. package/dist/src/components/HomepageCarouselItem/HomepageCarouselItem.vue.d.ts +0 -33
  221. package/dist/src/components/HomepageEmbedBlock/HomepageEmbedBlock.vue.d.ts +0 -15
  222. package/dist/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.stories.d.ts +0 -106
  223. package/dist/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.vue.d.ts +0 -24
  224. package/dist/src/components/HomepageMissionsCarousel/HomepageMissionsCarouselItem.vue.d.ts +0 -18
  225. package/dist/src/components/HomepageStats/HomepageStats.stories.d.ts +0 -565
  226. package/dist/src/components/HomepageStats/HomepageStats.vue.d.ts +0 -65
  227. package/dist/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue.d.ts +0 -21
  228. package/dist/src/components/MissionDetailHighlights/MissionDetailHighlights.vue.d.ts +0 -65
  229. package/dist/src/components/MissionDetailHighlights/MissionDetailHighlightsCarousel.vue.d.ts +0 -30
  230. package/dist/src/components/MissionDetailHighlights/MissionDetailHighlightsCarouselItem.vue.d.ts +0 -36
  231. package/dist/src/components/MissionDetailInlineImage/MissionDetailInlineImage.vue.d.ts +0 -34
  232. package/dist/src/components/MissionDetailStreamfield/MissionDetailStreamfield.vue.d.ts +0 -12
  233. package/dist/src/components/MixinCarousel/MixinCarousel.stories.d.ts +0 -265
  234. package/dist/src/components/MixinCarousel/MixinCarousel.vue.d.ts +0 -118
  235. package/dist/src/components/NavDesktop/NavDesktop.stories.d.ts +0 -648
  236. package/dist/src/components/NavDesktop/NavDesktop.vue.d.ts +0 -94
  237. package/dist/src/components/NavDesktop/NavDesktopDropdownContent.vue.d.ts +0 -14
  238. package/dist/src/components/NavDesktop/NavDesktopDropdownMore.vue.d.ts +0 -15
  239. package/dist/src/components/NavDesktopEdu/NavDesktopEdu.stories.d.ts +0 -338
  240. package/dist/src/components/NavHeading/NavHeading.vue.d.ts +0 -12
  241. package/dist/src/components/NavHighlight/NavHighlight.vue.d.ts +0 -20
  242. package/dist/src/components/NavLinkList/NavLinkList.vue.d.ts +0 -29
  243. package/dist/src/components/NavLogoLinks/NavLogoLinks.stories.d.ts +0 -18
  244. package/dist/src/components/NavLogoLinks/NavLogoLinks.vue.d.ts +0 -2
  245. package/dist/src/components/NavMobile/NavMobile.stories.d.ts +0 -656
  246. package/dist/src/components/NavMobile/NavMobile.vue.d.ts +0 -94
  247. package/dist/src/components/NavMobile/NavMobileDropdown.vue.d.ts +0 -54
  248. package/dist/src/components/NavMobile/NavMobileEdu.stories.d.ts +0 -395
  249. package/dist/src/components/NavMobile/NavMobileLink.vue.d.ts +0 -46
  250. package/dist/src/components/NavMobile/NavMobileSecondaryDropdown.vue.d.ts +0 -35
  251. package/dist/src/components/NavSecondary/NavSecondary.vue.d.ts +0 -75
  252. package/dist/src/components/NavSecondary/NavSecondaryDropdown.vue.d.ts +0 -70
  253. package/dist/src/components/NavSecondary/NavSecondaryDropdownContent.vue.d.ts +0 -30
  254. package/dist/src/components/NavSecondary/NavSecondaryLink.vue.d.ts +0 -40
  255. package/dist/src/components/PastEventsCarousel/PastEventsCarousel.vue.d.ts +0 -19
  256. package/dist/src/components/PodcastEpisodeCard/PodcastEpisodeCard.vue.d.ts +0 -82
  257. package/dist/src/components/PodcastSeriesCarousel/PodcastSeriesCarousel.vue.d.ts +0 -55
  258. package/dist/src/components/SearchResultCard/SearchResultCard.vue.d.ts +0 -287
  259. package/dist/src/components/SearchResultGridItem/SearchResultGridItem.vue.d.ts +0 -193
  260. package/dist/src/components/SearchResultsList/SearchResultsList.vue.d.ts +0 -62
  261. package/dist/src/components/TheFooter/TheFooter.vue.d.ts +0 -35
  262. package/dist/src/components/ThumbnailCarousel/ThumbnailCarousel.vue.d.ts +0 -32
  263. package/dist/src/components/TimelineDialog/TimelineDialog.stories.d.ts +0 -75
  264. package/dist/src/components/TopicDetailMissionCarousel/TopicDetailMissionCarousel.vue.d.ts +0 -33
  265. package/dist/src/components/TopicDetailMissionCarouselItem/TopicDetailMissionCarouselItem.vue.d.ts +0 -27
  266. package/dist/src/components/TopicDetailMore/TopicDetailMore.stories.d.ts +0 -167
  267. package/dist/src/components/TopicDetailMore/TopicDetailMore.vue.d.ts +0 -39
  268. package/dist/src/components/TopicDetailMoreItem/TopicDetailMoreItem.vue.d.ts +0 -22
  269. package/dist/src/components/TopicDetailStreamfield/TopicDetailStreamfield.vue.d.ts +0 -31
  270. package/dist/src/templates/PageContent/PageContent.vue.d.ts +0 -28
  271. package/dist/src/templates/PageEventDetail/PageEventDetail.vue.d.ts +0 -22
  272. package/dist/src/templates/PageNewsDetail/PageNewsDetail.vue.d.ts +0 -17
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@explorer-1/vue",
3
- "version": "0.2.54",
3
+ "version": "0.2.56",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -30,7 +30,7 @@
30
30
  "vue-bind-once": "^0.2.1",
31
31
  "vue3-compare-image": "^1.2.5",
32
32
  "vue3-observe-visibility": "^1.0.1",
33
- "@explorer-1/common": "1.1.13"
33
+ "@explorer-1/common": "1.1.14"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@vitejs/plugin-vue": "^5.0.4",
@@ -53,11 +53,6 @@ export default defineComponent({
53
53
  default: 'lazy'
54
54
  }
55
55
  },
56
- data() {
57
- return {
58
- lazyNative: true
59
- }
60
- },
61
56
  computed: {
62
57
  computedClass(): string {
63
58
  let classes = ''
@@ -67,31 +62,10 @@ export default defineComponent({
67
62
  if (this.objectFitClass) {
68
63
  classes = classes + ' ' + objectFitClasses[this.objectFitClass]
69
64
  }
70
- if (!this.lazyNative) {
71
- classes = classes + ' lazyload'
72
- }
73
65
  return classes
74
66
  }
75
67
  },
76
- mounted() {
77
- this.featureDetectImageLazyLoad()
78
- },
79
68
  methods: {
80
- featureDetectImageLazyLoad() {
81
- if ('loading' in HTMLImageElement.prototype) {
82
- const image = this.$refs.BaseImage ? (this.$refs.BaseImage as HTMLImageElement) : null
83
- this.lazyNative = true
84
- // reassign dataset attributes
85
- if (image && image.dataset.src) {
86
- image.src = image.dataset.src
87
- }
88
- if (image && image.dataset.srcset) {
89
- image.srcset = image.dataset.srcset
90
- }
91
- } else {
92
- this.lazyNative = false
93
- }
94
- },
95
69
  imageFailed() {
96
70
  console.log('Image failed to load.')
97
71
  }
@@ -105,8 +79,8 @@ export default defineComponent({
105
79
  ref="BaseImage"
106
80
  class="BaseImage print:border print:border-gray-mid"
107
81
  :class="computedClass"
108
- :data-src="src"
109
- :data-srcset="srcset"
82
+ :src="src"
83
+ :srcset="srcset"
110
84
  :alt="alt"
111
85
  :width="width"
112
86
  :height="height"
@@ -19,7 +19,7 @@ import BaseHeading from './../BaseHeading/BaseHeading.vue'
19
19
 
20
20
  export interface BlockHeadingObject {
21
21
  blockType?: string
22
- heading: HeadingLevel
22
+ heading: string
23
23
  level?: HeadingLevel
24
24
  size?: string
25
25
  blockId?: string
@@ -1,14 +1,13 @@
1
1
  <template>
2
- <div v-if="data">
2
+ <div v-if="data?.url">
3
3
  <template v-if="data.height">
4
4
  <iframe
5
5
  v-if="data.url"
6
6
  ref="BlockIframeEmbed"
7
7
  loading="lazy"
8
8
  class="w-full border-none print:!border print:border-gray-dark"
9
- :class="{ lazyload: !lazyNative }"
10
9
  :title="data.title"
11
- :data-src="data.url"
10
+ :src="data.url"
12
11
  width="90%"
13
12
  :height="data.height"
14
13
  allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
@@ -28,9 +27,8 @@
28
27
  ref="BlockIframeEmbed"
29
28
  loading="lazy"
30
29
  class="w-full border-none"
31
- :class="{ lazyload: !lazyNative }"
32
30
  :title="data.title"
33
- :data-src="data.url"
31
+ :src="data.url"
34
32
  data-chromatic="ignore"
35
33
  width="90%"
36
34
  allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
@@ -60,29 +58,7 @@ export default defineComponent({
60
58
  props: {
61
59
  data: {
62
60
  type: Object,
63
- required: false
64
- }
65
- },
66
- data() {
67
- return {
68
- lazyNative: true
69
- }
70
- },
71
- mounted() {
72
- this.featureDetectIframeLazyLoad()
73
- },
74
- methods: {
75
- featureDetectIframeLazyLoad() {
76
- if ('loading' in HTMLIFrameElement.prototype) {
77
- const iframe = this.$refs.BlockIframeEmbed as HTMLIFrameElement
78
- this.lazyNative = true
79
- // move data-src attribute to src
80
- if (iframe.dataset.src) {
81
- iframe.src = iframe.dataset.src
82
- }
83
- } else {
84
- this.lazyNative = false
85
- }
61
+ default: undefined
86
62
  }
87
63
  },
88
64
  computed: {
@@ -3,13 +3,19 @@ import BlockText, { variants } from './BlockText.vue'
3
3
  export default {
4
4
  title: 'Components/Blocks/BlockText',
5
5
  component: BlockText,
6
+ tags: ['!autodocs'],
6
7
  argTypes: {
7
8
  variant: {
8
9
  control: { type: 'select' },
9
10
  options: Object.keys(variants)
10
11
  },
11
12
  text: { control: { type: 'text' } }
12
- }
13
+ },
14
+ decorators: [
15
+ () => ({
16
+ template: '<div class="lg:w-2/3 mx-auto"><story /></div>'
17
+ })
18
+ ]
13
19
  }
14
20
 
15
21
  export const BaseStory = {
@@ -19,3 +25,26 @@ export const BaseStory = {
19
25
  text: `<p>AVIRIS is the first full spectral range imaging spectrometer and dedicated to <a href="https://en.wikipedia.org/wiki/Remote_sensing" target="_blank">Earth Remote Measurement</a>. Test <a href="#">preventlongurlsfrombreakingoutofcontainerpreventlongurlsfrombreakingoutofcontainerpreventlongurlsfrombreakingoutofcontainerpreventlongurlsfrombreakingoutofcontainer</a>. It is a unique optical sensor that continues to deliver calibrated images of the upwelling spectral radiance in 224 contiguous spectral channels (bands) with wavelengths from 380 to 2510 nanometers. AVIRIS has been flown on four aircraft platforms: NASA's high altitude ER-2 jet, Twin Otter International's turboprop, Scaled Composites' Proteus, and NASA's WB-57. The ER-2 flies at approximately 20 km above sea level, at about 730 km/hr. The Twin Otter aircraft flies at 4km above ground level at 130km/hr. AVIRIS has flown North America including Alaska, Hawaii, Europe, Brazil, and Argentina.</p><p>The objective of the AVIRIS project is to support advanced NASA science and applications research. AVIRIS uses imaging spectroscopy to detect, identify, measure, and monitor constituents and processes of the Earth's surface and atmosphere based on measured constituent absorption and scattering signatures. Science and applications research with AVIRIS data spans a wide range of discipline across the Earth system. </p><hr /><ul><li>Lorem ipsum dolor sit amet consectatur adipscing</li><li>Lorem ipsum dolor sit amet <strong>consectatur adipscing</strong></li><li>Lorem ipsum dolor sit amet consectatur adipscing</li></ul><p>Lorem ipsum dolor sit amet paragraph text</p><ol><li>Lorem ipsum dolor sit amet consectatur adipscing</li><li>Lorem ipsum dolor sit amet consectatur adipscing</li><li>Lorem ipsum dolor <strong>sit amet</strong> consectatur adipscing</li><li>Lorem <strong>ipsum dolor</strong> sit amet consectatur adipscing</li></ol><hr /><p>Lorem ipsum dolor sit amet consectatur adipscing</p>`
20
26
  }
21
27
  }
28
+
29
+ export const RichTextMedia = {
30
+ args: {
31
+ variant: 'large',
32
+ text: `<p data-block-key="5f55p">Description for it.</p><div class="richtext-image fullwidth"><img alt="Perseverance Looks Back at &amp;#x27;Bright Angel&amp;#x27;" height="480" loading="lazy" src="https://picsum.photos/640/480" width="640">
33
+ <div class="richtext-caption">
34
+ <div class="caption">One of the navigation cameras aboard NASAs Perseverance Mars rover captured this view looking back at the Bright Angel area on July 30, 2024.</div>
35
+ <span class="credit">Credit: NASA/JPL-Caltech</span>
36
+ <a class="caption-link" href="#">Full Image Details</a>
37
+ </div>
38
+ </div><p data-block-key="89jcq">More text and another image that&#x27;s full width (above)</p><p data-block-key="6jsp"></p><div class="richtext-image right"><img alt="Carbon Mapper Coalition&amp;#x27;s Tanager Satellite" height="336" loading="lazy" src="https://picsum.photos/640/336" width="640">
39
+ <div class="richtext-caption">
40
+ <div class="caption">This artists concept depicts one of the Carbon Mapper Coalitions Tanager satellites, the first of which launched on Aug. 16, 2024. Tanager-1 will use imaging spectrometer technology developed at JPL to measure greenhouse gas point-source emissions.</div>
41
+ <span class="credit">Credit: Planet Labs PBC</span>
42
+ <a class="caption-link" href="#">Full Image Details</a>
43
+ </div>
44
+ </div><p data-block-key="4409g">More text and something that&#x27;s right-aligned.</p><p data-block-key="bid36"></p><div class="richtext-image left"><img alt="Lecture Brings Galileo&amp;#x27;s Travels into Final Focus" height="350" loading="lazy" src="https://picsum.photos/640/350" width="640">
45
+ <div class="richtext-caption">
46
+ <div class="caption">Lecture Brings Galileo's Travels into Final Focus</div>
47
+ </div>
48
+ </div><p data-block-key="1f4rd">More text and something that&#x27;s left-aligned</p>`
49
+ }
50
+ }
@@ -63,8 +63,6 @@ export default defineComponent({
63
63
  if (!this.data?.embed) {
64
64
  return
65
65
  }
66
-
67
- // TODO: not using feature detect as that would require rewriting the html output from wagtail to set data-src instead of src
68
66
  // get the iframe in this component
69
67
  const iframe = this.$el.querySelector('iframe')
70
68
  if (iframe) {
@@ -20,7 +20,7 @@
20
20
  media="(min-width: 420px)"
21
21
  :srcset="theImage.screenMd?.url"
22
22
  />
23
- <source :data-srcset="theImage.screenSm?.url" />
23
+ <source :srcset="theImage.screenSm?.url" />
24
24
  <img
25
25
  class="object-cover w-full h-full"
26
26
  :src="theImage.src.url"
@@ -128,7 +128,7 @@ const standardsIste = computed(() => {
128
128
  >
129
129
  <div class="col-start-container lg:col-start-indent-col-2 col-end-container">
130
130
  <div class="MetaPanel-heading lg:grid grid-cols-12 col-end-container container">
131
- <div class="col-start-1 col-end-10 xl:col-end-9 pl-4 lg:pl-10 pr-6 py-6 lg:py-10">
131
+ <div class="col-start-1 col-end-9 xl:col-end-9 pl-4 lg:pl-10 pr-6 py-6 lg:py-10">
132
132
  <MetaPanelItems
133
133
  :theme="theme"
134
134
  :primary-subject="primarySubject"
@@ -138,8 +138,8 @@ const standardsIste = computed(() => {
138
138
  />
139
139
  </div>
140
140
  <div
141
- v-if="button"
142
- class="ThemeVariantLight col-start-10 col-end-13 pl-4 lg:pl-0 pt-4 pb-6 lg:pr-4 xl:pr-10 2xl:pr-0 lg:py-10 lg:text-right"
141
+ v-if="button && (standards?.length || $slots.metaInfo)"
142
+ class="ThemeVariantLight col-start-9 col-end-13 pl-4 lg:pl-0 pt-4 pb-6 lg:pr-4 xl:pr-10 2xl:pr-0 lg:py-10 lg:text-right"
143
143
  >
144
144
  <BaseButton
145
145
  variant="secondary"
@@ -164,7 +164,7 @@ const standardsIste = computed(() => {
164
164
  </div>
165
165
  </div>
166
166
  <div
167
- v-if="standards || $slots.metaInfo"
167
+ v-if="standards?.length || $slots.metaInfo"
168
168
  v-show="metaPanelOpen"
169
169
  class="MetaPanel-panel col-start-container lg:col-start-indent-col-2 col-end-bleed lg:grid grid-cols-subgrid bg-gray-light pb-3 lg:pb-6"
170
170
  >
@@ -176,11 +176,11 @@ const standardsIste = computed(() => {
176
176
  <slot name="metaInfo" />
177
177
  </div>
178
178
  <div
179
- v-if="standards"
179
+ v-if="standards?.length"
180
180
  class="pt-6 lg:pt-7"
181
181
  >
182
182
  <div
183
- class="text-subtitle mb-5"
183
+ class="ThemeVariantGray text-subtitle mb-5"
184
184
  :class="headingClass"
185
185
  >
186
186
  Standards
@@ -19,6 +19,7 @@
19
19
  <NavJumpMenuContent
20
20
  :key="index"
21
21
  :item="item"
22
+ v-bind="$attrs"
22
23
  />
23
24
  </NavSecondaryDropdown>
24
25
  </template>
@@ -41,17 +42,20 @@ import NavSecondary from './../NavSecondary/NavSecondary.vue'
41
42
  import NavSecondaryDropdown from './../NavSecondary/NavSecondaryDropdown.vue'
42
43
  import NavSecondaryLink from './../NavSecondary/NavSecondaryLink.vue'
43
44
  import NavJumpMenuContent from './../NavJumpMenu/NavJumpMenuContent.vue'
45
+ import type { BlockHeadingObject } from './../BlockHeading/BlockHeading.vue'
44
46
  import type { BlockData, BreadcrumbPathObject } from './../../interfaces'
45
47
  import { getHeadingId } from '../../utils/getHeadingId'
46
48
 
47
49
  interface NavJumpMenuProps {
48
50
  title?: string
49
51
  jumpLinks?: BreadcrumbPathObject[]
50
- blocks?: BlockData[]
52
+ blocks?: BlockData[] | BlockHeadingObject[]
51
53
  headingLevel?: string
52
54
  invert?: boolean
53
55
  enabled?: boolean
54
56
  dropdownText?: string
57
+ // stepsNumbering?: boolean
58
+ // stepClasses?: string
55
59
  }
56
60
 
57
61
  const props = withDefaults(defineProps<NavJumpMenuProps>(), {
@@ -63,6 +67,8 @@ const props = withDefaults(defineProps<NavJumpMenuProps>(), {
63
67
  invert: true,
64
68
  hidden: false,
65
69
  dropdownText: 'Jump to…'
70
+ // stepsNumbering: false,
71
+ // stepClasses: 'text-primary'
66
72
  })
67
73
 
68
74
  const NavJumpMenuRef = ref()
@@ -11,6 +11,12 @@
11
11
  :link-class="linkClass(child)"
12
12
  >
13
13
  <span>
14
+ <span
15
+ v-if="$attrs['steps-numbering']"
16
+ :class="$attrs['steps-classes']"
17
+ aria-hidden
18
+ >{{ `Step ${index + 1}:` }}</span
19
+ >
14
20
  {{ child.title }}
15
21
  </span>
16
22
  </BaseLink>
@@ -33,7 +39,6 @@ export default defineComponent({
33
39
  BaseLink
34
40
  },
35
41
  props: {
36
- // the tertiary nav item object that includes path, title, and children
37
42
  item: {
38
43
  type: Object,
39
44
  required: true
@@ -8,6 +8,7 @@ interface SearchInputProps {
8
8
  placeholder?: string
9
9
  autoFocus?: boolean
10
10
  defaultColors?: boolean
11
+ withButton?: boolean
11
12
  }
12
13
 
13
14
  // define props
@@ -16,10 +17,11 @@ const props = withDefaults(defineProps<SearchInputProps>(), {
16
17
  underlinedInputValue: undefined,
17
18
  placeholder: '',
18
19
  autoFocus: false,
19
- defaultColors: true
20
+ defaultColors: true,
21
+ withButton: false
20
22
  })
21
23
 
22
- const emit = defineEmits(['input', 'esc'])
24
+ const emit = defineEmits(['input', 'esc', 'submit'])
23
25
 
24
26
  const model = defineModel()
25
27
  const isFocused = ref(false)
@@ -67,20 +69,29 @@ onMounted(() => {
67
69
  <input
68
70
  ref="searchQueryRef"
69
71
  v-model="model"
70
- class="pl-14 focus:ring-2 relative z-10 w-full pr-5 text-lg bg-transparent border-0"
72
+ class="pl-14 h-full focus:ring-2 relative z-10 w-full px-5 text-sm md:text-base lg:text-lg bg-transparent border-0"
71
73
  :class="{
72
74
  'text-gray-dark': defaultColors,
73
75
  'py-1': underlinedInput,
74
- 'py-4': !underlinedInput
76
+ 'py-3.5 lg:py-5': !underlinedInput
75
77
  }"
76
78
  type="search"
77
79
  aria-label="Query"
78
80
  :placeholder="placeholder"
79
81
  @keydown.esc="emit('esc')"
82
+ @keydown.enter="emit('submit')"
80
83
  @input="emit('input', $event.target)"
81
84
  @focus="isFocused = true"
82
85
  @blur="isFocused = false"
83
86
  />
87
+ <button
88
+ v-if="withButton"
89
+ class="z-10 cursor-pointer bg-action p-4 lg:p-5 border border-white"
90
+ aria-label="Search resources"
91
+ @click="emit('submit')"
92
+ >
93
+ <IconSearch class="relative z-10 text-xl sm:text-2xl lg:text-3xl text-white" />
94
+ </button>
84
95
  </div>
85
96
  </template>
86
97
  <style lang="scss" scoped>
@@ -0,0 +1,99 @@
1
+ import { BlockLinkCardCarouselData } from './../../../components/BlockLinkCarousel/BlockLinkCarousel.stories.js'
2
+ import { EventsBlockLinkCarouselData } from './../../../components/BlockLinkCarousel/BlockLinkCarousel.stories'
3
+ import { AboutTheAuthorData } from './../../../components/AboutTheAuthor/AboutTheAuthor.stories'
4
+ import { BlockImageData } from './../../../components/BlockImage/BlockImage.stories'
5
+ import { BlockVideoData } from './../../../components/BlockVideo/BlockVideo.stories'
6
+ import { BlockVideoEmbedData } from './../../../components/BlockVideoEmbed/BlockVideoEmbed.stories'
7
+ import { BlockImageComparisonData } from './../../../components/BlockImageComparison/BlockImageComparison.stories'
8
+ import PageEduHome from './PageEduHome.vue'
9
+
10
+ export default {
11
+ title: 'Templates/EDU/PageEduHome',
12
+ component: PageEduHome,
13
+ tags: ['!autodocs'],
14
+ parameters: {
15
+ html: {
16
+ root: '#storyDecorator'
17
+ },
18
+ layout: 'fullscreen'
19
+ },
20
+ excludeStories: /.*Data$/
21
+ }
22
+
23
+ // stories
24
+ export const BaseStory = {
25
+ name: 'PageEduHome',
26
+ args: {
27
+ data: {
28
+ __typename: 'EDUHomePage',
29
+ title: 'EDU Homepage',
30
+ slug: 'edu-home',
31
+ url: '/',
32
+ lastPublishedAt: '2024-08-22T02:33:13.507206+00:00',
33
+ thumbnailImage: {
34
+ alt: '',
35
+ original: 'https://picsum.photos/512/288'
36
+ },
37
+ heroImage: {
38
+ // beach
39
+ src: {
40
+ url: 'https://picsum.photos/id/973/1800/1200',
41
+ width: 1800,
42
+ height: 1200
43
+ },
44
+ // lake
45
+ srcSet:
46
+ 'https://picsum.photos/id/865/768/548 768w, https://picsum.photos/id/865/1024/684 1024w, https://picsum.photos/id/865/1440/770 1440w, https://picsum.photos/id/865/1800/963 1800w',
47
+ // jungle
48
+ screenMd: {
49
+ url: 'https://picsum.photos/id/921/800/640'
50
+ },
51
+ // desert
52
+ screenSm: {
53
+ url: 'https://picsum.photos/id/247/640/900'
54
+ },
55
+ alt: 'Robotics detail page hero image'
56
+ },
57
+ heroText: 'Discover a universe of activities & resources',
58
+ hotTopics: [
59
+ {
60
+ page: {
61
+ title: 'Psyche Asteroid',
62
+ url: '/topic/'
63
+ }
64
+ },
65
+ {
66
+ page: {
67
+ title: 'Mars Rovers',
68
+ url: '/topic/'
69
+ }
70
+ },
71
+ {
72
+ page: {
73
+ title: 'Webb Space Telescope',
74
+ url: '/topic/'
75
+ }
76
+ },
77
+ {
78
+ page: {
79
+ title: 'NASA Pi Day',
80
+ url: '/topic/'
81
+ }
82
+ }
83
+ ],
84
+ body: [
85
+ {
86
+ blockType: 'HeadingBlock',
87
+ heading: 'EDU Home',
88
+ level: 'h2',
89
+ size: 'h2'
90
+ },
91
+ {
92
+ blockType: 'RichTextBlock',
93
+ value:
94
+ '<p>Lorem ipsum <a href="/missions/test-mission/">dolor</a> sit amet, consectetur adipiscing elit. Quisque vitae justo quis justo malesuada molestie. Cras sed tincidunt dui.</p><p>Integer imperdiet blandit neque vitae euismod. Nulla aliquet lacus nibh, vel tincidunt urna efficitur non. In et eros vitae ex posuere maximus quis eget urna. Suspendisse fringilla posuere velit sit amet posuere. Morbi malesuada bibendum vehicula. Donec faucibus ut erat ut mattis. Suspendisse ornare, quam at placerat cursus, dolor mi lacinia nunc, eget maximus augue nulla in dolor.</p>\n'
95
+ }
96
+ ]
97
+ }
98
+ }
99
+ }
@@ -0,0 +1,154 @@
1
+ <script setup lang="ts">
2
+ import { computed, reactive, ref } from 'vue'
3
+ import { useRouter } from 'vue-router'
4
+ import type { ImageObject, PageObject } from '../../../interfaces'
5
+ import SearchInput from './../../../components/SearchInput/SearchInput.vue'
6
+ import BlockStreamfield from './../../../components/BlockStreamfield/BlockStreamfield.vue'
7
+ import BaseLink from './../../../components/BaseLink/BaseLink.vue'
8
+
9
+ const router = useRouter()
10
+
11
+ interface PageEduHomeObject extends PageObject {
12
+ heroImage: ImageObject
13
+ heroText: string
14
+ hotTopics: {
15
+ page: PageObject
16
+ }[]
17
+ }
18
+
19
+ interface PageEduHomeProps {
20
+ data: PageEduHomeObject
21
+ }
22
+
23
+ // define props
24
+ const props = withDefaults(defineProps<PageEduHomeProps>(), {
25
+ data: undefined
26
+ })
27
+
28
+ const { data } = reactive(props)
29
+
30
+ const searchQuery = ref(undefined)
31
+ const image = computed(() => {
32
+ return data?.heroImage
33
+ })
34
+
35
+ const submitSearch = () => {
36
+ router.push({ path: '/edu/resources/', query: { query: searchQuery.value } })
37
+ }
38
+ </script>
39
+ <template>
40
+ <div
41
+ v-if="data"
42
+ class="PageEduHome ThemeVariantLight -nav-offset"
43
+ >
44
+ <div class="EduHero max-w-screen-3xl relative mx-auto">
45
+ <div class="absolute inset-0 z-10 bg-black">
46
+ <picture v-if="image?.src">
47
+ <source
48
+ media="(min-width: 768px)"
49
+ :srcset="image.srcSet"
50
+ />
51
+ <source
52
+ media="(min-width: 420px)"
53
+ :srcset="image.screenMd?.url"
54
+ />
55
+ <source :srcset="image.screenSm?.url" />
56
+ <img
57
+ class="md:object-right object-cover object-bottom w-full h-full"
58
+ :src="image.src.url"
59
+ :width="image.src.width"
60
+ :height="image.src.height"
61
+ :alt="image.alt"
62
+ />
63
+ </picture>
64
+ </div>
65
+ <div class="content-wrapper lg:flex lg:items-center relative z-20 w-full h-full">
66
+ <div
67
+ class="bg-gradient-to-b lg:bg-gradient-to-l from-transparent-w25 lg:from-transparent-w50 to-transparent-black-50 lg:to-transparent-black-50 absolute inset-0"
68
+ ></div>
69
+ <div class="text-contrast relative w-full text-white">
70
+ <div class="lg:py-0 pb-10 container pt-8 mx-auto">
71
+ <div class="lg:px-10 2xl:px-0 pt-30 lg:pt-16 lg:pb-18 px-4">
72
+ <h1
73
+ v-if="data.heroText"
74
+ class="lg:w-3/4 xl:w-3/4 xl:text-10xl lg:text-9xl text-7xl lg:tracking-tightest lg:leading-tighter mb-5 font-bold leading-tight"
75
+ >
76
+ {{ data.heroText }}
77
+ </h1>
78
+ <div class="md:w-4/5 lg:w-2/3 xl:w-1/2 w-full">
79
+ <SearchInput
80
+ v-model="searchQuery"
81
+ class="bg-white border-none"
82
+ placeholder="Search the K-12 resource library"
83
+ with-button
84
+ @submit="submitSearch()"
85
+ />
86
+ </div>
87
+ <div
88
+ v-if="data.hotTopics?.length"
89
+ class="md:flex flex-row mt-10"
90
+ >
91
+ <h2
92
+ class="text-subtitle mt-1 text-white font-semibold whitespace-nowrap mr-5 mb-3 md:mb-0 lg:mr-8"
93
+ >
94
+ Hot Topics
95
+ </h2>
96
+ <ul class="flex flex-row flex-wrap">
97
+ <li
98
+ v-for="(topic, index) in data.hotTopics"
99
+ :key="index"
100
+ class="mr-2 mb-2"
101
+ >
102
+ <BaseLink
103
+ variant="none"
104
+ :to="`/edu/resources?query=${topic.page?.title}`"
105
+ link-class="text-gray-dark whitespace-nowrap text-sm bg-[#99D1DF] font-extrabold rounded-full inline-block px-3 py-1 text-contrast-none hover:bg-action hover:text-white"
106
+ >
107
+ {{ topic.page?.title }}
108
+ </BaseLink>
109
+ </li>
110
+ </ul>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ </div>
115
+ </div>
116
+ </div>
117
+
118
+ <div
119
+ v-if="data.body?.length"
120
+ class="my-10 lg:my-18"
121
+ >
122
+ <BlockStreamfield
123
+ v-if="data.body?.length"
124
+ :data="data.body"
125
+ />
126
+ </div>
127
+ </div>
128
+ </template>
129
+ <style lang="scss">
130
+ .PageEduHome {
131
+ .EduHero {
132
+ .content-wrapper {
133
+ @screen lg {
134
+ min-height: 548px; // maintains 1440x770 aspect ratio
135
+ }
136
+
137
+ @screen xl {
138
+ min-height: 684px; // maintains 1440x770 aspect ratio
139
+ }
140
+
141
+ @screen 2xl {
142
+ min-height: 770px; // 1440x770
143
+ }
144
+
145
+ @screen 3xl {
146
+ min-height: 963px; // maintains 1440x770 aspect ratio
147
+ }
148
+ input::placeholder {
149
+ @apply font-medium text-gray-dark opacity-80;
150
+ }
151
+ }
152
+ }
153
+ }
154
+ </style>
@@ -252,7 +252,8 @@ const consolidatedSections = computed((): EduLessonSectionObject[] => {
252
252
  heading: staticSectionHeadings.value ? staticSectionHeadings.value[section] : undefined,
253
253
  blocks: section !== 'materials' && section !== 'procedures' ? data[section] : undefined,
254
254
  text: section === 'materials' ? data[section] : undefined,
255
- procedures: section === 'procedures' ? data[section] : undefined
255
+ procedures: section === 'procedures' ? data[section] : undefined,
256
+ image: data[`${section}Image`]
256
257
  })
257
258
  }
258
259
  // include custom "after_" sections
@@ -271,12 +272,11 @@ const consolidatedSections = computed((): EduLessonSectionObject[] => {
271
272
  return filteredSections
272
273
  })
273
274
  const computedClass = computed((): string => {
274
- if (heroInline.value || heroEmpty.value) {
275
- return 'pt-5 lg:pt-12'
276
- } else if (!heroInline.value) {
275
+ if (heroTitle.value) {
277
276
  return '-nav-offset'
277
+ } else {
278
+ return 'pt-5 lg:pt-12'
278
279
  }
279
- return ''
280
280
  })
281
281
  </script>
282
282
  <template>
@@ -355,7 +355,6 @@ const computedClass = computed((): string => {
355
355
  :constrain="data.heroConstrain"
356
356
  />
357
357
 
358
- <!-- TODO: put this in a component (exclude layout though) -->
359
358
  <LayoutHelper
360
359
  v-if="!heroEmpty && heroInline && data.hero?.length"
361
360
  class="lg:mb-22 mb-10"