@explorer-1/vue 0.3.4 → 0.3.7

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 (236) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/package.json +2 -2
  3. package/src/components/AboutTheAuthor/AboutTheAuthor.stories.js +1 -1
  4. package/src/components/AboutTheAuthor/AboutTheAuthor.vue +9 -9
  5. package/src/components/AsteroidWatchWidget/AsteroidWatchWidget.stories.js +2 -7
  6. package/src/components/AsteroidWatchWidget/AsteroidWatchWidget.vue +5 -1
  7. package/src/components/BackToTop/BackToTop.stories.js +1 -1
  8. package/src/components/BackToTop/BackToTop.vue +10 -0
  9. package/src/components/BaseAccordionItem/BaseAccordionItem.stories.js +24 -4
  10. package/src/components/BaseAccordionItem/BaseAccordionItem.vue +56 -17
  11. package/src/components/BaseAudio/BaseAudio.stories.js +4 -6
  12. package/src/components/BaseAudio/BaseAudio.vue +6 -0
  13. package/src/components/BaseButton/BaseButton.stories.ts +12 -23
  14. package/src/components/BaseButton/BaseButton.vue +34 -10
  15. package/src/components/BaseCheckboxGroup/BaseCheckboxGroup.stories.js +2 -1
  16. package/src/components/BaseCheckboxGroup/BaseCheckboxGroup.vue +5 -0
  17. package/src/components/BaseHeading/BaseHeading.stories.js +9 -17
  18. package/src/components/BaseHeading/BaseHeading.vue +18 -8
  19. package/src/components/BaseImage/BaseImage.stories.ts +7 -17
  20. package/src/components/BaseImage/BaseImage.vue +26 -14
  21. package/src/components/BaseImageCaption/BaseImageCaption.stories.js +11 -0
  22. package/src/components/BaseImageCaption/BaseImageCaption.vue +10 -6
  23. package/src/components/BaseImagePlaceholder/BaseImagePlaceholder.stories.js +13 -15
  24. package/src/components/BaseImagePlaceholder/BaseImagePlaceholder.vue +13 -9
  25. package/src/components/BaseLink/BaseLink.stories.js +8 -7
  26. package/src/components/BaseLink/BaseLink.vue +32 -21
  27. package/src/components/BaseModal/BaseModal.stories.js +4 -7
  28. package/src/components/BaseModal/BaseModal.vue +1 -0
  29. package/src/components/BaseModal/BaseModalDialog.vue +1 -6
  30. package/src/components/BasePill/BasePill.stories.js +8 -22
  31. package/src/components/BasePill/BasePill.vue +36 -19
  32. package/src/components/BasePlaceholder/BasePlaceholder.stories.js +4 -7
  33. package/src/components/BasePlaceholder/BasePlaceholder.vue +1 -1
  34. package/src/components/BaseRadioGroup/BaseRadioGroup.stories.js +1 -0
  35. package/src/components/BaseRadioGroup/BaseRadioGroup.vue +9 -2
  36. package/src/components/BaseSwimlane/BaseSwimlane.stories.js +2 -1
  37. package/src/components/BaseSwimlane/BaseSwimlane.vue +2 -0
  38. package/src/components/BaseTimer/BaseTimer.stories.js +7 -2
  39. package/src/components/BaseTimer/BaseTimer.vue +4 -2
  40. package/src/components/BaseUnitToggle/BaseUnitToggle.stories.js +1 -16
  41. package/src/components/BaseUnitToggle/BaseUnitToggle.vue +4 -0
  42. package/src/components/BaseVideo/BaseVideo.vue +7 -3
  43. package/src/components/BlockAccordion/BlockAccordion.stories.js +4 -2
  44. package/src/components/BlockAccordion/BlockAccordion.vue +3 -3
  45. package/src/components/BlockAudio/BlockAudio.stories.js +1 -0
  46. package/src/components/BlockAudio/BlockAudio.vue +11 -3
  47. package/src/components/BlockCardGrid/BlockCardGrid.stories.js +1 -1
  48. package/src/components/BlockCardGrid/BlockCardGrid.vue +1 -1
  49. package/src/components/BlockCardGridItem/BlockCardGridItem.stories.js +3 -3
  50. package/src/components/BlockCardGridItem/BlockCardGridItemElement.vue +1 -1
  51. package/src/components/BlockCircleImageCard/BlockCircleImageCard.stories.js +3 -9
  52. package/src/components/BlockCsrTable/BlockCsrTable.stories.js +1 -0
  53. package/src/components/BlockCsrTable/BlockCsrTable.vue +1 -1
  54. package/src/components/BlockCta/BlockCta.stories.js +1 -0
  55. package/src/components/BlockCta/BlockCta.vue +9 -2
  56. package/src/components/BlockDialog/BlockDialog.stories.js +2 -1
  57. package/src/components/BlockGist/BlockGist.stories.js +3 -2
  58. package/src/components/BlockGist/BlockGist.vue +8 -6
  59. package/src/components/BlockHeading/BlockHeading.stories.js +1 -0
  60. package/src/components/BlockIframeEmbed/BlockIframeEmbed.stories.js +3 -2
  61. package/src/components/BlockIframeEmbed/BlockIframeEmbed.vue +9 -2
  62. package/src/components/BlockImage/BlockImage.stories.js +1 -5
  63. package/src/components/BlockImage/BlockImage.vue +5 -2
  64. package/src/components/BlockImageCarousel/BlockImageCarousel.stories.js +3 -15
  65. package/src/components/BlockImageCarousel/BlockImageCarousel.vue +2 -0
  66. package/src/components/BlockImageCarouselItem/BlockImageCarouselItem.stories.js +2 -16
  67. package/src/components/BlockImageCarouselItem/BlockImageCarouselItem.vue +7 -7
  68. package/src/components/BlockImageComparison/BlockImageComparison.stories.js +5 -3
  69. package/src/components/BlockImageComparison/BlockImageComparison.vue +11 -2
  70. package/src/components/BlockImageGallery/BlockImageGallery.stories.js +4 -11
  71. package/src/components/BlockImageGallery/BlockImageGallery.vue +5 -0
  72. package/src/components/BlockInlineImage/BlockInlineImage.stories.js +5 -2
  73. package/src/components/BlockInlineImage/BlockInlineImage.vue +20 -7
  74. package/src/components/BlockKeyPoints/BlockKeyPoints.stories.js +1 -0
  75. package/src/components/BlockKeyPoints/BlockKeyPoints.vue +12 -3
  76. package/src/components/BlockLinkCard/BlockLinkCard.stories.js +24 -34
  77. package/src/components/BlockLinkCard/BlockLinkCard.vue +28 -9
  78. package/src/components/BlockLinkCard/BlockLinkCardCollectionLg.vue +2 -2
  79. package/src/components/BlockLinkCardList/BlockLinkCardList.stories.js +1 -3
  80. package/src/components/BlockLinkCarousel/BlockLinkCarousel.stories.js +2 -14
  81. package/src/components/BlockLinkCarousel/BlockLinkCarousel.vue +8 -8
  82. package/src/components/BlockLinkTile/BlockLinkTile.stories.js +3 -13
  83. package/src/components/BlockLinkTile/BlockLinkTile.vue +26 -13
  84. package/src/components/BlockListCards/BlockListCards.stories.js +1 -0
  85. package/src/components/BlockListCards/BlockListCards.vue +5 -4
  86. package/src/components/BlockNewsletterSignup/BlockNewsletterSignup.stories.js +1 -0
  87. package/src/components/BlockNewsletterSignup/BlockNewsletterSignup.vue +3 -2
  88. package/src/components/BlockQuote/BlockQuote.stories.js +1 -0
  89. package/src/components/BlockQuote/BlockQuote.vue +3 -2
  90. package/src/components/BlockRelatedLinks/BlockRelatedLinks.stories.js +1 -0
  91. package/src/components/BlockRelatedLinks/BlockRelatedLinks.vue +6 -4
  92. package/src/components/BlockRichTable/BlockRichTable.stories.js +1 -1
  93. package/src/components/BlockRichTable/BlockRichTable.vue +23 -9
  94. package/src/components/BlockStreamfield/BlockStreamfield.stories.js +1 -11
  95. package/src/components/BlockStreamfield/BlockStreamfield.vue +34 -31
  96. package/src/components/BlockTeaser/BlockTeaser.stories.js +1 -0
  97. package/src/components/BlockTeaser/BlockTeaser.vue +20 -12
  98. package/src/components/BlockText/BlockText.stories.js +2 -9
  99. package/src/components/BlockText/BlockText.vue +21 -9
  100. package/src/components/BlockVideo/BlockVideo.stories.js +1 -0
  101. package/src/components/BlockVideo/BlockVideo.vue +14 -3
  102. package/src/components/BlockVideoEmbed/BlockVideoEmbed.stories.js +1 -0
  103. package/src/components/BlockVideoEmbed/BlockVideoEmbed.vue +6 -3
  104. package/src/components/CalendarButton/CalendarButton.vue +7 -0
  105. package/src/components/DetailHeadline/DetailHeadline.stories.js +2 -20
  106. package/src/components/DetailHeadline/DetailHeadline.vue +16 -4
  107. package/src/components/DsnWidget/DsnWidget.stories.js +2 -6
  108. package/src/components/DsnWidget/DsnWidget.vue +18 -4
  109. package/src/components/EventDetailHero/EventDetailHero.stories.js +10 -7
  110. package/src/components/EventDetailHero/EventDetailHero.vue +4 -7
  111. package/src/components/FormContact/FormContact.stories.js +2 -1
  112. package/src/components/FormNewsletterSignup/FormNewsletterSignup.stories.js +2 -1
  113. package/src/components/HeroInlineMedia/HeroInlineMedia.vue +12 -8
  114. package/src/components/HeroLarge/HeroLarge.stories.js +27 -2
  115. package/src/components/HeroLarge/HeroLarge.vue +12 -5
  116. package/src/components/HeroListingIndex/HeroListingIndex.stories.js +1 -0
  117. package/src/components/HeroListingIndex/HeroListingIndex.vue +18 -13
  118. package/src/components/HeroMedia/HeroMedia.stories.js +14 -9
  119. package/src/components/HeroMedia/HeroMedia.vue +9 -8
  120. package/src/components/HeroMedium/HeroMedium.stories.js +19 -4
  121. package/src/components/HeroMedium/HeroMedium.vue +32 -14
  122. package/src/components/HeroMedium/HeroSmall.stories.js +20 -6
  123. package/src/components/HomepageCarousel/HomepageCarousel.stories.js +1 -1
  124. package/src/components/HomepageCarouselItem/HomepageCarouselItem.stories.js +2 -2
  125. package/src/components/HomepageCarouselItem/HomepageCarouselItem.vue +2 -6
  126. package/src/components/HomepageEmbedBlock/HomepageEmbedBlock.vue +2 -2
  127. package/src/components/LogoCaltech/LogoCaltech.stories.js +14 -18
  128. package/src/components/LogoCaltech/LogoCaltech.vue +1 -0
  129. package/src/components/LogoTribrand/LogoTribrand.stories.js +66 -51
  130. package/src/components/LogoTribrand/LogoTribrand.vue +4 -2
  131. package/src/components/MetaPanel/MetaPanel.stories.js +5 -9
  132. package/src/components/MetaPanel/MetaPanel.vue +3 -0
  133. package/src/components/MetaPanelItems/MetaPanelItems.stories.js +9 -2
  134. package/src/components/MetaPanelItems/MetaPanelItems.vue +2 -0
  135. package/src/components/MetadataEduResource/MetadataEduResource.stories.js +12 -10
  136. package/src/components/MetadataEduResource/MetadataEduResource.vue +7 -3
  137. package/src/components/MetadataEvent/MetadataEvent.stories.js +1 -1
  138. package/src/components/MissionDetailAbout/MissionDetailAbout.vue +1 -1
  139. package/src/components/MissionDetailHero/MissionDetailHero.stories.js +2 -2
  140. package/src/components/MissionDetailHighlights/MissionDetailHighlights.stories.js +1 -0
  141. package/src/components/MissionDetailInlineImage/MissionDetailInlineImage.stories.js +1 -6
  142. package/src/components/MissionDetailInlineImage/MissionDetailInlineImage.vue +10 -5
  143. package/src/components/MissionDetailStats/DistanceStats.vue +10 -5
  144. package/src/components/MissionDetailStats/MissionDetailStats.stories.js +4 -21
  145. package/src/components/MissionDetailStats/MissionDetailStats.vue +21 -5
  146. package/src/components/MissionDetailStreamfield/MissionDetailStreamfield.vue +4 -2
  147. package/src/components/MixinAnimationCaret/MixinAnimationCaret.stories.ts +7 -0
  148. package/src/components/MixinAnimationCaret/MixinAnimationCaret.vue +12 -6
  149. package/src/components/MixinCarousel/MixinCarousel.stories.js +2 -8
  150. package/src/components/MixinCarousel/MixinCarousel.vue +13 -16
  151. package/src/components/MixinVideoBg/MixinVideoBg.stories.js +1 -1
  152. package/src/components/MixinVideoBg/MixinVideoBg.vue +4 -7
  153. package/src/components/NavDesktop/NavDesktop.stories.js +1 -0
  154. package/src/components/NavDesktop/NavDesktop.vue +4 -4
  155. package/src/components/NavDesktop/NavDesktopTopHat.vue +4 -4
  156. package/src/components/NavDesktopEdu/NavDesktopEdu.stories.js +1 -5
  157. package/src/components/NavDesktopEdu/NavDesktopEdu.vue +4 -4
  158. package/src/components/NavHeading/NavHeading.stories.js +3 -2
  159. package/src/components/NavHighlight/NavHighlight.stories.js +3 -2
  160. package/src/components/NavJumpMenu/NavJumpMenu.stories.js +5 -2
  161. package/src/components/NavLinkList/NavLinkList.stories.js +3 -2
  162. package/src/components/NavLinkList/NavLinkList.vue +3 -3
  163. package/src/components/NavLogoLinks/NavLogoLinks.stories.js +1 -0
  164. package/src/components/NavMobile/NavMobile.stories.js +13 -2
  165. package/src/components/NavMobile/NavMobile.vue +18 -5
  166. package/src/components/NavMobile/NavMobileDropdown.vue +2 -2
  167. package/src/components/NavMobile/NavMobileEdu.stories.js +11 -4
  168. package/src/components/NavMobile/NavMobileLink.vue +4 -4
  169. package/src/components/NavSearchForm/NavSearchForm.stories.js +1 -0
  170. package/src/components/NavSecondary/NavSecondary.stories.js +1 -0
  171. package/src/components/NavSecondary/NavSecondary.vue +7 -4
  172. package/src/components/NavSecondary/NavSecondaryDropdownContent.vue +1 -1
  173. package/src/components/NavSocial/NavSocial.stories.js +1 -0
  174. package/src/components/NewsDetailMediaContact/NewsDetailMediaContact.stories.js +2 -1
  175. package/src/components/NewsDetailMediaContact/NewsDetailMediaContact.vue +1 -1
  176. package/src/components/ParallaxContainer/ParallaxContainer.stories.js +2 -2
  177. package/src/components/ParallaxContainer/ParallaxContainer.vue +1 -0
  178. package/src/components/PodcastSeriesCarousel/PodcastSeriesCarousel.vue +6 -5
  179. package/src/components/RoboticsDetailStats/RoboticsDetailStats.stories.js +3 -8
  180. package/src/components/SearchFilterGroup/SearchFilterGroup.stories.js +1 -0
  181. package/src/components/SearchInput/SearchInput.stories.js +1 -0
  182. package/src/components/SearchPagination/SearchPagination.stories.js +1 -0
  183. package/src/components/SearchResultCard/SearchResultCard.stories.js +1 -10
  184. package/src/components/SearchResultCard/SearchResultCard.vue +1 -0
  185. package/src/components/SearchResultGridItem/SearchResultGridItem.stories.js +3 -12
  186. package/src/components/SearchResultGridItem/SearchResultGridItem.vue +5 -2
  187. package/src/components/SearchResultsList/SearchResultsList.stories.js +3 -3
  188. package/src/components/SearchSelectMenu/SearchSelectMenu.stories.js +2 -1
  189. package/src/components/SwimlaneCTA/SwimlaneCTA.vue +1 -0
  190. package/src/components/TextArea/TextArea.stories.js +2 -1
  191. package/src/components/TextInput/TextInput.stories.js +2 -1
  192. package/src/components/TheFooter/TheFooter.stories.js +1 -0
  193. package/src/components/TheFooter/TheFooter.vue +30 -4
  194. package/src/components/ThumbnailCarousel/ThumbnailCarousel.stories.js +1 -1
  195. package/src/components/ThumbnailCarousel/ThumbnailCarousel.vue +2 -1
  196. package/src/components/TimelineDialog/TimelineDialog.vue +2 -2
  197. package/src/components/TopicDetailMissionCarousel/TopicDetailMissionCarousel.stories.js +1 -0
  198. package/src/components/TopicDetailMissionCarouselItem/TopicDetailMissionCarouselItem.stories.js +2 -2
  199. package/src/components/TopicDetailMore/TopicDetailMore.stories.js +1 -0
  200. package/src/components/TopicDetailMoreItem/TopicDetailMoreItem.stories.js +3 -2
  201. package/src/components/TopicDetailStreamfield/TopicDetailStreamfield.vue +2 -2
  202. package/src/constants.ts +3 -5
  203. package/src/docs/foundation/grid_layouthelpers.stories.js +2 -2
  204. package/src/docs/introduction.docs.mdx +14 -2
  205. package/src/interfaces.ts +31 -6
  206. package/src/templates/PageAudioDetail/PageAudioDetail.vue +2 -2
  207. package/src/templates/PageContent/PageContent.stories.js +1 -1
  208. package/src/templates/PageEventDetail/PageEventDetail.stories.js +1 -1
  209. package/src/templates/PageNewsDetail/PageNewsDetail.stories.js +2 -2
  210. package/src/templates/edu/PageContentEdu.stories.js +2 -2
  211. package/src/templates/edu/PageEduCollectionsDetail/PageEduCollectionsDetail.stories.js +2 -2
  212. package/src/templates/edu/PageEduEventDetail/PageEduEventDetail.stories.js +1 -1
  213. package/src/templates/edu/PageEduExplainerArticle/PageEduExplainerArticle.stories.js +2 -2
  214. package/src/templates/edu/PageEduGalleryDetail/PageEduGalleryDetail.stories.js +1 -1
  215. package/src/templates/edu/PageEduGalleryDetail/PageEduGalleryDetail.vue +10 -6
  216. package/src/templates/edu/PageEduHome/PageEduHome.stories.js +1 -1
  217. package/src/templates/edu/PageEduLesson/PageEduLesson.stories.js +2 -2
  218. package/src/templates/edu/PageEduMultimediaDetail/PageEduMultimediaDetail.stories.js +1 -1
  219. package/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.stories.js +2 -2
  220. package/src/templates/edu/PageEduStudentProject/PageEduStudentProject.stories.js +2 -2
  221. package/src/templates/edu/PageEduStudentProject/PageEduStudentProjectSection.vue +10 -6
  222. package/src/templates/edu/PageEduTeachableMoment/PageEduTeachableMoment.stories.js +2 -2
  223. package/src/templates/www/PageAsteroidWatchContent/PageAsteroidWatchContent.stories.js +2 -2
  224. package/src/templates/www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.stories.js +2 -2
  225. package/src/templates/www/PageGoDirectory/PageGoDirectory.stories.js +2 -2
  226. package/src/templates/www/PageHomepage/PageHomepage.stories.js +2 -2
  227. package/src/templates/www/PageMissionDetail/PageMissionDetail.stories.js +2 -2
  228. package/src/templates/www/PagePodcast/PagePodcast.stories.js +2 -2
  229. package/src/templates/www/PagePodcastSeason/PagePodcastSeason.stories.js +2 -2
  230. package/src/templates/www/PagePressKitIndex/PagePressKitIndex.stories.js +2 -2
  231. package/src/templates/www/PageProfileDetail/PageProfileDetail.stories.js +2 -2
  232. package/src/templates/www/PageRoboticsDetail/PageRoboticsDetail.stories.js +2 -2
  233. package/src/templates/www/PageTimeline/PageTimeline.stories.js +2 -2
  234. package/src/templates/www/PageTopicDetail/PageTopicDetail.stories.js +2 -2
  235. package/src/templates/www/PageTopicDetail/PageTopicDetail.vue +2 -1
  236. package/src/utils/mixins.ts +7 -7
@@ -55,10 +55,13 @@ import { mixinHighlightPrimary, mixinUpdateSecondary } from './../../utils/mixin
55
55
  import type { BreadcrumbPathObject } from './../../interfaces'
56
56
 
57
57
  export default defineComponent({
58
- /** The complexity of this component is due to the need for it to be populated from multiple data sources
59
- ** SecondaryNav will first check to see if there is a navigation override from the data fetched for this specific page (data.breadcrumb and store.header.secondaryNav)
60
- ** If there is no breadcrumb override, then it will fallback to using the breadcrumbs derived form the active global nav item (store.header.globalChildren)
61
- ** store.header.secondaryNav reverts to null on route changes, so the breadcrumb override is re-evaluted on every page
58
+ /**
59
+ * This component is only visible on large viewports. Mobile secondary nav is handled in the \`NavMobile\` component.
60
+ *
61
+ * The complexity of this component is due to the need for it to be populated from multiple data sources
62
+ * SecondaryNav will first check to see if there is a navigation override from the data fetched for this specific page (data.breadcrumb and store.header.secondaryNav)
63
+ * If there is no breadcrumb override, then it will fallback to using the breadcrumbs derived form the active global nav item (store.header.globalChildren)
64
+ * store.header.secondaryNav reverts to null on route changes, so the breadcrumb override is re-evaluted on every page
62
65
  */
63
66
  name: 'NavSecondary',
64
67
  components: {
@@ -67,7 +67,7 @@
67
67
  import { defineComponent } from 'vue'
68
68
  import BaseLink from './../BaseLink/BaseLink.vue'
69
69
 
70
- interface NavItemObject {
70
+ export interface NavItemObject {
71
71
  path: String
72
72
  title: String
73
73
  children: [Object]
@@ -3,6 +3,7 @@ import NavSocial from './NavSocial.vue'
3
3
  export default {
4
4
  title: 'Navigation/Elements/NavSocial',
5
5
  component: NavSocial,
6
+ tags: ['navigation'],
6
7
  excludeStories: /.*Data$/
7
8
  }
8
9
 
@@ -2,7 +2,8 @@ import NewsDetailMediaContact from './NewsDetailMediaContact.vue'
2
2
 
3
3
  export default {
4
4
  title: 'Components/WWW/NewsDetail/NewsDetailMediaContact',
5
- component: NewsDetailMediaContact
5
+ component: NewsDetailMediaContact,
6
+ tags: ['listings']
6
7
  }
7
8
 
8
9
  const contacts = [
@@ -21,7 +21,7 @@
21
21
  import { defineComponent } from 'vue'
22
22
  import type { PropType } from 'vue'
23
23
 
24
- interface Contact {
24
+ export interface Contact {
25
25
  contact: {
26
26
  id: string
27
27
  name: string
@@ -6,12 +6,12 @@ export default {
6
6
  component: ParallaxContainer,
7
7
  decorators: [
8
8
  () => ({
9
- template: `<div id="storyDecorator" style="height:3000px"><story/></div>`
9
+ template: `<div id="storyRoot" style="height:3000px"><story/></div>`
10
10
  })
11
11
  ],
12
12
  parameters: {
13
13
  html: {
14
- root: '#storyDecorator'
14
+ root: '#storyRoot'
15
15
  },
16
16
  docs: {
17
17
  description: {
@@ -10,6 +10,7 @@
10
10
  </template>
11
11
 
12
12
  <script lang="ts">
13
+ /** Use `ParallaxContainer` with a nested `ParallaxElement` to create a parallax scrolling effect. */
13
14
  // @ts-nocheck
14
15
  export default {
15
16
  name: `ParallaxContainer`,
@@ -52,6 +52,7 @@
52
52
  </div>
53
53
  </template>
54
54
  <script lang="ts">
55
+ /** A tabbed carousel of podcast seasons based on series. If a season `id` is provided, the carousel will default to showing that season. If the user is currently on an episode page within the displayed season, that episode will be the active slide in the carousel. */
55
56
  import { defineComponent } from 'vue'
56
57
  import { useRoute } from 'vue-router'
57
58
  import type { PropType } from 'vue'
@@ -61,25 +62,25 @@ import ThumbnailCarousel from './../ThumbnailCarousel/ThumbnailCarousel.vue'
61
62
 
62
63
  const route = useRoute()
63
64
 
64
- interface Slide {
65
+ export interface Slide {
65
66
  url: string
66
67
  title: string
67
68
  thumbnailImage: Partial<ImageObject>
68
69
  }
69
70
 
70
- interface Episode {
71
+ export interface Episode {
71
72
  url: string
72
73
  title: string
73
74
  publicationDate: any
74
75
  thumbnailImage: Partial<ImageObject>
75
76
  }
76
77
 
77
- interface ActiveTab {
78
+ export interface ActiveTab {
78
79
  title?: string
79
80
  episodes?: Episode[] | Season
80
81
  }
81
82
 
82
- interface Season {
83
+ export interface Season {
83
84
  id: string
84
85
  url?: string
85
86
  title?: string
@@ -87,7 +88,7 @@ interface Season {
87
88
  episodes?: Episode[]
88
89
  }
89
90
 
90
- interface Series {
91
+ export interface Series {
91
92
  id: string
92
93
  title?: string
93
94
  url?: string
@@ -7,20 +7,15 @@ export default {
7
7
  subcomponents: { RoboticsDetailStatsMini },
8
8
  decorators: [
9
9
  () => ({
10
- template: `<div id="storyDecorator" class="mt-20"><story/></div>`
10
+ template: `<div id="storyRoot" class="mt-20"><story/></div>`
11
11
  })
12
12
  ],
13
13
  parameters: {
14
14
  html: {
15
- root: '#storyDecorator'
15
+ root: '#storyRoot'
16
16
  }
17
17
  },
18
- excludeStories: /.*Data$/,
19
- argTypes: {
20
- status: {
21
- control: { type: 'text' }
22
- }
23
- }
18
+ excludeStories: /.*Data$/
24
19
  }
25
20
 
26
21
  export const RoboticsDetailStatsData = {
@@ -3,6 +3,7 @@ import SearchFilterGroup from './SearchFilterGroup.vue'
3
3
  export default {
4
4
  title: 'Components/Search/SearchFilterGroup',
5
5
  component: SearchFilterGroup,
6
+ tags: ['search'],
6
7
  excludeStories: /.*Data$/
7
8
  }
8
9
 
@@ -3,6 +3,7 @@ import SearchInput from './SearchInput.vue'
3
3
  export default {
4
4
  title: 'Components/Search/SearchInput',
5
5
  component: SearchInput,
6
+ tags: ['forms', 'search'],
6
7
  excludeStories: /.*Data$/
7
8
  }
8
9
 
@@ -3,6 +3,7 @@ import SearchPagination from './SearchPagination.vue'
3
3
  export default {
4
4
  title: 'Components/Search/SearchPagination',
5
5
  component: SearchPagination,
6
+ tags: ['search'],
6
7
  excludeStories: /.*Data$/
7
8
  }
8
9
 
@@ -3,16 +3,7 @@ import SearchResultCard from './SearchResultCard.vue'
3
3
  export default {
4
4
  title: 'Components/Cards/SearchResultCards',
5
5
  component: SearchResultCard,
6
- argTypes: {
7
- headingLevel: {
8
- description:
9
- 'Change the heading level for semantic markup. This does not affect the style of the heading.',
10
- control: {
11
- type: 'select'
12
- },
13
- options: [null, 'h1', 'h2', 'h3', 'h4', 'h5']
14
- }
15
- },
6
+ tags: ['cards', 'search'],
16
7
  excludeStories: /.*Data$/
17
8
  }
18
9
 
@@ -289,6 +289,7 @@ export default defineComponent({
289
289
  required: false,
290
290
  default: false
291
291
  },
292
+ /** Change the heading level for semantic markup. This does not affect the style of the heading. */
292
293
  headingLevel: {
293
294
  type: (String as PropType<HeadingLevel>) || null,
294
295
  required: false,
@@ -3,24 +3,15 @@ import SearchResultGridItem from './SearchResultGridItem.vue'
3
3
  export default {
4
4
  title: 'Components/Cards/SearchResultGridItem',
5
5
  component: SearchResultGridItem,
6
+ tags: ['search', 'cards'],
6
7
  decorators: [
7
8
  () => ({
8
- template: `<div id="storyDecorator" class="relative grid grid-cols-2 gap-3 lg:grid-cols-3"><story/></div>`
9
+ template: `<div id="storyRoot" class="relative grid grid-cols-2 gap-3 lg:grid-cols-3"><story/></div>`
9
10
  })
10
11
  ],
11
- argTypes: {
12
- headingLevel: {
13
- description:
14
- 'Change the heading level for semantic markup. This does not affect the style of the heading.',
15
- control: {
16
- type: 'select',
17
- options: [null, 'h1', 'h2', 'h3', 'h4', 'h5']
18
- }
19
- }
20
- },
21
12
  parameters: {
22
13
  html: {
23
- root: '#storyDecorator'
14
+ root: '#storyRoot'
24
15
  }
25
16
  },
26
17
  excludeStories: /.*Data$/
@@ -196,13 +196,16 @@ export default defineComponent({
196
196
  type: String,
197
197
  default: undefined
198
198
  },
199
+ /** Change the heading level for semantic markup. This does not affect the style of the heading. */
199
200
  headingLevel: {
200
201
  type: (String as PropType<HeadingLevel>) || null,
201
- required: false
202
+ required: false,
203
+ default: undefined
202
204
  },
203
205
  pageContentType: {
204
206
  type: String,
205
- required: false
207
+ required: false,
208
+ default: undefined
206
209
  },
207
210
  primarySubject: {
208
211
  type: Object as PropType<PrimarySubjectObject>,
@@ -3,15 +3,15 @@ import SearchResultsList from './SearchResultsList.vue'
3
3
  export default {
4
4
  title: 'Components/Search/SearchResultsList',
5
5
  component: SearchResultsList,
6
+ tags: ['search', 'listings'],
6
7
  decorators: [
7
8
  () => ({
8
- template: `<div id="storyDecorator" class="max-w-screen-xl"><story/></div>`
9
+ template: `<div id="storyRoot" class="max-w-screen-xl"><story/></div>`
9
10
  })
10
11
  ],
11
- tags: ['!autodocs'],
12
12
  parameters: {
13
13
  html: {
14
- root: '#storyDecorator'
14
+ root: '#storyRoot'
15
15
  }
16
16
  },
17
17
  excludeStories: /.*Data$/
@@ -2,7 +2,8 @@ import SearchSelectMenu from './SearchSelectMenu.vue'
2
2
 
3
3
  export default {
4
4
  title: 'Components/Search/SearchSelectMenu',
5
- component: SearchSelectMenu
5
+ component: SearchSelectMenu,
6
+ tags: ['search']
6
7
  }
7
8
 
8
9
  export const BaseStory = {
@@ -122,6 +122,7 @@
122
122
  </template>
123
123
 
124
124
  <script lang="ts">
125
+ /** The SwimlaneCTA component combines BaseSwimlane with other elements (JPL logo, links, etc.) to create the component that is used on the WWW homepage. */
125
126
  import { defineComponent } from 'vue'
126
127
  import jplLogoSFFF from '@explorer-1/common/src/images/png/brand-jpl-logo-FFFFFF-S-94h28w@2x.png'
127
128
  import jplLogoFFF from '@explorer-1/common/src/images/png/brand-jpl-logo-FFFFFF-94h28w@2x.png'
@@ -2,7 +2,8 @@ import TextArea from './TextArea.vue'
2
2
 
3
3
  export default {
4
4
  title: 'Components/Forms/TextArea',
5
- component: TextArea
5
+ component: TextArea,
6
+ tags: ['forms']
6
7
  }
7
8
 
8
9
  // stories
@@ -2,7 +2,8 @@ import TextInput from './TextInput.vue'
2
2
 
3
3
  export default {
4
4
  title: 'Components/Forms/TextInput',
5
- component: TextInput
5
+ component: TextInput,
6
+ tags: ['forms']
6
7
  }
7
8
 
8
9
  // stories
@@ -3,6 +3,7 @@ import TheFooter from './TheFooter.vue'
3
3
  export default {
4
4
  title: 'Navigation/Footers/External Footer',
5
5
  component: TheFooter,
6
+ tags: ['navigation'],
6
7
  excludeStories: /.*Data$/,
7
8
  parameters: {
8
9
  docs: {
@@ -190,10 +190,10 @@
190
190
  </template>
191
191
  <script lang="ts">
192
192
  // @ts-nocheck
193
- import { defineComponent } from 'vue'
193
+ import { defineComponent, type PropType } from 'vue'
194
194
  import { mapStores } from 'pinia'
195
195
  import { useThemeStore } from './../../store/theme'
196
- import { mixinGetRouterLink, mixinGetLinkText } from './../../utils/mixins'
196
+ import { mixinGetRouterLink, mixinGetLinkText, type NavLinkObject } from './../../utils/mixins'
197
197
  import IconExternal from './../Icons/IconExternal.vue'
198
198
  import BaseLink from './../BaseLink/BaseLink.vue'
199
199
  import BaseButton from './../BaseButton/BaseButton.vue'
@@ -201,6 +201,31 @@ import NavSocial from './../NavSocial/NavSocial.vue'
201
201
  import TheFooterSignUp from './../TheFooter/TheFooterSignUp.vue'
202
202
  import LogoCaltech from './../LogoCaltech/LogoCaltech.vue'
203
203
 
204
+ export type FooterNavItem = {
205
+ titleLink: {
206
+ linkPage: {
207
+ title: string
208
+ url: string
209
+ }
210
+ title: string
211
+ }
212
+ links: NavLinkObject[]
213
+ }
214
+
215
+ export type FooterData = {
216
+ footerMoreFromJpl: NavLinkObject[]
217
+ footerNavigation: FooterNavItem[]
218
+ footerLinks: NavLinkObject[]
219
+ relatedNasaSites: {
220
+ title: string
221
+ path: string
222
+ }[]
223
+ footerMeta: {
224
+ label: string
225
+ text: string
226
+ }[]
227
+ }
228
+
204
229
  export default defineComponent({
205
230
  name: 'TheFooter',
206
231
  components: {
@@ -213,13 +238,14 @@ export default defineComponent({
213
238
  },
214
239
  props: {
215
240
  data: {
216
- type: Object || null,
241
+ type: Object as PropType<FooterData>,
217
242
  required: false,
218
243
  default: null
219
244
  },
220
245
  commitSha: {
221
246
  type: String,
222
- required: false
247
+ required: false,
248
+ default: undefined
223
249
  }
224
250
  },
225
251
  methods: {
@@ -3,7 +3,7 @@ import ThumbnailCarousel from './ThumbnailCarousel.vue'
3
3
  export default {
4
4
  title: 'Components/Utilities/ThumbnailCarousel',
5
5
  component: ThumbnailCarousel,
6
- tags: ['skip-test'],
6
+ tags: ['carousels', 'listings'],
7
7
  parameters: {
8
8
  docs: {
9
9
  description: {
@@ -17,13 +17,14 @@
17
17
  </MixinCarousel>
18
18
  </template>
19
19
  <script lang="ts">
20
+ /** Ideal for use in a tabbed carousel. See `PodcastSeriesCarousel` and `PageImageDetail` for usage examples. Styled with three cards and a basic card style with a square image. */
20
21
  import { defineComponent } from 'vue'
21
22
  import type { PropType } from 'vue'
22
23
  import type { ImageObject } from '../../interfaces'
23
24
  import MixinCarousel from './../MixinCarousel/MixinCarousel.vue'
24
25
  import SearchResultGridItem from './../SearchResultGridItem/SearchResultGridItem.vue'
25
26
 
26
- interface Slide {
27
+ export interface Slide {
27
28
  url: string
28
29
  title: string
29
30
  thumbnailImage: Partial<ImageObject>
@@ -52,7 +52,7 @@
52
52
  />
53
53
  </BaseImagePlaceholder>
54
54
  <!-- @ts-ignore -->
55
- <BlockVideoEmbed :data="data" />
55
+ <BlockVideoEmbed :data="data as unknown as BlockVideoEmbedData" />
56
56
  <BlockText
57
57
  variant="medium"
58
58
  :text="data.description"
@@ -80,7 +80,7 @@ import BaseImage from './../BaseImage/BaseImage.vue'
80
80
  import BaseImagePlaceholder from './../BaseImagePlaceholder/BaseImagePlaceholder.vue'
81
81
  import BaseLink from './../BaseLink/BaseLink.vue'
82
82
  import BlockText from './../BlockText/BlockText.vue'
83
- import BlockVideoEmbed from './../BlockVideoEmbed/BlockVideoEmbed.vue'
83
+ import BlockVideoEmbed, { type BlockVideoEmbedData } from './../BlockVideoEmbed/BlockVideoEmbed.vue'
84
84
 
85
85
  export default defineComponent({
86
86
  name: 'TimelineDialog',
@@ -2,6 +2,7 @@ import TopicDetailMissionCarousel from './TopicDetailMissionCarousel.vue'
2
2
  export default {
3
3
  title: 'Components/WWW/TopicDetail/MissionCarousel/TopicDetailMissionCarousel',
4
4
  component: TopicDetailMissionCarousel,
5
+ tags: ['carousel', 'listings'],
5
6
  excludeStories: /.*Data$/
6
7
  }
7
8
 
@@ -7,12 +7,12 @@ export default {
7
7
  component: TopicDetailMissionCarouselItem,
8
8
  decorators: [
9
9
  () => ({
10
- template: `<div id="storyDecorator" class="relative lg:w-1/3"><story/></div>`
10
+ template: `<div id="storyRoot" class="relative lg:w-1/3"><story/></div>`
11
11
  })
12
12
  ],
13
13
  parameters: {
14
14
  html: {
15
- root: '#storyDecorator'
15
+ root: '#storyRoot'
16
16
  }
17
17
  },
18
18
  excludeStories: /.*Data$/
@@ -2,6 +2,7 @@ import TopicDetailMore from './TopicDetailMore.vue'
2
2
  export default {
3
3
  title: 'Components/WWW/TopicDetail/TopicDetailMore',
4
4
  component: TopicDetailMore,
5
+ tags: ['listings'],
5
6
  excludeStories: /.*Data$/
6
7
  }
7
8
 
@@ -2,14 +2,15 @@ import TopicDetailMoreItem from './TopicDetailMoreItem.vue'
2
2
  export default {
3
3
  title: 'Components/WWW/TopicDetail/TopicDetailMore/TopicDetailMoreItem',
4
4
  component: TopicDetailMoreItem,
5
+ tags: ['cards'],
5
6
  decorators: [
6
7
  () => ({
7
- template: `<div id="storyDecorator" class="lg:w-1/3"><story/></div>`
8
+ template: `<div id="storyRoot" class="lg:w-1/3"><story/></div>`
8
9
  })
9
10
  ],
10
11
  parameters: {
11
12
  html: {
12
- root: '#storyDecorator'
13
+ root: '#storyRoot'
13
14
  }
14
15
  },
15
16
  excludeStories: /.*Data$/
@@ -67,7 +67,7 @@ import BlockRelatedLinks, {
67
67
  } from './../BlockRelatedLinks/BlockRelatedLinks.vue'
68
68
  import BlockImageGallery from './../BlockImageGallery/BlockImageGallery.vue'
69
69
 
70
- interface BlockData {
70
+ export interface TopicDetailStreamfieldBlockData {
71
71
  blockType: string
72
72
  heading: string
73
73
  galleryTitle: string
@@ -86,7 +86,7 @@ export default defineComponent({
86
86
  },
87
87
  props: {
88
88
  data: {
89
- type: Array as PropType<BlockData[]>,
89
+ type: Array as PropType<TopicDetailStreamfieldBlockData[]>,
90
90
  required: false
91
91
  },
92
92
  topic: {
package/src/constants.ts CHANGED
@@ -1,6 +1,4 @@
1
- import type { PillDictionaryInterface } from './interfaces'
2
-
3
- export const eduMetadataDictionary: PillDictionaryInterface = {
1
+ export const eduMetadataDictionary = {
4
2
  EDUNewsPage: {
5
3
  label: 'News',
6
4
  variant: 'primary',
@@ -73,7 +71,7 @@ export const eduMetadataDictionary: PillDictionaryInterface = {
73
71
  icons: 'secondary',
74
72
  type: 'resource'
75
73
  }
76
- }
74
+ } as const
77
75
 
78
76
  interface contentTypeObject {
79
77
  model: string
@@ -230,7 +228,7 @@ export const contentTypes: contentTypeObject[] = [
230
228
  model: 'edu_resources.EDUVideoDetailPage',
231
229
  label: 'EDU Videos'
232
230
  }
233
- ]
231
+ ] as const
234
232
 
235
233
  interface contentAliasObject extends contentTypeObject {
236
234
  interface?: string
@@ -14,12 +14,12 @@ export default {
14
14
  },
15
15
  parameters: {
16
16
  html: {
17
- root: '#storyDecorator'
17
+ root: '#storyRoot'
18
18
  }
19
19
  },
20
20
  decorators: [
21
21
  () => ({
22
- template: `<div id="storyDecorator" class="container mx-auto border border-black"><story/></div>`
22
+ template: `<div id="storyRoot" class="container mx-auto border border-black"><story/></div>`
23
23
  })
24
24
  ]
25
25
  }
@@ -43,16 +43,22 @@ Maintained by [DesignLab](https://www.behance.net/JPL-DesignLab)
43
43
 
44
44
  <div>
45
45
  <table
46
- class="w-auto text-left"
46
+ className="w-auto text-left"
47
47
  style={{ width: 'unset' }}
48
48
  >
49
49
  <thead>
50
- <tr class="text-left">
50
+ <tr className="text-left">
51
51
  <th>Package</th>
52
52
  <th>Version</th>
53
53
  </tr>
54
54
  </thead>
55
55
  <tbody>
56
+ <tr>
57
+ <td>[@nasa-jpl/explorer-1](https://www.npmjs.com/package/@nasa-jpl/explorer-1)</td>
58
+ <td>
59
+ <code>{packageVersions.__VERSION__NASA_JPL_EXPLORER_1__}</code>
60
+ </td>
61
+ </tr>
56
62
  <tr>
57
63
  <td>[@explorer-1/common](https://www.npmjs.com/package/@explorer-1/common)</td>
58
64
  <td>
@@ -65,6 +71,12 @@ Maintained by [DesignLab](https://www.behance.net/JPL-DesignLab)
65
71
  <code>{packageVersions.__VERSION__EXPLORER_1_VUE__}</code>
66
72
  </td>
67
73
  </tr>
74
+ <tr>
75
+ <td>[@explorer-1/html](https://www.npmjs.com/package/@explorer-1/html)</td>
76
+ <td>
77
+ <code>{packageVersions.__VERSION__EXPLORER_1_HTML__}</code>
78
+ </td>
79
+ </tr>
68
80
  </tbody>
69
81
  </table>
70
82
  </div>