@explorer-1/vue 0.0.0

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 (371) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/components.d.ts +215 -0
  4. package/index.html +18 -0
  5. package/lib/main.ts +78 -0
  6. package/package.json +54 -0
  7. package/postcss.config.js +7 -0
  8. package/public/edu/.gitkeep +0 -0
  9. package/public/edu/explorer-1/bg-stars-edu.png +0 -0
  10. package/public/edu/explorer-1/bg-stars.jpg +0 -0
  11. package/public/explorer-1/bg-stars-edu.png +0 -0
  12. package/public/explorer-1/bg-stars.jpg +0 -0
  13. package/src/App.vue +30 -0
  14. package/src/assets/fonts/README.md +12 -0
  15. package/src/assets/fonts/archivo-narrow/ArchivoNarrow-Bold.woff2 +0 -0
  16. package/src/assets/fonts/archivo-narrow/ArchivoNarrow-BoldItalic.woff2 +0 -0
  17. package/src/assets/fonts/archivo-narrow/ArchivoNarrow-SemiBold.woff2 +0 -0
  18. package/src/assets/fonts/archivo-narrow/ArchivoNarrow-SemiBoldItalic.woff2 +0 -0
  19. package/src/assets/fonts/metropolis/Metropolis-Bold.woff2 +0 -0
  20. package/src/assets/fonts/metropolis/Metropolis-BoldItalic.woff2 +0 -0
  21. package/src/assets/fonts/metropolis/Metropolis-ExtraBold.woff2 +0 -0
  22. package/src/assets/fonts/metropolis/Metropolis-Medium.woff2 +0 -0
  23. package/src/assets/fonts/metropolis/Metropolis-MediumItalic.woff2 +0 -0
  24. package/src/assets/fonts/metropolis/Metropolis-Regular.woff2 +0 -0
  25. package/src/assets/fonts/metropolis/Metropolis-RegularItalic.woff2 +0 -0
  26. package/src/assets/fonts/metropolis/Metropolis-SemiBold.woff2 +0 -0
  27. package/src/assets/fonts/metropolis/Metropolis-SemiBoldItalic.woff2 +0 -0
  28. package/src/assets/scss/styles.scss +1 -0
  29. package/src/components/AsteroidWatchWidget/AsteroidWatchWidget.stories.js +156 -0
  30. package/src/components/AsteroidWatchWidget/AsteroidWatchWidget.vue +156 -0
  31. package/src/components/BackToTop/BackToTop.stories.js +24 -0
  32. package/src/components/BackToTop/BackToTop.vue +76 -0
  33. package/src/components/BaseAudio/BaseAudio.stories.js +29 -0
  34. package/src/components/BaseAudio/BaseAudio.vue +359 -0
  35. package/src/components/BaseButton/BaseButton.stories.ts +65 -0
  36. package/src/components/BaseButton/BaseButton.vue +114 -0
  37. package/src/components/BaseCheckboxGroup/BaseCheckboxGroup.stories.mdx +68 -0
  38. package/src/components/BaseCheckboxGroup/BaseCheckboxGroup.vue +101 -0
  39. package/src/components/BaseHeading/BaseHeading.stories.js +75 -0
  40. package/src/components/BaseHeading/BaseHeading.vue +58 -0
  41. package/src/components/BaseImage/BaseImage.stories.ts +52 -0
  42. package/src/components/BaseImage/BaseImage.vue +120 -0
  43. package/src/components/BaseImageCaption/BaseImageCaption.stories.js +27 -0
  44. package/src/components/BaseImageCaption/BaseImageCaption.vue +51 -0
  45. package/src/components/BaseImagePlaceholder/BaseImagePlaceholder.stories.js +73 -0
  46. package/src/components/BaseImagePlaceholder/BaseImagePlaceholder.vue +90 -0
  47. package/src/components/BaseLightboxCloseButton/BaseLightboxCloseButton.vue +45 -0
  48. package/src/components/BaseLightboxOpenButton/BaseLightboxOpenButton.vue +46 -0
  49. package/src/components/BaseLink/BaseLink.stories.js +47 -0
  50. package/src/components/BaseLink/BaseLink.vue +227 -0
  51. package/src/components/BaseModal/BaseModal.stories.js +90 -0
  52. package/src/components/BaseModal/BaseModal.vue +54 -0
  53. package/src/components/BaseModal/BaseModalDialog.vue +59 -0
  54. package/src/components/BasePlaceholder/BasePlaceholder.stories.js +29 -0
  55. package/src/components/BasePlaceholder/BasePlaceholder.vue +30 -0
  56. package/src/components/BaseRadioGroup/BaseRadioGroup.stories.mdx +68 -0
  57. package/src/components/BaseRadioGroup/BaseRadioGroup.vue +102 -0
  58. package/src/components/BaseSwimlane/BaseSwimlane.stories.mdx +64 -0
  59. package/src/components/BaseSwimlane/BaseSwimlane.vue +204 -0
  60. package/src/components/BaseTag/BaseTag.stories.js +34 -0
  61. package/src/components/BaseTag/BaseTag.vue +36 -0
  62. package/src/components/BaseTimer/BaseTimer.stories.js +78 -0
  63. package/src/components/BaseTimer/BaseTimer.test.js +15 -0
  64. package/src/components/BaseTimer/BaseTimer.vue +270 -0
  65. package/src/components/BaseUnitToggle/BaseUnitToggle.stories.js +86 -0
  66. package/src/components/BaseUnitToggle/BaseUnitToggle.test.js +26 -0
  67. package/src/components/BaseUnitToggle/BaseUnitToggle.vue +255 -0
  68. package/src/components/BaseVideo/BaseVideo.stories.js +31 -0
  69. package/src/components/BaseVideo/BaseVideo.vue +73 -0
  70. package/src/components/BlockAnchor/BlockAnchor.vue +38 -0
  71. package/src/components/BlockAudio/BlockAudio.stories.js +29 -0
  72. package/src/components/BlockAudio/BlockAudio.vue +78 -0
  73. package/src/components/BlockCard/BlockCard.stories.js +24 -0
  74. package/src/components/BlockCard/BlockCard.vue +88 -0
  75. package/src/components/BlockCardGroup/BlockCardGroup.stories.js +71 -0
  76. package/src/components/BlockCardGroup/BlockCardGroup.vue +61 -0
  77. package/src/components/BlockCircleImageCard/BlockCircleImageCard.stories.js +55 -0
  78. package/src/components/BlockCircleImageCard/BlockCircleImageCard.vue +120 -0
  79. package/src/components/BlockCta/BlockCta.stories.js +35 -0
  80. package/src/components/BlockCta/BlockCta.vue +55 -0
  81. package/src/components/BlockHeading/BlockHeading.stories.js +22 -0
  82. package/src/components/BlockHeading/BlockHeading.vue +27 -0
  83. package/src/components/BlockIframeEmbed/BlockIframeEmbed.stories.js +40 -0
  84. package/src/components/BlockIframeEmbed/BlockIframeEmbed.vue +84 -0
  85. package/src/components/BlockImage/BlockImage.stories.js +137 -0
  86. package/src/components/BlockImage/BlockImage.vue +48 -0
  87. package/src/components/BlockImage/BlockImageFullBleed.vue +119 -0
  88. package/src/components/BlockImage/BlockImageStandard.vue +106 -0
  89. package/src/components/BlockImageCarousel/BlockImageCarousel.stories.js +108 -0
  90. package/src/components/BlockImageCarousel/BlockImageCarousel.vue +201 -0
  91. package/src/components/BlockImageCarouselItem/BlockImageCarouselItem.stories.js +63 -0
  92. package/src/components/BlockImageCarouselItem/BlockImageCarouselItem.vue +120 -0
  93. package/src/components/BlockImageComparison/BlockImageComparison.stories.js +46 -0
  94. package/src/components/BlockImageComparison/BlockImageComparison.vue +59 -0
  95. package/src/components/BlockImageGallery/BlockImageGallery.stories.js +55 -0
  96. package/src/components/BlockImageGallery/BlockImageGallery.vue +128 -0
  97. package/src/components/BlockInlineImage/BlockInlineImage.stories.js +68 -0
  98. package/src/components/BlockInlineImage/BlockInlineImage.vue +124 -0
  99. package/src/components/BlockKeyPoints/BlockKeyPoints.stories.js +28 -0
  100. package/src/components/BlockKeyPoints/BlockKeyPoints.vue +48 -0
  101. package/src/components/BlockLinkCard/BlockLinkCard.stories.js +102 -0
  102. package/src/components/BlockLinkCard/BlockLinkCard.vue +197 -0
  103. package/src/components/BlockLinkCarousel/BlockLinkCarousel.stories.js +217 -0
  104. package/src/components/BlockLinkCarousel/BlockLinkCarousel.vue +68 -0
  105. package/src/components/BlockLinkTile/BlockLinkTile.stories.js +72 -0
  106. package/src/components/BlockLinkTile/BlockLinkTile.vue +193 -0
  107. package/src/components/BlockListCards/BlockListCards.stories.js +69 -0
  108. package/src/components/BlockListCards/BlockListCards.vue +129 -0
  109. package/src/components/BlockQuote/BlockQuote.stories.js +84 -0
  110. package/src/components/BlockQuote/BlockQuote.vue +87 -0
  111. package/src/components/BlockRelatedLinks/BlockRelatedLinks.stories.js +60 -0
  112. package/src/components/BlockRelatedLinks/BlockRelatedLinks.vue +77 -0
  113. package/src/components/BlockRelatedLinks/RelatedLink.vue +85 -0
  114. package/src/components/BlockStreamfield/BlockStreamfield.stories.js +88 -0
  115. package/src/components/BlockStreamfield/BlockStreamfield.vue +333 -0
  116. package/src/components/BlockTable/BlockTable.stories.js +20 -0
  117. package/src/components/BlockTable/BlockTable.vue +73 -0
  118. package/src/components/BlockTeaser/BlockTeaser.stories.js +74 -0
  119. package/src/components/BlockTeaser/BlockTeaser.test.js +12 -0
  120. package/src/components/BlockTeaser/BlockTeaser.vue +174 -0
  121. package/src/components/BlockText/BlockText.stories.js +21 -0
  122. package/src/components/BlockText/BlockText.vue +44 -0
  123. package/src/components/BlockTwitterEmbed/BlockTwitterEmbed.stories.js +19 -0
  124. package/src/components/BlockTwitterEmbed/BlockTwitterEmbed.vue +61 -0
  125. package/src/components/BlockVideo/BlockVideo.stories.js +23 -0
  126. package/src/components/BlockVideo/BlockVideo.vue +41 -0
  127. package/src/components/BlockVideoEmbed/BlockVideoEmbed.stories.js +20 -0
  128. package/src/components/BlockVideoEmbed/BlockVideoEmbed.vue +71 -0
  129. package/src/components/CalendarButton/CalendarButton.stories.js +36 -0
  130. package/src/components/CalendarButton/CalendarButton.vue +86 -0
  131. package/src/components/DetailHeadline/DetailHeadline.stories.js +48 -0
  132. package/src/components/DetailHeadline/DetailHeadline.vue +143 -0
  133. package/src/components/DsnWidget/DsnWidget.stories.js +29 -0
  134. package/src/components/DsnWidget/DsnWidget.vue +96 -0
  135. package/src/components/EventCard/EventCard.vue +188 -0
  136. package/src/components/EventDetailHero/EventDetailHero.stories.js +53 -0
  137. package/src/components/EventDetailHero/EventDetailHero.vue +64 -0
  138. package/src/components/FormContact/FormContact.stories.js +16 -0
  139. package/src/components/FormContact/FormContact.vue +202 -0
  140. package/src/components/FormNewsletterSignup/FormNewsletterSignup.stories.js +16 -0
  141. package/src/components/FormNewsletterSignup/FormNewsletterSignup.vue +355 -0
  142. package/src/components/HeroLarge/HeroLarge.stories.js +46 -0
  143. package/src/components/HeroLarge/HeroLarge.vue +93 -0
  144. package/src/components/HeroListingIndex/HeroListingIndex.stories.js +156 -0
  145. package/src/components/HeroListingIndex/HeroListingIndex.vue +80 -0
  146. package/src/components/HeroMedia/HeroMedia.stories.js +135 -0
  147. package/src/components/HeroMedia/HeroMedia.vue +174 -0
  148. package/src/components/HeroMedium/HeroMedium.stories.js +73 -0
  149. package/src/components/HeroMedium/HeroMedium.vue +166 -0
  150. package/src/components/HomepageCarousel/HomepageCarousel.stories.js +112 -0
  151. package/src/components/HomepageCarousel/HomepageCarousel.vue +382 -0
  152. package/src/components/HomepageCarouselItem/HomepageCarouselItem.stories.js +60 -0
  153. package/src/components/HomepageCarouselItem/HomepageCarouselItem.vue +168 -0
  154. package/src/components/HomepageEmbedBlock/HomepageEmbedBlock.stories.js +35 -0
  155. package/src/components/HomepageEmbedBlock/HomepageEmbedBlock.vue +39 -0
  156. package/src/components/HomepageFeaturedRobot/HomepageFeaturedRobot.stories.js +93 -0
  157. package/src/components/HomepageFeaturedRobot/HomepageFeaturedRobot.vue +129 -0
  158. package/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.stories.js +153 -0
  159. package/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.vue +282 -0
  160. package/src/components/HomepageMissionsCarousel/HomepageMissionsCarouselItem.vue +143 -0
  161. package/src/components/HomepageStats/HomepageStats.stories.js +155 -0
  162. package/src/components/HomepageStats/HomepageStats.vue +362 -0
  163. package/src/components/HomepageTeaserBlock/HomepageTeaserBlock.stories.js +90 -0
  164. package/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue +156 -0
  165. package/src/components/HomepageTeaserBlock/HomepageTeaserBlockCardImage.vue +58 -0
  166. package/src/components/Icons/Icon360.vue +29 -0
  167. package/src/components/Icons/IconArrow.vue +26 -0
  168. package/src/components/Icons/IconArrows.vue +43 -0
  169. package/src/components/Icons/IconAudio.vue +27 -0
  170. package/src/components/Icons/IconBook.vue +21 -0
  171. package/src/components/Icons/IconBookUser.vue +21 -0
  172. package/src/components/Icons/IconBriefcase.vue +21 -0
  173. package/src/components/Icons/IconCalendar.vue +25 -0
  174. package/src/components/Icons/IconCaret.vue +26 -0
  175. package/src/components/Icons/IconCheckbox.vue +26 -0
  176. package/src/components/Icons/IconCheckboxSelected.vue +35 -0
  177. package/src/components/Icons/IconClose.vue +27 -0
  178. package/src/components/Icons/IconCloseLightbox.vue +25 -0
  179. package/src/components/Icons/IconDownload.vue +31 -0
  180. package/src/components/Icons/IconDropdown.vue +25 -0
  181. package/src/components/Icons/IconEnvelope.vue +21 -0
  182. package/src/components/Icons/IconExpand.vue +28 -0
  183. package/src/components/Icons/IconExternal.vue +25 -0
  184. package/src/components/Icons/IconFilter.vue +25 -0
  185. package/src/components/Icons/IconForwardTen.vue +38 -0
  186. package/src/components/Icons/IconGrid.vue +25 -0
  187. package/src/components/Icons/IconHand.vue +21 -0
  188. package/src/components/Icons/IconInfo.vue +26 -0
  189. package/src/components/Icons/IconLink.vue +27 -0
  190. package/src/components/Icons/IconList.vue +25 -0
  191. package/src/components/Icons/IconLocation.vue +37 -0
  192. package/src/components/Icons/IconMagnifyingGlass.vue +21 -0
  193. package/src/components/Icons/IconMedal.vue +21 -0
  194. package/src/components/Icons/IconMenu.vue +27 -0
  195. package/src/components/Icons/IconMinus.vue +26 -0
  196. package/src/components/Icons/IconMute.vue +27 -0
  197. package/src/components/Icons/IconNext.vue +25 -0
  198. package/src/components/Icons/IconPause.vue +28 -0
  199. package/src/components/Icons/IconPlay.vue +28 -0
  200. package/src/components/Icons/IconPlus.vue +25 -0
  201. package/src/components/Icons/IconPrev.vue +25 -0
  202. package/src/components/Icons/IconRewindTen.vue +42 -0
  203. package/src/components/Icons/IconSearch.vue +25 -0
  204. package/src/components/Icons/IconShare.vue +30 -0
  205. package/src/components/Icons/IconSlideshow.vue +30 -0
  206. package/src/components/Icons/IconSocialEmail.vue +26 -0
  207. package/src/components/Icons/IconSocialFacebook.vue +26 -0
  208. package/src/components/Icons/IconSocialGoogleClassroom.vue +26 -0
  209. package/src/components/Icons/IconSocialInstagram.vue +35 -0
  210. package/src/components/Icons/IconSocialPinterest.vue +26 -0
  211. package/src/components/Icons/IconSocialReddit.vue +25 -0
  212. package/src/components/Icons/IconSocialTwitter.vue +25 -0
  213. package/src/components/Icons/IconSocialYoutube.vue +35 -0
  214. package/src/components/Icons/IconStop.vue +27 -0
  215. package/src/components/Icons/IconTime.vue +25 -0
  216. package/src/components/Icons/IconUniversity.vue +21 -0
  217. package/src/components/Icons/IconUser.vue +26 -0
  218. package/src/components/Icons/IconVolume.vue +27 -0
  219. package/src/components/Icons/Icons.stories.ts +440 -0
  220. package/src/components/ImageDetailContextImage/ImageDetailContextImage.vue +125 -0
  221. package/src/components/LayoutHelper/LayoutHelper.vue +38 -0
  222. package/src/components/LoadingTransition/LoadingTransition.vue +48 -0
  223. package/src/components/LogoCaltech/LogoCaltech.stories.js +39 -0
  224. package/src/components/LogoCaltech/LogoCaltech.vue +29 -0
  225. package/src/components/LogoTribrand/LogoTribrand.stories.js +76 -0
  226. package/src/components/LogoTribrand/LogoTribrand.vue +93 -0
  227. package/src/components/MissionDetailAbout/MissionDetailAbout.stories.js +70 -0
  228. package/src/components/MissionDetailAbout/MissionDetailAbout.vue +204 -0
  229. package/src/components/MissionDetailHero/MissionDetailHero.stories.js +303 -0
  230. package/src/components/MissionDetailHero/MissionDetailHero.vue +292 -0
  231. package/src/components/MissionDetailHighlights/MissionDetailHighlights.stories.js +278 -0
  232. package/src/components/MissionDetailHighlights/MissionDetailHighlights.vue +332 -0
  233. package/src/components/MissionDetailHighlights/MissionDetailHighlightsCarousel.vue +160 -0
  234. package/src/components/MissionDetailHighlights/MissionDetailHighlightsCarouselItem.vue +123 -0
  235. package/src/components/MissionDetailInlineImage/MissionDetailInlineImage.stories.js +43 -0
  236. package/src/components/MissionDetailInlineImage/MissionDetailInlineImage.vue +97 -0
  237. package/src/components/MissionDetailStats/DistanceStats.test.js +133 -0
  238. package/src/components/MissionDetailStats/DistanceStats.vue +250 -0
  239. package/src/components/MissionDetailStats/MissionDetailStats.stories.js +95 -0
  240. package/src/components/MissionDetailStats/MissionDetailStats.test.js +23 -0
  241. package/src/components/MissionDetailStats/MissionDetailStats.vue +187 -0
  242. package/src/components/MissionDetailStats/MissionDetailStatsMicro.vue +52 -0
  243. package/src/components/MissionDetailStats/MissionDetailStatsMini.vue +109 -0
  244. package/src/components/MissionDetailStreamfield/MissionDetailStreamfield.stories.js +55 -0
  245. package/src/components/MissionDetailStreamfield/MissionDetailStreamfield.vue +95 -0
  246. package/src/components/MixinAnimationCaret/MixinAnimationCaret.stories.ts +24 -0
  247. package/src/components/MixinAnimationCaret/MixinAnimationCaret.vue +81 -0
  248. package/src/components/MixinCarousel/MixinCarousel.docs.mdx +33 -0
  249. package/src/components/MixinCarousel/MixinCarousel.stories.js +53 -0
  250. package/src/components/MixinCarousel/MixinCarousel.vue +236 -0
  251. package/src/components/MixinDropdownToggle/MixinDropdownToggle.vue +53 -0
  252. package/src/components/MixinFancybox/MixinFancybox.vue +405 -0
  253. package/src/components/MixinFancybox/MixinFancyboxOpenButton.vue +35 -0
  254. package/src/components/MixinVideoBg/MixinVideoBg.stories.js +23 -0
  255. package/src/components/MixinVideoBg/MixinVideoBg.vue +39 -0
  256. package/src/components/NavDesktop/NavDesktop.stories.js +254 -0
  257. package/src/components/NavDesktop/NavDesktop.vue +355 -0
  258. package/src/components/NavDesktop/NavDesktopDropdown.vue +201 -0
  259. package/src/components/NavDesktop/NavDesktopDropdownContent.vue +87 -0
  260. package/src/components/NavDesktop/NavDesktopDropdownMore.vue +112 -0
  261. package/src/components/NavDesktop/NavDesktopTopHat.vue +56 -0
  262. package/src/components/NavHeading/NavHeading.stories.js +23 -0
  263. package/src/components/NavHeading/NavHeading.vue +40 -0
  264. package/src/components/NavHighlight/NavHighlight.stories.js +42 -0
  265. package/src/components/NavHighlight/NavHighlight.vue +67 -0
  266. package/src/components/NavLinkList/NavLinkList.stories.js +46 -0
  267. package/src/components/NavLinkList/NavLinkList.vue +66 -0
  268. package/src/components/NavLogoLinks/NavLogoLinks.stories.js +22 -0
  269. package/src/components/NavLogoLinks/NavLogoLinks.vue +57 -0
  270. package/src/components/NavMobile/NavMobile.stories.js +231 -0
  271. package/src/components/NavMobile/NavMobile.vue +280 -0
  272. package/src/components/NavMobile/NavMobileDropdown.vue +175 -0
  273. package/src/components/NavMobile/NavMobileLink.vue +69 -0
  274. package/src/components/NavMobile/NavMobileSecondaryDropdown.vue +124 -0
  275. package/src/components/NavSearchForm/NavSearchForm.stories.js +13 -0
  276. package/src/components/NavSearchForm/NavSearchForm.vue +102 -0
  277. package/src/components/NavSecondary/NavSecondary.stories.js +24 -0
  278. package/src/components/NavSecondary/NavSecondary.vue +191 -0
  279. package/src/components/NavSecondary/NavSecondaryDropdown.vue +181 -0
  280. package/src/components/NavSecondary/NavSecondaryDropdownContent.vue +140 -0
  281. package/src/components/NavSecondary/NavSecondaryLink.vue +62 -0
  282. package/src/components/NavSocial/NavSocial.stories.js +20 -0
  283. package/src/components/NavSocial/NavSocial.vue +97 -0
  284. package/src/components/NewsDetailMediaContact/NewsDetailMediaContact.stories.js +60 -0
  285. package/src/components/NewsDetailMediaContact/NewsDetailMediaContact.test.js +30 -0
  286. package/src/components/NewsDetailMediaContact/NewsDetailMediaContact.vue +73 -0
  287. package/src/components/ParallaxContainer/ParallaxContainer.stories.js +47 -0
  288. package/src/components/ParallaxContainer/ParallaxContainer.vue +76 -0
  289. package/src/components/ParallaxElement/ParallaxElement.vue +25 -0
  290. package/src/components/PastEventsCarousel/PastEventsCarousel.vue +86 -0
  291. package/src/components/PodcastEpisodeCard/PodcastEpisodeCard.vue +251 -0
  292. package/src/components/PodcastSeriesCarousel/PodcastSeriesCarousel.stories.js +235 -0
  293. package/src/components/PodcastSeriesCarousel/PodcastSeriesCarousel.vue +171 -0
  294. package/src/components/ProfileDetailSectionGroup/ProfileDetailSectionGroup.vue +84 -0
  295. package/src/components/RoboticsDetailStats/RoboticsDetailStats.stories.js +97 -0
  296. package/src/components/RoboticsDetailStats/RoboticsDetailStats.test.js +21 -0
  297. package/src/components/RoboticsDetailStats/RoboticsDetailStats.vue +217 -0
  298. package/src/components/RoboticsDetailStats/RoboticsDetailStatsMini.vue +182 -0
  299. package/src/components/SearchFilterGroup/SearchFilterGroup.stories.js +59 -0
  300. package/src/components/SearchFilterGroup/SearchFilterGroup.vue +221 -0
  301. package/src/components/SearchInput/SearchInput.stories.js +35 -0
  302. package/src/components/SearchInput/SearchInput.vue +93 -0
  303. package/src/components/SearchPagination/SearchPagination.stories.js +55 -0
  304. package/src/components/SearchPagination/SearchPagination.vue +173 -0
  305. package/src/components/SearchResultCard/SearchResultCard.stories.js +57 -0
  306. package/src/components/SearchResultCard/SearchResultCard.vue +282 -0
  307. package/src/components/SearchResultGridItem/SearchResultGridItem.stories.js +70 -0
  308. package/src/components/SearchResultGridItem/SearchResultGridItem.vue +140 -0
  309. package/src/components/SearchResultsList/SearchResultsList.vue +183 -0
  310. package/src/components/SearchSelectMenu/SearchSelectMenu.stories.js +25 -0
  311. package/src/components/SearchSelectMenu/SearchSelectMenu.vue +86 -0
  312. package/src/components/ShareButtons/ShareButtons.stories.js +16 -0
  313. package/src/components/ShareButtons/ShareButtons.vue +132 -0
  314. package/src/components/ShareButtonsEdu/ShareButtonsEdu.stories.js +14 -0
  315. package/src/components/ShareButtonsEdu/ShareButtonsEdu.vue +215 -0
  316. package/src/components/SkipLink/SkipLink.stories.js +9 -0
  317. package/src/components/SkipLink/SkipLink.vue +53 -0
  318. package/src/components/SwimlaneCTA/SwimlaneCTA.stories.mdx +77 -0
  319. package/src/components/SwimlaneCTA/SwimlaneCTA.vue +281 -0
  320. package/src/components/TheFooter/TheFooter.stories.js +602 -0
  321. package/src/components/TheFooter/TheFooter.vue +228 -0
  322. package/src/components/TheFooter/TheFooterSignUp.vue +61 -0
  323. package/src/components/ThumbnailCarousel/ThumbnailCarousel.stories.js +106 -0
  324. package/src/components/ThumbnailCarousel/ThumbnailCarousel.vue +76 -0
  325. package/src/components/TopicDetailMissionCarousel/TopicDetailMissionCarousel.stories.js +93 -0
  326. package/src/components/TopicDetailMissionCarousel/TopicDetailMissionCarousel.vue +68 -0
  327. package/src/components/TopicDetailMissionCarouselItem/TopicDetailMissionCarouselItem.stories.js +38 -0
  328. package/src/components/TopicDetailMissionCarouselItem/TopicDetailMissionCarouselItem.vue +104 -0
  329. package/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.stories.js +84 -0
  330. package/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.vue +112 -0
  331. package/src/components/TopicDetailMore/TopicDetailMore.stories.js +221 -0
  332. package/src/components/TopicDetailMore/TopicDetailMore.vue +124 -0
  333. package/src/components/TopicDetailMore/TopicDetailMoreVisibility.vue +51 -0
  334. package/src/components/TopicDetailMoreItem/TopicDetailMoreItem.stories.js +116 -0
  335. package/src/components/TopicDetailMoreItem/TopicDetailMoreItem.vue +130 -0
  336. package/src/components/TopicDetailStreamfield/TopicDetailStreamfield.stories.js +34 -0
  337. package/src/components/TopicDetailStreamfield/TopicDetailStreamfield.vue +98 -0
  338. package/src/components/YearTicker/YearTicker.stories.js +37 -0
  339. package/src/components/YearTicker/YearTicker.vue +132 -0
  340. package/src/docs/foundation/DynamicTokens.vue +106 -0
  341. package/src/docs/foundation/FontVariants.vue +80 -0
  342. package/src/docs/foundation/color.docs.mdx +112 -0
  343. package/src/docs/foundation/grid.docs.mdx +189 -0
  344. package/src/docs/foundation/grid.stories.js +263 -0
  345. package/src/docs/foundation/grid_layouthelpers.docs.mdx +78 -0
  346. package/src/docs/foundation/grid_layouthelpers.stories.js +53 -0
  347. package/src/docs/foundation/themes.docs.mdx +71 -0
  348. package/src/docs/foundation/themes.stories.js +63 -0
  349. package/src/docs/foundation/typography.docs.mdx +50 -0
  350. package/src/docs/foundation/typography.stories.js +119 -0
  351. package/src/interfaces.ts +129 -0
  352. package/src/main.ts +34 -0
  353. package/src/store/header.ts +40 -0
  354. package/src/store/theme.ts +27 -0
  355. package/src/templates/PageContent/PageContent.stories.js +92 -0
  356. package/src/templates/PageContent/PageContent.vue +140 -0
  357. package/src/templates/PageEventDetail/PageEventDetail.stories.js +104 -0
  358. package/src/templates/PageEventDetail/PageEventDetail.vue +358 -0
  359. package/src/templates/PageNewsDetail/PageNewsDetail.stories.js +158 -0
  360. package/src/templates/PageNewsDetail/PageNewsDetail.vue +242 -0
  361. package/src/templates/edu/PageEduNewsDetail.stories.js +64 -0
  362. package/src/templates/edu/PageEduNewsDetail.vue +155 -0
  363. package/src/templates/www/HomePage/HomePage.vue +30 -0
  364. package/src/utils/dayjs.js +32 -0
  365. package/src/utils/filters.js +33 -0
  366. package/src/utils/mixins.ts +353 -0
  367. package/src/vite-env.d.ts +1 -0
  368. package/tailwind.config.js +24 -0
  369. package/tsconfig.json +29 -0
  370. package/tsconfig.node.json +11 -0
  371. package/vite.config.ts +55 -0
@@ -0,0 +1,80 @@
1
+ <template>
2
+ <div class="Fonts md:grid-cols-2 grid gap-2 mt-4">
3
+ <div>
4
+ <h3
5
+ id="primary"
6
+ class="inline-block align-top mr-4 font-primary"
7
+ >
8
+ Metropolis
9
+ <br />
10
+ <code class="text-base">.font-primary</code>
11
+ </h3>
12
+ <ol class="list-none inline-block">
13
+ <li>
14
+ <span class="leading-loose">
15
+ <span class="capitalize font-primary font-light"> Metropolis light </span>
16
+ <code>.font-light</code>
17
+ </span>
18
+ </li>
19
+ <li>
20
+ <span class="leading-loose">
21
+ <span class="capitalize font-primary font-normal"> Metropolis normal </span>
22
+ <code>.font-normal</code>
23
+ </span>
24
+ </li>
25
+ <li>
26
+ <span class="leading-loose">
27
+ <span class="capitalize font-primary font-medium"> Metropolis medium </span>
28
+ <code>.font-medium</code>
29
+ </span>
30
+ </li>
31
+ <li>
32
+ <span class="leading-loose">
33
+ <span class="capitalize font-primary font-semibold"> Metropolis semi bold </span>
34
+ <code>.font-semibold</code>
35
+ </span>
36
+ </li>
37
+ <li>
38
+ <span class="leading-loose">
39
+ <span class="capitalize font-primary font-bold">Metropolis bold</span>
40
+ <code>.font-bold</code>
41
+ </span>
42
+ </li>
43
+ <li>
44
+ <span class="leading-loose">
45
+ <span class="capitalize font-primary font-extrabold"> Metropolis extra bold </span>
46
+ <code>.font-extrabold</code>
47
+ </span>
48
+ </li>
49
+ </ol>
50
+ </div>
51
+ <div>
52
+ <h3
53
+ id="secondary"
54
+ class="inline-block align-top mr-4 font-secondary"
55
+ >
56
+ Archivo Narrow
57
+ <br />
58
+ <code class="text-base">.font-secondary</code>
59
+ </h3>
60
+ <ol class="list-none inline-block">
61
+ <li></li>
62
+ <li></li>
63
+ <li></li>
64
+ <li>
65
+ <span class="leading-loose">
66
+ <span class="capitalize font-secondary font-semibold"> Archivo Narrow semi bold </span>
67
+ <code>.font-semibold</code>
68
+ </span>
69
+ </li>
70
+ <li>
71
+ <span class="leading-loose">
72
+ <span class="capitalize font-secondary font-bold"> Archivo Narrow bold </span>
73
+ <code>.font-bold</code>
74
+ </span>
75
+ </li>
76
+ <li></li>
77
+ </ol>
78
+ </div>
79
+ </div>
80
+ </template>
@@ -0,0 +1,112 @@
1
+ import { Meta, Story, Canvas } from '@storybook/blocks'
2
+
3
+ <Meta title="Foundation/Colors" />
4
+
5
+ # Colors
6
+
7
+ - [Brand Colors](#brand-colors)
8
+ - [Functional Gray Tones](#functional-gray-tones)
9
+ - [Semantic Colors](#semantic-colors)
10
+ - [Tokens](#tokens)
11
+
12
+ <span id="brand-colors"></span>
13
+
14
+ ## Brand Colors
15
+
16
+ Each of these foundation colors has specific usage scenarios.
17
+
18
+ | Color | Name | Token |
19
+ | :---------------------------------------- | :------------- | :--------------- |
20
+ | <div class="bg-jpl-red-light p-4"></div> | JPL Red Light | `jpl-red-light` |
21
+ | <div class="bg-jpl-red p-4"></div> | JPL Red | `jpl-red` |
22
+ | <div class="bg-jpl-red-dark p-4"></div> | JPL Red Dark | `jpl-red-dark` |
23
+ | <div class="bg-jpl-red-darker p-4"></div> | JPL Red Darker | `jpl-red-darker` |
24
+ | <div class="bg-jpl-aqua p-4"></div> | JPL Aqua | `aqua` |
25
+ | <div class="bg-blue p-4"></div> | Blue | `blue` |
26
+ | <div class="bg-dark-blue p-4"></div> | Dark Blue | `dark-blue` |
27
+ | <div class="bg-green p-4"></div> | Green | `green` |
28
+
29
+ ### Reserved for Internal Use
30
+
31
+ These colors should not be used on public-facing JPL websites.
32
+
33
+ | Color | Name | Token |
34
+ | :--------------------------------------------- | :------------------ | :-------------------- |
35
+ | <div class="bg-jpl-sky-blue-light p-4"></div> | JPL Sky Blue Light | `jpl-sky-blue-light` |
36
+ | <div class="bg-jpl-sky-blue p-4"></div> | JPL Sky Blue | `jpl-sky-blue` |
37
+ | <div class="bg-jpl-sky-blue-dark p-4"></div> | JPL Sky Blue Dark | `jpl-sky-blue-dark` |
38
+ | <div class="bg-jpl-sky-blue-darker p-4"></div> | JPL Sky Blue Darker | `jpl-sky-blue-darker` |
39
+
40
+ ### Reserved for EDU Use
41
+
42
+ These colors should not be used on public-facing JPL websites.
43
+
44
+ | Color | Name | Token |
45
+ | :------------------------------------------- | :---------------- | :------------------ |
46
+ | <div class="bg-jpl-purple-light p-4"></div> | JPL Purple Light | `jpl-purple-light` |
47
+ | <div class="bg-jpl-purple p-4"></div> | JPL Purple | `jpl-purple` |
48
+ | <div class="bg-jpl-purple-dark p-4"></div> | JPL Purple Dark | `jpl-purple-dark` |
49
+ | <div class="bg-jpl-purple-darker p-4"></div> | JPL Purple Darker | `jpl-purple-darker` |
50
+ | <div class="bg-jpl-teal-light p-4"></div> | JPL Teal Light | `jpl-teal-light` |
51
+ | <div class="bg-jpl-teal p-4"></div> | JPL Teal | `jpl-teal` |
52
+ | <div class="bg-jpl-teal-dark p-4"></div> | JPL Teal Dark | `jpl-teal-dark` |
53
+ | <div class="bg-jpl-teal-darker p-4"></div> | JPL Teal Darker | `jpl-teal-darker` |
54
+
55
+ <span id="functional-gray-tones"></span>
56
+
57
+ ## Functional Gray Tones
58
+
59
+ Grayscale colors are used throughout the site for text and layout.
60
+
61
+ | Color | Name | Token | Value |
62
+ | :---------------------------------------- | :------------- | :--------------- | :-------- |
63
+ | <div class="bg-white p-4"></div> | White | `white` | `#FFFFFF` |
64
+ | <div class="bg-off-white p-4"></div> | Off White | `off-white` | `#FAFAFA` |
65
+ | <div class="bg-gray-light p-4"></div> | Gray Light | `gray-light` | `#F5F5F5` |
66
+ | <div class="bg-gray-light-mid p-4"></div> | Gray Light Mid | `gray-light-mid` | `#D8D8D8` |
67
+ | <div class="bg-gray-mid p-4"></div> | Gray Mid | `gray-mid` | `#949494` |
68
+ | <div class="bg-gray-mid-dark p-4"></div> | Gray Mid Dark | `gray-mid-dark` | `#6F6F6F` |
69
+ | <div class="bg-gray-dark p-4"></div> | Gray Dark | `gray-dark` | `#222222` |
70
+ | <div class="bg-black p-4"></div> | Black | `black` | `#000000` |
71
+
72
+ Although several gradations are available via Tailwind CSS classes, make sure to only use the intended colors for text:
73
+
74
+ - <div class="w-3 h-3 bg-gray-dark inline-block"></div>
75
+ <code>.text-gray-dark</code>
76
+ - <div class="w-3 h-3 bg-gray-mid-dark inline-block"></div>
77
+ <code>.text-gray-mid-dark</code>
78
+ - <div class="w-3 h-3 bg-gray-mid inline-block"></div>
79
+ <code>.text-gray-mid</code>
80
+
81
+ <span id="semantic-colors"></span>
82
+
83
+ ## Semantic Colors
84
+
85
+ Recommended for use in forms, alerts, or any element meant to communicate a state.
86
+
87
+ **Note:** Color should never be the _only_ means used to convey state information;
88
+ it must always be accompanied by text or iconography that makes it clear for colorblind users.
89
+
90
+ | Color | Name | Token | Value |
91
+ | :--------------------------------------------- | :------------------ | :-------------------- | :-------- |
92
+ | <div class="bg-alert-gold p-4"></div> | Alert Gold | `alert-gold` | `#FFBA32` |
93
+ | <div class="bg-alert-gold-light p-4"></div> | Alert Gold Light | `alert-gold-light` | `#FFF9EB` |
94
+ | <div class="bg-disabled-gray p-4"></div> | Disabled Gray | `disabled-gray` | `#D8D8D8` |
95
+ | <div class="bg-error-red p-4"></div> | Error Red | `error-red` | `#C1152E` |
96
+ | <div class="bg-error-red-light p-4"></div> | Error Red Light | `error-red-light` | `#FFE8EB` |
97
+ | <div class="bg-focus-blue p-4"></div> | Focus Blue | `focus-blue` | `#1871C9` |
98
+ | <div class="bg-focus-blue-light p-4"></div> | Focus Blue Light | `focus-blue-light` | `#E8F1FA` |
99
+ | <div class="bg-success-green p-4"></div> | Success Green | `success-green` | `#33A17B` |
100
+ | <div class="bg-success-green-light p-4"></div> | Success Green Light | `success-green-light` | `#E1F5EE` |
101
+
102
+ <span id="tokens"></span>
103
+
104
+ ## Tokens
105
+
106
+ All colors are available via Tailwind CSS classes using tokens:
107
+
108
+ ```
109
+ .bg-{token}
110
+ .text-{token}
111
+ .border-{token}
112
+ ```
@@ -0,0 +1,189 @@
1
+ import { Meta, Story, Canvas } from '@storybook/blocks'
2
+ import * as Stories from './grid.stories'
3
+
4
+ <Meta of={Stories} />
5
+
6
+ # Grid and Layout
7
+
8
+ We use a 12-column grid paired with our [Responsive Design](?path=/docs/guides-responsive-design--docs) strategy to create all of our page and component layouts.
9
+
10
+ > The examples on this page assume you are viewing this page on a desktop. Examples may not appear correct on smaller screens.
11
+
12
+ - [BaseGrid](#basegrid)
13
+ - [Example Usage](#example-usage)
14
+ - [Mixed Bleed](#mixed-bleed)
15
+ - [Example Usage](#example-usage-1)
16
+ - [Page layout recommendations](#page-layout-recommendations)
17
+ - [Full Page Example](#full-page-example)
18
+
19
+ <span id="basegrid"></span>
20
+
21
+ ## BaseGrid
22
+
23
+ There is a globally available `.BaseGrid` class that is the basis of our main grid, which contains `12` columns with a gutter of `gap-6`.
24
+
25
+ <Canvas
26
+ className="sbdocs-preview-full-width"
27
+ of={Stories.BaseGrid}
28
+ />
29
+
30
+ Although `.BaseGrid` is always used with or wrapped by a `.container`, `.BaseGrid` itself does not include any margins or container behavior. This is to allow for maximum flexibility when using this class in your components:
31
+
32
+ ```css
33
+ .BaseGrid {
34
+ @apply grid grid-cols-12 gap-6;
35
+ }
36
+ ```
37
+
38
+ Adjustments like margins and container can be applied as needed, such as:
39
+
40
+ ```html
41
+ <div class="BaseGrid container mx-auto">Centered 12 col grid bound by container</div>
42
+ ```
43
+
44
+ If you just need a container and no grid, you can simply omit the `BaseGrid`:
45
+
46
+ ```html
47
+ <div class="container mx-auto">Content with no grid</div>
48
+ ```
49
+
50
+ <span id="example-usage"></span>
51
+
52
+ ### Example Usage
53
+
54
+ Some common component layouts:
55
+
56
+ <Canvas
57
+ className="sbdocs-preview-full-width"
58
+ of={Stories.ComponentA}
59
+ />
60
+
61
+ <Canvas
62
+ className="sbdocs-preview-full-width"
63
+ of={Stories.ComponentB}
64
+ />
65
+
66
+ ---
67
+
68
+ <span id="mixed-bleed"></span>
69
+
70
+ ## Mixed Bleed
71
+
72
+ Some components only bleed to one side of the screen. There is a `.MixedBleedGrid` class available for use that sets named grid lines. Note that these grid lines assume `.container` has zero padding.
73
+
74
+ | Named Line | Description |
75
+ | :---------------- | :----------------------------------- |
76
+ | `bleed-start` | Left edge of the viewport |
77
+ | `container-start` | Left edge of the standard container |
78
+ | `indent-col-2` | Aligns with column 2 in `BaseGrid` |
79
+ | `indent-col-3` | Aligns with column 3 in `BaseGrid` |
80
+ | `container-end` | Right edge of the standard container |
81
+ | `bleed-end` | Right edge of the viewport |
82
+
83
+ These named lines are used to construct the following `col-start-` and `col-end-` classes:
84
+
85
+ ```css
86
+ @responsive {
87
+ .col-start-bleed {
88
+ grid-column-start: bleed-start;
89
+ }
90
+ .col-end-container-start {
91
+ grid-column-end: container-start;
92
+ }
93
+ .col-start-container {
94
+ grid-column-start: container-start;
95
+ }
96
+ .col-start-indent-col-2 {
97
+ grid-column-start: indent-col-2;
98
+ }
99
+ .col-start-indent-col-3 {
100
+ grid-column-start: indent-col-3;
101
+ }
102
+ .col-end-container {
103
+ grid-column-end: container-end;
104
+ }
105
+ .col-start-container-end {
106
+ grid-column-start: container-end;
107
+ }
108
+ .col-end-bleed {
109
+ grid-column-end: bleed-end;
110
+ }
111
+ }
112
+ ```
113
+
114
+ Note the usage of `.px-0` in addition to `.container` in the example below:
115
+
116
+ <Canvas
117
+ className="sbdocs-preview-full-width"
118
+ of={Stories.MixedBleedGridLines}
119
+ />
120
+
121
+ <span id="example-usage-1"></span>
122
+
123
+ ### Example Usage
124
+
125
+ Responsive styles within MixedBleed will need to be determined on a case-by-base basis. Usage of this class is best followed by observing existing usage and examples.
126
+
127
+ #### Simple mixed bleed
128
+
129
+ Starts at `indent-col-2` (col-2 of the `BaseGrid`) and bleeds fully to the right.
130
+
131
+ ```html
132
+ <div class="MixedBleedGrid">
133
+ <div class="col-start-indent-col-2 col-end-bleed">Indented to col-2 and bleeds right</div>
134
+ </div>
135
+ ```
136
+
137
+ <Canvas
138
+ className="sbdocs-preview-full-width"
139
+ of={Stories.MixedBleed}
140
+ />
141
+
142
+ #### Complex mixed bleed
143
+
144
+ When elements of an indented MixedBleed area must align with the BaseGrid, we need to get a bit more creative. We will still use mixed bleed grid lines, but we will not use `BaseGrid` within since the container is already indented. We instead need to use a custom grid for this use-case. Luckily, with Tailwind CSS, this is fairly straightforward. The nested grid should contain the number of columns offset by the amount that is already indented, and no `gap` should be used.
145
+
146
+ ```html
147
+ <div class="MixedBleedGrid">
148
+ <div class="col-start-indent-col-3 col-end-container bg-black">
149
+ <div class="grid grid-cols-10">
150
+ <div class="col-start-2 col-end-7">Text aligned with apparent col 4</div>
151
+ <div class="col-start-7 col-end-11">Text aligned with apparent col 9</div>
152
+ </div>
153
+ </div>
154
+ <div class="col-start-container-end col-end-bleed bg-black"></div>
155
+ </div>
156
+ ```
157
+
158
+ <Canvas
159
+ className="sbdocs-preview-full-width"
160
+ of={Stories.MixedBleedComplex}
161
+ />
162
+
163
+ <span id="page-layout-recommendations"></span>
164
+
165
+ ## Page layout recommendations
166
+
167
+ Explorer 1 components vary in width. This can make page layouts challenging if the entire content area is bound by a single `.container` div, a strategy that is commonly used on other websites. For Explorer 1, we recommend avoiding this strategy and instead giving each section or component on the page its own set of layout markup.
168
+
169
+ [Blocks](?path=/docs/components-blocks-overview--docs) provided by Explorer 1 are compatible with this strategy. However, if a block notes that "layout assumptions have been made," this means that the entire layout for that block is already included in the markup, and you shouldn't include any additional layout. Doing so could break the display of that block.
170
+
171
+ View the code below for an example of how to give each section its own set of layout markup. You can also see this strategy employed in the [Full Page Example](#full-page-example).
172
+
173
+ <Canvas
174
+ className="sbdocs-preview-full-width"
175
+ of={Stories.PageLayout}
176
+ />
177
+
178
+ <br />
179
+
180
+ <span id="full-page-example"></span>
181
+
182
+ ## Full Page Example
183
+
184
+ An example of the foundations of a full page layout.
185
+
186
+ <Canvas
187
+ className="sbdocs-preview-full-width"
188
+ of={Stories.FullPageExample}
189
+ />
@@ -0,0 +1,263 @@
1
+ import LayoutHelper from './../../components/LayoutHelper/LayoutHelper.vue'
2
+ export default {
3
+ title: 'Foundation/Grid and Layout',
4
+ component: LayoutHelper,
5
+ tags: ['!autodocs']
6
+ }
7
+
8
+ export const BaseGrid = {
9
+ args: {},
10
+ render: () => ({
11
+ template: `<div class="max-w-screen-3xl mx-auto">
12
+ <div class="BaseGrid container mx-auto mb-10 bg-gray-light-mid">
13
+ <div class="text-center text-white bg-gray-mid-dark p-4">1</div>
14
+ <div class="text-center text-white bg-gray-mid-dark p-4">2</div>
15
+ <div class="text-center text-white bg-gray-mid-dark p-4">3</div>
16
+ <div class="text-center text-white bg-gray-mid-dark p-4">4</div>
17
+ <div class="text-center text-white bg-gray-mid-dark p-4">5</div>
18
+ <div class="text-center text-white bg-gray-mid-dark p-4">6</div>
19
+ <div class="text-center text-white bg-gray-mid-dark p-4">7</div>
20
+ <div class="text-center text-white bg-gray-mid-dark p-4">8</div>
21
+ <div class="text-center text-white bg-gray-mid-dark p-4">9</div>
22
+ <div class="text-center text-white bg-gray-mid-dark p-4">10</div>
23
+ <div class="text-center text-white bg-gray-mid-dark p-4">11</div>
24
+ <div class="text-center text-white bg-gray-mid-dark p-4">12</div>
25
+ </div>
26
+ <div class="container mx-auto">
27
+ <div class="text-white bg-gray-mid-dark p-4">
28
+ Container, but no grid
29
+ </div>
30
+ </div>
31
+ </div>`
32
+ })
33
+ }
34
+
35
+ export const ComponentA = {
36
+ args: {},
37
+ render: () => ({
38
+ template: `<div class="BaseGrid container mx-auto border border-jpl-red-light">
39
+ <div class="col-start-4 col-end-10 bg-black text-white px-4 py-10">
40
+ Starts at col 4 and ends at the col 10 line.
41
+ </div>
42
+ </div>`
43
+ })
44
+ }
45
+
46
+ export const ComponentB = {
47
+ args: {},
48
+ render: () => ({
49
+ template: `<div class="BaseGrid container mx-auto border border-jpl-red-light">
50
+ <div class="col-start-2 col-end-8 bg-black text-white px-4 py-10">
51
+ Primary content
52
+ </div>
53
+ <div class="col-start-8 col-end-12 bg-black text-white px-4 py-10">
54
+ Secondary content
55
+ </div>
56
+ </div>`
57
+ })
58
+ }
59
+
60
+ export const MixedBleedGridLines = {
61
+ args: {},
62
+ render: () => ({
63
+ template: `<div class="max-w-screen-3xl mx-auto bg-white">
64
+ <div class="BaseGrid container px-0 mx-auto bg-gray-light-mid mb-5">
65
+ <div class="text-center text-white bg-gray-mid-dark py-4">1</div>
66
+ <div class="text-center text-white bg-gray-mid-dark py-4">2</div>
67
+ <div class="text-center text-white bg-gray-mid-dark py-4">3</div>
68
+ <div class="text-center text-white bg-gray-mid-dark py-4">4</div>
69
+ <div class="text-center text-white bg-gray-mid-dark py-4">5</div>
70
+ <div class="text-center text-white bg-gray-mid-dark py-4">6</div>
71
+ <div class="text-center text-white bg-gray-mid-dark py-4">7</div>
72
+ <div class="text-center text-white bg-gray-mid-dark py-4">8</div>
73
+ <div class="text-center text-white bg-gray-mid-dark py-4">9</div>
74
+ <div class="text-center text-white bg-gray-mid-dark py-4">10</div>
75
+ <div class="text-center text-white bg-gray-mid-dark py-4">11</div>
76
+ <div class="text-center text-white bg-gray-mid-dark py-4">12</div>
77
+ </div>
78
+ <div class="MixedBleedGrid">
79
+ <div class="col-start-bleed col-end-bleed py-5 mb-5 text-sm border-l border-jpl-red">
80
+ <code>[bleed-start]<br>
81
+ .col-start-bleed</code>
82
+ </div>
83
+ <div class="col-start-container col-end-bleed py-5 mb-5 text-sm border-l border-jpl-red">
84
+ <code>[container-start]<br>
85
+ .col-start-container</code>
86
+ </div>
87
+ <div class="col-start-indent-col-2 col-end-bleed py-5 mb-5 text-sm border-l border-jpl-red">
88
+ <code>[indent-col-2]<br>
89
+ .col-start-indent-col-2</code>
90
+ </div>
91
+ <div class="col-start-indent-col-3 col-end-bleed py-5 mb-5 text-sm border-l border-jpl-red">
92
+ <code>[indent-col-3]<br>
93
+ .col-start-indent-col-3</code>
94
+ </div>
95
+ <div class="col-start-bleed col-end-container py-5 mb-5 text-sm border-r border-jpl-red text-right">
96
+ <code>[container-end]<br>
97
+ .col-end-container<br>
98
+ .col-start-container-end</code>
99
+ </div>
100
+ <div class="col-start-bleed col-end-bleed py-5 mb-5 text-sm border-r border-jpl-red text-right">
101
+ <code>[bleed-end]<br>
102
+ .col-end-bleed</code>
103
+ </div>
104
+ </div>
105
+ </div>`
106
+ })
107
+ }
108
+
109
+ export const MixedBleed = {
110
+ args: {},
111
+ render: () => ({
112
+ template: `<div class="MixedBleedGrid">
113
+ <div class="col-start-indent-col-2 col-end-bleed text-white bg-black px-4 py-10">
114
+ Gallery Container (inner layout not dependent on grid)
115
+ </div>
116
+ </div>`
117
+ })
118
+ }
119
+
120
+ export const MixedBleedComplex = {
121
+ args: {},
122
+ render: () => ({
123
+ template: `<div>
124
+ <div class="MixedBleedGrid mb-10">
125
+ <div class="col-start-indent-col-3 col-end-container text-white bg-black">
126
+ <div class="grid grid-cols-10 border border-jpl-red-light">
127
+ <div class="col-start-2 col-end-7 text-white px-4 py-10">
128
+ Text aligned with apparent col 4
129
+ </div>
130
+ <div class="col-start-7 col-end-11 px-4 py-10">
131
+ Text aligned with apparent col 9
132
+ </div>
133
+ </div>
134
+ </div>
135
+ <div class="col-start-container-end col-end-bleed bg-black"></div>
136
+ </div>
137
+ </div>`
138
+ })
139
+ }
140
+
141
+ export const PageLayout = {
142
+ args: {},
143
+ render: () => ({
144
+ template: `<!-- first section -->
145
+ <div class="bg-gray-light mb-5">
146
+ <div class="max-w-screen-3xl mx-auto bg-black text-white p-6">
147
+ Component with content bound <code>.max-w-screen-3xl</code> but with a background color that extends beyond <code>3xl</code>
148
+ </div>
149
+ </div>
150
+ <!-- second section -->
151
+ <div class="container lg:BaseGrid mx-auto mb-5">
152
+ <div class="col-start-3 col-end-11 bg-gray-light p-6">
153
+ Component filling columns 3-10 on large screens and above.
154
+ </div>
155
+ </div>
156
+ <!-- third section -->
157
+ <div class="container BaseGrid mx-auto mb-5">
158
+ <div class="col-start-2 col-end-12 lg:col-start-4 lg:col-end-10 bg-gray-light p-6">
159
+ Component filling columns 4-9 on large screens and above and columns 2-11 on smaller screens.
160
+ </div>
161
+ </div>
162
+ <!-- fourth section -->
163
+ <div class="container mx-auto bg-gray-light p-6 mb-5">
164
+ Component with content bound by <code>.container</code>
165
+ </div>
166
+ <!-- fifth section -->
167
+ <div class="max-w-screen-3xl mx-auto bg-gray-light p-6 mb-5">
168
+ Component with content bound by <code>.max-w-screen-3xl</code>
169
+ </div>
170
+ <!-- sixth section -->
171
+ <div class="container lg:BaseGrid mx-auto">
172
+ <div class="col-start-3 col-end-11 bg-gray-light p-6">
173
+ Another component filling columns 3-10 on large screens and above.
174
+ </div>
175
+ </div>`
176
+ })
177
+ }
178
+
179
+ export const FullPageExample = {
180
+ args: {},
181
+ render: () => ({
182
+ template: `<div class="bg-black text-white py-5 mb-10">
183
+ <div class="max-w-screen-2xl mx-auto border border-white p-3">
184
+ Top Hat
185
+ </div>
186
+ </div>
187
+ <div class="bg-black mb-20 py-10">
188
+ <div class="container mx-auto text-white">
189
+ Page title with full bleed background<br>
190
+ Lorem ipsum dolor sit amet<br>
191
+ Consectatur
192
+ </div>
193
+ </div>
194
+ <div class="MixedBleedGrid mb-20">
195
+ <div class="col-start-indent-col-2 col-end-container bg-gray-light-mid py-10 border border-jpl-red-light">
196
+ <div class="grid grid-cols-11 gap-5">
197
+ <div class="col-start-2 col-end-7">
198
+ Countdown Timer
199
+ </div>
200
+ <div class="col-start-7 col-end-12">
201
+ Distance to Target
202
+ </div>
203
+ </div>
204
+ </div>
205
+ <div class="col-start-container-end col-end-bleed bg-gray-light-mid"></div>
206
+ </div>
207
+ <div class="BaseGrid container mx-auto mb-20 py-10">
208
+ <div class="col-start-2 col-end-8">
209
+ About the mission
210
+ </div>
211
+ <div class="col-start-8 col-end-12">
212
+ Instrument list
213
+ </div>
214
+ </div>
215
+ <div class="bg-black mb-20">
216
+ <div class="BaseGrid container mx-auto">
217
+ <div class="col-start-6 col-end-11 text-white border-b border-white py-5 my-10">
218
+ Full bleed background with BaseGrid inner container
219
+ </div>
220
+ </div>
221
+ </div>
222
+ <div class="BaseGrid container mx-auto mb-20">
223
+ <div class="col-start-2 col-end-7 py-10">
224
+ Mission Data
225
+ </div>
226
+ <div class="col-start-7 col-end-12 bg-black py-10 text-white text-center">
227
+ Square Image
228
+ </div>
229
+ </div>
230
+ <div class="BaseGrid container mx-auto mb-20">
231
+ <div class="col-start-3 col-end-11 py-10 text-center border-t border-b">
232
+ Blockquote
233
+ </div>
234
+ </div>
235
+ <div class="MixedBleedGrid mb-20">
236
+ <div class="col-start-indent-col-2 col-end-bleed px-5 py-10 border border-jpl-red-light">
237
+ Gallery Container
238
+ </div>
239
+ </div>
240
+ <div class="BaseGrid container mx-auto mb-2">
241
+ <div class="col-start-2 col-end-9 p-5 bg-gray-light-mid ">
242
+ Link 1
243
+ </div>
244
+ </div>
245
+ <div class="BaseGrid container mx-auto mb-20">
246
+ <div class="col-start-2 col-end-9 p-5 bg-gray-light-mid ">
247
+ Link 2
248
+ </div>
249
+ </div>
250
+ <div class="bg-gray-light-mid">
251
+ <div class="MixedBleedGrid mb-20">
252
+ <div class="col-start-indent-col-2 col-end-bleed px-5 py-10 border border-jpl-red-light">
253
+ Gallery Container
254
+ </div>
255
+ </div>
256
+ </div>
257
+ <div class="bg-black py-20">
258
+ <div class="container mx-auto text-white">
259
+ Footer
260
+ </div>
261
+ </div>`
262
+ })
263
+ }