@explorer-1/vue 0.1.4 → 0.1.5

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 (156) hide show
  1. package/dist/explorer-1-vue.js +8960 -10011
  2. package/dist/explorer-1-vue.umd.cjs +13 -16
  3. package/dist/src/components/BaseHeading/BaseHeading.stories.d.ts +6 -11
  4. package/dist/src/components/BaseHeading/BaseHeading.vue.d.ts +6 -10
  5. package/dist/src/components/BasePlaceholder/BasePlaceholder.stories.d.ts +0 -1
  6. package/dist/src/components/BlockDialog/BlockDialog.stories.d.ts +81 -0
  7. package/dist/src/components/BlockImage/BlockImage.stories.d.ts +0 -1
  8. package/dist/src/components/BlockLinkCarousel/BlockLinkCarousel.stories.d.ts +6 -0
  9. package/dist/src/components/BlockLinkCarousel/BlockLinkCarousel.vue.d.ts +6 -0
  10. package/dist/src/components/BlockQuote/BlockQuote.stories.d.ts +0 -1
  11. package/dist/src/components/BlockStreamfield/BlockStreamfield.stories.d.ts +58 -8
  12. package/dist/src/components/BlockVideoEmbed/BlockVideoEmbed.vue.d.ts +7 -3
  13. package/dist/src/components/HeroListingIndex/HeroListingIndex.stories.d.ts +1 -0
  14. package/dist/src/components/HeroMedium/HeroMedium.stories.d.ts +1 -0
  15. package/dist/src/components/HeroMedium/HeroSmall.stories.d.ts +1 -0
  16. package/dist/src/components/HomepageEmbedBlock/HomepageEmbedBlock.stories.d.ts +1 -6
  17. package/dist/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.stories.d.ts +31 -47
  18. package/dist/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.vue.d.ts +5 -1
  19. package/dist/src/components/HomepageStats/HomepageStats.stories.d.ts +19 -9
  20. package/dist/src/components/HomepageTeaserBlock/HomepageTeaserBlock.stories.d.ts +6 -50
  21. package/dist/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue.d.ts +7 -1
  22. package/dist/src/components/MissionDetailAbout/MissionDetailAbout.stories.d.ts +1 -6
  23. package/dist/src/components/MissionDetailHero/MissionDetailHero.stories.d.ts +11 -11
  24. package/dist/src/components/MissionDetailHighlights/MissionDetailHighlights.stories.d.ts +6 -6
  25. package/dist/src/components/NavDesktop/NavDesktop.stories.d.ts +3 -6
  26. package/dist/src/components/NavDesktopEdu/NavDesktopEdu.stories.d.ts +289 -0
  27. package/dist/src/components/NavLogoLinks/NavLogoLinks.stories.d.ts +0 -5
  28. package/dist/src/components/NavMobile/NavMobile.stories.d.ts +42 -9
  29. package/dist/src/components/NavMobile/NavMobile.vue.d.ts +13 -2
  30. package/dist/src/components/NavMobile/NavMobileEdu.stories.d.ts +392 -0
  31. package/dist/src/components/NavSocial/NavSocial.stories.d.ts +42 -1
  32. package/dist/src/components/NavSocial/NavSocial.vue.d.ts +42 -1
  33. package/dist/src/components/TheFooter/TheFooter.vue.d.ts +9 -1
  34. package/dist/src/components/TimelineDialog/TimelineDialog.stories.d.ts +75 -0
  35. package/dist/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.stories.d.ts +1 -7
  36. package/dist/src/components/TopicDetailStreamfield/TopicDetailStreamfield.stories.d.ts +1 -6
  37. package/dist/src/docs/foundation/typography.stories.d.ts +6 -10
  38. package/dist/src/store/curatedGallery.d.ts +6 -0
  39. package/dist/src/store/search.d.ts +10 -0
  40. package/dist/src/templates/PageAudioDetail/PageAudioDetail.stories.d.ts +102 -0
  41. package/dist/src/templates/PageContent/PageContent.stories.d.ts +2 -1
  42. package/dist/src/templates/PageContent/PageContent.vue.d.ts +8 -0
  43. package/dist/src/templates/PageEventDetail/PageEventDetail.stories.d.ts +1 -1
  44. package/dist/src/templates/PageImageDetail/PageImageDetail.stories.d.ts +141 -0
  45. package/dist/src/templates/PageNewsDetail/PageNewsDetail.stories.d.ts +1163 -228
  46. package/dist/src/templates/PageVideoDetail/PageVideoDetail.stories.d.ts +56 -0
  47. package/dist/src/templates/edu/PageContentEdu.stories.d.ts +27 -0
  48. package/dist/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.stories.d.ts +360 -0
  49. package/dist/src/templates/www/PageAsteroidWatchContent/PageAsteroidWatchContent.stories.d.ts +99 -0
  50. package/dist/src/templates/{edu/PageEduNewsDetail.stories.d.ts → www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.stories.d.ts} +48 -67
  51. package/dist/src/templates/www/PageCuratedGallery/PageCuratedGallery.stories.d.ts +98 -0
  52. package/dist/src/templates/www/PageGoDirectory/PageGoDirectory.stories.d.ts +56 -0
  53. package/dist/src/templates/www/PageHomepage/PageHomepage.stories.d.ts +704 -0
  54. package/dist/src/templates/www/PageInfographicDetail/PageInfographicDetail.stories.d.ts +41 -0
  55. package/dist/src/templates/www/PageMaintenanceMode/PageMaintenanceMode.stories.d.ts +14 -0
  56. package/dist/src/templates/www/PageMissionDetail/PageMissionDetail.stories.d.ts +875 -0
  57. package/dist/src/templates/www/PagePodcast/PagePodcast.stories.d.ts +115 -0
  58. package/dist/src/templates/www/PagePodcastSeason/PagePodcastSeason.stories.d.ts +84 -0
  59. package/dist/src/templates/www/PagePressKitIndex/PagePressKitIndex.stories.d.ts +64 -0
  60. package/dist/src/templates/www/PageProfileDetail/PageProfileDetail.stories.d.ts +60 -0
  61. package/dist/src/templates/www/PageRoboticsDetail/PageRoboticsDetail.stories.d.ts +170 -0
  62. package/dist/src/templates/www/PageTimeline/PageTimeline.stories.d.ts +338 -0
  63. package/dist/src/templates/www/PageTopicDetail/PageTopicDetail.stories.d.ts +297 -0
  64. package/dist/style.css +1 -1
  65. package/lib/main.ts +4 -0
  66. package/package.json +2 -1
  67. package/src/components/BaseAudio/BaseAudio.vue +0 -1
  68. package/src/components/BaseHeading/BaseHeading.stories.js +0 -1
  69. package/src/components/BaseHeading/BaseHeading.vue +5 -7
  70. package/src/components/BasePlaceholder/BasePlaceholder.stories.js +0 -1
  71. package/src/components/BlockAudio/BlockAudio.stories.js +2 -3
  72. package/src/components/BlockDialog/BlockDialog.stories.js +56 -0
  73. package/src/components/BlockDialog/BlockDialog.stories.mdx +28 -0
  74. package/src/components/BlockDialog/BlockDialog.vue +132 -0
  75. package/src/components/BlockHeading/BlockHeading.stories.js +2 -2
  76. package/src/components/BlockImage/BlockImage.stories.js +0 -1
  77. package/src/components/BlockImageCarouselItem/BlockImageCarouselItem.vue +0 -1
  78. package/src/components/BlockImageGallery/BlockImageGallery.vue +0 -1
  79. package/src/components/BlockLinkCarousel/BlockLinkCarousel.vue +4 -2
  80. package/src/components/BlockQuote/BlockQuote.stories.js +0 -1
  81. package/src/components/BlockStreamfield/BlockStreamfield.stories.js +20 -9
  82. package/src/components/BlockVideoEmbed/BlockVideoEmbed.vue +3 -2
  83. package/src/components/DsnWidget/DsnWidget.vue +2 -2
  84. package/src/components/HomepageEmbedBlock/HomepageEmbedBlock.stories.js +1 -8
  85. package/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.stories.js +115 -118
  86. package/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.vue +3 -23
  87. package/src/components/HomepageMissionsCarousel/HomepageMissionsCarouselItem.vue +1 -2
  88. package/src/components/HomepageStats/HomepageStats.stories.js +10 -10
  89. package/src/components/HomepageStats/HomepageStats.vue +8 -8
  90. package/src/components/HomepageTeaserBlock/HomepageTeaserBlock.stories.js +11 -18
  91. package/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue +20 -14
  92. package/src/components/HomepageTeaserBlock/HomepageTeaserBlockCardImage.vue +1 -1
  93. package/src/components/MissionDetailAbout/MissionDetailAbout.stories.js +1 -8
  94. package/src/components/MissionDetailHero/MissionDetailHero.stories.js +11 -11
  95. package/src/components/MissionDetailHighlights/MissionDetailHighlights.stories.js +6 -6
  96. package/src/components/MixinCarousel/MixinCarousel.docs.mdx +1 -1
  97. package/src/components/NavDesktop/NavDesktop.stories.js +1 -4
  98. package/src/components/NavDesktopEdu/NavDesktopEdu.stories.js +2 -1
  99. package/src/components/NavMobile/NavMobileEdu.stories.js +2 -1
  100. package/src/components/RoboticsDetailStats/RoboticsDetailStats.stories.js +1 -1
  101. package/src/components/TimelineDialog/TimelineDialog.stories.js +47 -0
  102. package/src/components/TimelineDialog/TimelineDialog.stories.mdx +26 -0
  103. package/src/components/TimelineDialog/TimelineDialog.vue +145 -0
  104. package/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.stories.js +1 -9
  105. package/src/components/TopicDetailStreamfield/TopicDetailStreamfield.stories.js +1 -8
  106. package/src/docs/utils/ComponentItem.jsx +0 -1
  107. package/src/store/curatedGallery.ts +23 -0
  108. package/src/store/search.ts +43 -0
  109. package/src/templates/PageAudioDetail/PageAudioDetail.stories.js +106 -0
  110. package/src/templates/PageAudioDetail/PageAudioDetail.vue +375 -0
  111. package/src/templates/PageContent/PageContent.stories.js +2 -1
  112. package/src/templates/PageEventDetail/PageEventDetail.stories.js +1 -1
  113. package/src/templates/PageImageDetail/PageImageDetail.stories.js +116 -0
  114. package/src/templates/PageImageDetail/PageImageDetail.vue +444 -0
  115. package/src/templates/PageNewsDetail/PageNewsDetail.stories.js +3 -2
  116. package/src/templates/PageNewsDetail/PageNewsDetail.vue +1 -1
  117. package/src/templates/PageVideoDetail/PageVideoDetail.stories.js +84 -0
  118. package/src/templates/PageVideoDetail/PageVideoDetail.vue +173 -0
  119. package/src/templates/edu/PageContentEdu.stories.js +1 -0
  120. package/src/templates/edu/{PageEduNewsDetail.stories.js → PageEduNewsDetail/PageEduNewsDetail.stories.js} +5 -3
  121. package/src/templates/edu/{PageEduNewsDetail.vue → PageEduNewsDetail/PageEduNewsDetail.vue} +3 -2
  122. package/src/templates/www/PageAsteroidWatchContent/PageAsteroidWatchContent.stories.js +54 -0
  123. package/src/templates/www/PageAsteroidWatchContent/PageAsteroidWatchContent.vue +79 -0
  124. package/src/templates/www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.stories.js +34 -0
  125. package/src/templates/www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.vue +56 -0
  126. package/src/templates/www/PageCuratedGallery/PageCuratedGallery.stories.js +110 -0
  127. package/src/templates/www/PageCuratedGallery/PageCuratedGallery.vue +345 -0
  128. package/src/templates/www/PageGoDirectory/PageGoDirectory.stories.js +61 -0
  129. package/src/templates/www/PageGoDirectory/PageGoDirectory.vue +76 -0
  130. package/src/templates/www/PageHomepage/PageHomepage.stories.js +101 -0
  131. package/src/templates/www/PageHomepage/PageHomepage.vue +136 -0
  132. package/src/templates/www/PageInfographicDetail/PageInfographicDetail.stories.js +46 -0
  133. package/src/templates/www/PageInfographicDetail/PageInfographicDetail.vue +125 -0
  134. package/src/templates/www/PageMaintenanceMode/PageMaintenanceMode.stories.js +14 -0
  135. package/src/templates/www/PageMaintenanceMode/PageMaintenanceMode.vue +94 -0
  136. package/src/templates/www/PageMissionDetail/PageMissionDetail.stories.js +246 -0
  137. package/src/templates/www/PageMissionDetail/PageMissionDetail.vue +136 -0
  138. package/src/templates/www/PagePodcast/PagePodcast.stories.js +86 -0
  139. package/src/templates/www/PagePodcast/PagePodcast.vue +219 -0
  140. package/src/templates/www/PagePodcastSeason/PagePodcastSeason.stories.js +96 -0
  141. package/src/templates/www/PagePodcastSeason/PagePodcastSeason.vue +191 -0
  142. package/src/templates/www/PagePressKitIndex/PagePressKitIndex.stories.js +72 -0
  143. package/src/templates/www/PagePressKitIndex/PagePressKitIndex.vue +76 -0
  144. package/src/templates/www/PageProfileDetail/PageProfileDetail.stories.js +76 -0
  145. package/src/templates/www/PageProfileDetail/PageProfileDetail.vue +178 -0
  146. package/src/templates/www/PageRoboticsDetail/PageRoboticsDetail.stories.js +43 -0
  147. package/src/templates/www/PageRoboticsDetail/PageRoboticsDetail.vue +101 -0
  148. package/src/templates/www/PageTimeline/BlockMilestone.vue +99 -0
  149. package/src/templates/www/PageTimeline/PageTimeline.stories.js +357 -0
  150. package/src/templates/www/PageTimeline/PageTimeline.vue +384 -0
  151. package/src/templates/www/PageTopicDetail/PageTopicDetail.stories.js +87 -0
  152. package/src/templates/www/PageTopicDetail/PageTopicDetail.vue +121 -0
  153. package/src/utils/mixins.ts +1 -1
  154. package/components.d.ts +0 -217
  155. package/src/templates/www/HomePage/HomePage.vue +0 -30
  156. /package/dist/src/components/{MixinDropdownToggle/MixinDropdownToggle.vue.d.ts → NavDropdownToggle/NavDropdownToggle.vue.d.ts} +0 -0
@@ -1,9 +1,9 @@
1
- import imagePlanetJupiter from '@explorer-1/common-storybook/src/images/mission-highlights-800h-at-jupiter.png'
2
- import imagePlanetEarth from '@explorer-1/common-storybook/src/images/mission-highlights-800h-earth-orbiting-on-earth.png'
3
- import imageMoon from '@explorer-1/common-storybook/src/images/mission-highlights-800h-earths-moon.png'
4
- import imageInterstellar from '@explorer-1/common-storybook/src/images/mission-highlights-800h-interstellar.jpg'
5
- import imagePlanetMarsA from '@explorer-1/common-storybook/src/images/mission-highlights-800h-mars-orbiting.png'
6
- import imagePlanetMarsB from '@explorer-1/common-storybook/src/images/mission-highlights-800h-on-mars.png'
1
+ import imagePlanetJupiter from '@explorer-1/common-storybook/src/public/images/mission-highlights-800h-at-jupiter.png'
2
+ import imagePlanetEarth from '@explorer-1/common-storybook/src/public/images/mission-highlights-800h-earth-orbiting-on-earth.png'
3
+ import imageMoon from '@explorer-1/common-storybook/src/public/images/mission-highlights-800h-earths-moon.png'
4
+ import imageInterstellar from '@explorer-1/common-storybook/src/public/images/mission-highlights-800h-interstellar.jpg'
5
+ import imagePlanetMarsA from '@explorer-1/common-storybook/src/public/images/mission-highlights-800h-mars-orbiting.png'
6
+ import imagePlanetMarsB from '@explorer-1/common-storybook/src/public/images/mission-highlights-800h-on-mars.png'
7
7
 
8
8
  import MissionDetailHighlights from './MissionDetailHighlights.vue'
9
9
  export default {
@@ -7,7 +7,7 @@ import * as Stories from './MixinCarousel.stories'
7
7
 
8
8
  This is a `swiper.js` wrapper for the carousels that consist of multiple cards in view that also bleed to full width.
9
9
 
10
- <Canvas of={Stories.Default} />
10
+ <Canvas of={Stories.BaseStory} />
11
11
 
12
12
  ### Variants
13
13
 
@@ -9,10 +9,7 @@ import NavDesktopDropdownMore from './NavDesktopDropdownMore.vue'
9
9
  export default {
10
10
  title: 'Navigation/Headers/WWW/NavDesktop',
11
11
  component: NavDesktop,
12
- excludeStories: /.*Data$/,
13
- parameters: {
14
- viewMode: 'canvas'
15
- }
12
+ excludeStories: /.*Data$/
16
13
  }
17
14
 
18
15
  export const NavDesktopTopHatData = {
@@ -9,9 +9,10 @@ import NavDesktopDropdownMore from './../NavDesktop/NavDesktopDropdownMore.vue'
9
9
  export default {
10
10
  title: 'Navigation/Headers/EDU/NavDesktopEdu',
11
11
  component: NavDesktop,
12
+ tags: ['!autodocs'],
12
13
  excludeStories: /.*Data$/,
13
14
  parameters: {
14
- viewMode: 'canvas'
15
+ layout: 'fullscreen'
15
16
  }
16
17
  }
17
18
 
@@ -4,9 +4,10 @@ import NavMobile from './NavMobile.vue'
4
4
  export default {
5
5
  title: 'Navigation/Headers/EDU/NavMobile',
6
6
  component: NavMobile,
7
+ tags: ['!autodocs'],
7
8
  excludeStories: /.*Data$/,
8
9
  parameters: {
9
- viewMode: 'canvas',
10
+ layout: 'fullscreen',
10
11
  viewport: {
11
12
  defaultViewport: 'mobile2'
12
13
  },
@@ -31,7 +31,7 @@ export const RoboticsDetailStatsData = {
31
31
  animalAnalogName: 'Lemur',
32
32
  animalAnalogIcon: {
33
33
  webp: {
34
- url: 'https://images.unsplash.com/photo-1535468899888-92047ec84051?fm=webp&crop=entropy&w=320&h=320&fit=crop'
34
+ url: 'https://picsum.photos/320/320'
35
35
  },
36
36
  src: {
37
37
  url: 'https://picsum.photos/320/320'
@@ -0,0 +1,47 @@
1
+ import TimelineDialog from './TimelineDialog.vue'
2
+
3
+ export default {
4
+ title: 'Components/WWW/TimelineDialog',
5
+ component: TimelineDialog
6
+ }
7
+
8
+ export const BaseStory = {
9
+ name: 'TimelineDialog',
10
+ args: {
11
+ data: {
12
+ id: '7535b4d1-e803-49dd-ad06-8925912464af',
13
+ heading: 'First Rocket Tests by Founders of What Would Become the Jet Propulsion Laboratory',
14
+ date: '1936-10-31',
15
+ displayDate: 'October 31, 1936',
16
+ milestoneLabel: 'CATEGORY LABEL',
17
+ description:
18
+ 'Theodore von Kármán, the head of the Guggenheim Aeronautical Laboratory at Caltech, is overseeing pioneering work on rocket propulsion when a pair of young rocket enthusiasts, John W. Parsons and Edward S. Forman, come to him looking for help. Von Kármán connects them to some grad students, and on Halloween, a group goes out to the Arroyo Seco, a dry canyon wash at the foot of the San Gabriel Mountains on the northwest edge of Pasadena. The seven men -- Frank Malina, A.O. Smith, William Bollay, Carlos Wood, William Rockefeller, Parsons and Forman -- try four times to ignite a small rocket motor to gather thrust data, with only the last attempt succeeding (and setting fire to the outside of the motor, too). ',
19
+ milestoneLinkLabel: 'Optional CTA Link',
20
+ embed: null,
21
+ milestoneLink: {
22
+ externalLink: 'https://mars.nasa.gov/insight/',
23
+ page: null
24
+ },
25
+ image: {
26
+ alt: 'Fourth image',
27
+ src: {
28
+ height: 400,
29
+ url: 'https://picsum.photos/800/400',
30
+ width: 800
31
+ },
32
+ srcSet: 'https://picsum.photos/400/200 320w, https://picsum.photos/800/400 1024w'
33
+ }
34
+ },
35
+ dialogBoxClass: 'max-w-xl'
36
+ },
37
+ render: (args) => ({
38
+ components: { TimelineDialog },
39
+ setup() {
40
+ return { args }
41
+ },
42
+ template: `<div>
43
+ <button type="button" :data-a11y-dialog-show="args.data.id">Open the dialog</button>
44
+ <TimelineDialog :data="args.data" :dialog-box-class="args.dialogBoxClass"></TimelineDialog>
45
+ </div>`
46
+ })
47
+ }
@@ -0,0 +1,26 @@
1
+ import { Meta, Story, Canvas } from '@storybook/addon-docs'
2
+ import * as Stories from './TimelineDialog.stories'
3
+
4
+ <Meta of={Stories} />
5
+
6
+ # TimelineDialog
7
+
8
+ This component is an accessible dialog window that utilizes the efficient and lightweight `a11y-dialog` package.
9
+ It adheres to the [Dialog (Modal) pattern](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/) outlined in the Accessible Rich Internet Applications (ARIA) Authoring Practices Guide.
10
+
11
+ <Canvas
12
+ of={Stories.BaseStory}
13
+ className="sbdocs-preview-full-width"
14
+ />
15
+
16
+ ### Basic Usage
17
+
18
+ To trigger dialog opening, use the `data-a11y-dialog-show` attribute with the value set to the `id` of the dialog element you want to open.
19
+
20
+ ```
21
+ <button type="button" data-a11y-dialog-show="your-dialog-id">
22
+ Open the dialog
23
+ </button>
24
+ ```
25
+
26
+ See [all documentation in the repository](https://github.com/KittyGiraudel/a11y-dialog).
@@ -0,0 +1,145 @@
1
+ <template>
2
+ <BlockDialog
3
+ v-if="data"
4
+ :dialog-id="data.id"
5
+ :heading-id="`${data.id}-heading`"
6
+ :dialog-box-class="dialogBoxClass"
7
+ @hide="() => $emit('hide')"
8
+ >
9
+ <div class="p-3 sm:p-10">
10
+ <p class="font-primary text-xl sm:text-4xl font-bold leading-relaxed">
11
+ <template v-if="data.displayDate">
12
+ {{ data.displayDate }}
13
+ </template>
14
+ <template v-else>
15
+ {{ theDate }}
16
+ </template>
17
+ </p>
18
+ <hr
19
+ aria-hidden="true"
20
+ class="bg-gray-light-mid w-full h-2px border-0 my-3"
21
+ />
22
+ <div
23
+ tabindex="0"
24
+ class="dialog-main py-3 overflow-auto relative"
25
+ >
26
+ <h2
27
+ :id="`${data.id}-heading`"
28
+ class="mt-4 mb-2 font-primary text-xl sm:text-2xl font-bold sm:leading-normal"
29
+ >
30
+ {{ data.heading }}
31
+ </h2>
32
+ <p
33
+ v-if="data.milestoneLabel"
34
+ class="font-primary text-gray-mid-dark text-lg sm:text-2xl font-normal leading-relaxed uppercase my-3"
35
+ >
36
+ {{ data.milestoneLabel }}
37
+ </p>
38
+ <BaseImagePlaceholder
39
+ v-if="data.image"
40
+ aspect-ratio="16:9"
41
+ transparent-mode
42
+ class="sm:mx-20 mb-5 sm:mb-8"
43
+ >
44
+ <BaseImage
45
+ :src="data.image.src.url"
46
+ :width="data.image.src.width"
47
+ :height="data.image.src.height"
48
+ :alt="data.image.alt"
49
+ object-fit-class="contain"
50
+ image-class="swiper-lazy"
51
+ loading="lazy"
52
+ />
53
+ </BaseImagePlaceholder>
54
+ <!-- @ts-ignore -->
55
+ <BlockVideoEmbed :data="data" />
56
+ <BlockText
57
+ variant="medium"
58
+ :text="data.description"
59
+ />
60
+ </div>
61
+ <div class="my-3">
62
+ <BaseLink
63
+ v-if="data.milestoneLink"
64
+ variant="default"
65
+ :to="data.milestoneLink.page ? data.milestoneLink.page.url : undefined"
66
+ :href="data.milestoneLink.externalLink"
67
+ link-class="block mt-3 text-center sm:text-left text-2xl"
68
+ >
69
+ {{ getLinkLabel() }}
70
+ </BaseLink>
71
+ </div>
72
+ </div>
73
+ </BlockDialog>
74
+ </template>
75
+ <script lang="ts">
76
+ import { defineComponent, type PropType } from 'vue'
77
+ import BlockDialog from './../BlockDialog/BlockDialog.vue'
78
+ import { Milestone } from './../../templates/www/PageTimeline/BlockMilestone.vue'
79
+ import BaseImage from './../BaseImage/BaseImage.vue'
80
+ import BaseImagePlaceholder from './../BaseImagePlaceholder/BaseImagePlaceholder.vue'
81
+ import BaseLink from './../BaseLink/BaseLink.vue'
82
+ import BlockText from './../BlockText/BlockText.vue'
83
+ import BlockVideoEmbed from './../BlockVideoEmbed/BlockVideoEmbed.vue'
84
+
85
+ export default defineComponent({
86
+ name: 'TimelineDialog',
87
+ components: {
88
+ BlockDialog,
89
+ BaseImage,
90
+ BaseImagePlaceholder,
91
+ BaseLink,
92
+ BlockText,
93
+ BlockVideoEmbed
94
+ },
95
+ props: {
96
+ data: {
97
+ type: Object as PropType<Milestone>,
98
+ required: false,
99
+ default: undefined
100
+ },
101
+ dialogBoxClass: {
102
+ type: String,
103
+ required: false,
104
+ default: undefined
105
+ }
106
+ },
107
+ emits: ['hide'],
108
+ computed: {
109
+ theDate(): string {
110
+ // @ts-ignore
111
+ return this.$filters.displayDate(this.data.date)
112
+ }
113
+ },
114
+ methods: {
115
+ getLinkLabel() {
116
+ if (this.data?.milestoneLink?.page) {
117
+ return this.data.milestoneLinkLabel || 'Visit page'
118
+ }
119
+ return this.data?.milestoneLinkLabel || 'Visit website'
120
+ }
121
+ }
122
+ })
123
+ </script>
124
+ <style lang="scss">
125
+ .Dialog {
126
+ .dialog-main {
127
+ max-height: 55vh;
128
+
129
+ /* Fade effect */
130
+ mask-image: linear-gradient(
131
+ to bottom,
132
+ transparent 0%,
133
+ black 1rem,
134
+ black calc(100% - 1rem),
135
+ transparent 100%
136
+ );
137
+ }
138
+
139
+ @media (forced-colors: active) {
140
+ hr {
141
+ border: 1px solid;
142
+ }
143
+ }
144
+ }
145
+ </style>
@@ -2,16 +2,8 @@ import TopicDetailMissionSpotlight from './TopicDetailMissionSpotlight.vue'
2
2
  export default {
3
3
  title: 'Components/WWW/TopicDetail/TopicDetailMissionSpotlight',
4
4
  component: TopicDetailMissionSpotlight,
5
- decorators: [
6
- () => ({
7
- template: `<div id="storyDecorator" class="absolute inset-0"><story/></div>`
8
- })
9
- ],
10
5
  parameters: {
11
- html: {
12
- root: '#storyDecorator'
13
- },
14
- viewMode: 'canvas'
6
+ layout: 'fullscreen'
15
7
  },
16
8
  excludeStories: /.*Data$/
17
9
  }
@@ -6,15 +6,8 @@ import TopicDetailStreamfield from './TopicDetailStreamfield.vue'
6
6
  export default {
7
7
  title: 'Components/WWW/TopicDetail/TopicDetailStreamfield',
8
8
  component: TopicDetailStreamfield,
9
- decorators: [
10
- () => ({
11
- template: `<div id="storyDecorator" class="absolute inset-0"><story/></div>`
12
- })
13
- ],
14
9
  parameters: {
15
- html: {
16
- root: '#storyDecorator'
17
- }
10
+ layout: 'fullscreen'
18
11
  },
19
12
  excludeStories: /.*(Data)$/
20
13
  }
@@ -1,4 +1,3 @@
1
- /* eslint-disable prettier/prettier */
2
1
  /* Custom react component for rendering TOC of components
3
2
  * docs: https://storybook.js.org/docs/react/writing-docs/docs-page#custom-inline-rendering
4
3
  */
@@ -0,0 +1,23 @@
1
+ import { defineStore } from 'pinia'
2
+ /** Stores the state of user preferences on curated gallery detail pages
3
+ */
4
+
5
+ export interface State {
6
+ showGridView?: boolean
7
+ }
8
+
9
+ // @ts-expect-error
10
+ export const useCuratedGalleryStore = defineStore('curatedGallery', {
11
+ state: (): State => {
12
+ return {
13
+ showGridView: undefined
14
+ }
15
+ },
16
+ actions: {
17
+ updateView(value: boolean) {
18
+ this.showGridView = value
19
+ }
20
+ },
21
+ // @pinia-plugin-persistedstate/nuxt
22
+ persist: true
23
+ })
@@ -0,0 +1,43 @@
1
+ import { defineStore } from 'pinia'
2
+ /** Stores the state of various user preferences on listing and search pages
3
+ */
4
+
5
+ export interface State {
6
+ showSidebar: boolean | undefined
7
+ showGridView: boolean | undefined
8
+ showSidebarForGalleries: boolean | undefined
9
+ showGridViewForGalleries: boolean | undefined
10
+ showGridViewForPodcasts: boolean | undefined
11
+ }
12
+
13
+ // @ts-expect-error
14
+ export const useSearchStore = defineStore('search', {
15
+ state: (): State => {
16
+ return {
17
+ showSidebar: undefined,
18
+ showGridView: undefined,
19
+ showSidebarForGalleries: undefined,
20
+ showGridViewForGalleries: undefined,
21
+ showGridViewForPodcasts: undefined
22
+ }
23
+ },
24
+ actions: {
25
+ updateSidebar(value: boolean) {
26
+ this.showSidebar = value
27
+ },
28
+ updateGridView(value: boolean) {
29
+ this.showGridView = value
30
+ },
31
+ updateSidebarForGalleries(value: boolean) {
32
+ this.showSidebarForGalleries = value
33
+ },
34
+ updateGridViewForGalleries(value: boolean) {
35
+ this.showGridViewForGalleries = value
36
+ },
37
+ updateGridViewForPodcasts(value: boolean) {
38
+ this.showGridViewForPodcasts = value
39
+ }
40
+ },
41
+ // @pinia-plugin-persistedstate/nuxt
42
+ persist: true
43
+ })
@@ -0,0 +1,106 @@
1
+ import { BlockRelatedLinksData } from './../../components/BlockRelatedLinks/BlockRelatedLinks.stories'
2
+ import { BlockLinkTileCarouselData } from './../../components/BlockLinkCarousel/BlockLinkCarousel.stories'
3
+ import PageAudioDetail from './PageAudioDetail.vue'
4
+
5
+ export default {
6
+ title: 'Templates/PageAudioDetail',
7
+ component: PageAudioDetail,
8
+ tags: ['!autodocs'],
9
+ excludeStories: /.*Data$/
10
+ }
11
+
12
+ export const PageAudioDetailData = {
13
+ data: {
14
+ contentType: 'audio_detail.AudioDetailPage',
15
+ label: 'Audio',
16
+ publicationDate: '2020-12-09',
17
+ relatedPages: BlockLinkTileCarouselData,
18
+ seoTitle: 'Testing Audio',
19
+ series: null,
20
+ subscribeLinks: [],
21
+ slug: 'testing-audio',
22
+ summary: 'some summary of the audio file',
23
+ thumbnailImage: {
24
+ alt: '',
25
+ id: '341',
26
+ url: '/public/images/bg-earth-1440x810.jpg'
27
+ },
28
+ title: 'Testing Audio',
29
+ topicLabel: 'JPL Life',
30
+ transcript: `<p>Preparing to Land Perseverance</p>
31
+ <p>The following tests, conducted from 2017-2020, helped prepare NASA's Perseverance rover for its landing on Mars.</p>
32
+ <p>[music]</p>
33
+ <p>Centrifuge Spin Test</p>
34
+ <p>Santa Clarita, CA June 2019</p>
35
+ <p>[music]</p>
36
+ <p>Parachute Firing Test</p>
37
+ <p>Moses Lake, WA May 2019</p>
38
+ <p>[music]</p>
39
+ <p>[mortar firing]</p>
40
+ <p>[mortar firing]</p>
41
+ <p>[clapping]</p>
42
+ <p>Parachute Wind Tunnel Test</p>
43
+ <p>NASA's Ames Research Center </p>
44
+ <p>Moffett Field, CA June 2017</p>
45
+ <p>[music]</p>
46
+ <p>[mortar firing]</p>
47
+ <p>[wind]</p>
48
+ <p>[clapping]</p>
49
+ <p>Lander Vision System Test</p>
50
+ <p>For Avoiding Landing Hazards</p>
51
+ <p>Death Valley, CA May 2019</p>
52
+ <p>[helicopter taking off]</p>
53
+ <p>[music]</p>
54
+ <p>Rover Wheel Drop Test</p>
55
+ <p>NASA's Jet Propulsion Laboratory</p>
56
+ <p>Southern CA August 2019</p>
57
+ <p>[wheel dropping]</p>
58
+ <p>[hitting rock]</p>`,
59
+ uploadedMedia: {
60
+ collection: {
61
+ id: '1',
62
+ name: 'Root',
63
+ path: '0001'
64
+ },
65
+ createdAt: '2020-12-10T07:38:30.951546+00:00',
66
+ duration: '11',
67
+ file: '/audio/file_example_MP3_700KB.mp3',
68
+ fileExtension: 'mp3',
69
+ fileOgg: '',
70
+ id: '1',
71
+ sources: "[{'src': '/audio/file_example_MP3_700KB.mp3', 'type': 'audio/mpeg'}]",
72
+ thumbnail: '',
73
+ title: 'audio file',
74
+ type: 'audio'
75
+ },
76
+ relatedLinks: [BlockRelatedLinksData.data]
77
+ }
78
+ }
79
+
80
+ // stories
81
+ export const AudioDetail = { args: { ...PageAudioDetailData } }
82
+
83
+ export const PodcastEpisode = {
84
+ args: {
85
+ data: {
86
+ ...PageAudioDetailData.data,
87
+ series: {
88
+ title: 'On a mission',
89
+ url: '/podcasts/on-a-mission'
90
+ },
91
+ subscribeLinks: [
92
+ {
93
+ heading: 'Subscribe',
94
+ description:
95
+ 'Lorem ipsum dolor sit amet consectatur adipscing. Vivamus vel rhoncus ipsum, at ultrices urna.',
96
+ links: [
97
+ {
98
+ externalLink: 'http://google.com',
99
+ text: 'Google'
100
+ }
101
+ ]
102
+ }
103
+ ]
104
+ }
105
+ }
106
+ }