@explorer-1/vue 0.2.23 → 0.2.25

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 (26) hide show
  1. package/components.d.ts +2 -0
  2. package/dist/explorer-1-vue.js +4001 -3944
  3. package/dist/explorer-1-vue.umd.cjs +13 -13
  4. package/dist/src/components/BlockLinkCardList/BlockLinkCardList.stories.d.ts +142 -0
  5. package/dist/src/components/BlockLinkCardList/BlockLinkCardList.vue.d.ts +30 -0
  6. package/dist/src/components/MetadataEduResource/MetadataEduResource.stories.d.ts +4 -0
  7. package/dist/src/components/NavSecondary/NavSecondaryDropdown.vue.d.ts +6 -6
  8. package/dist/src/interfaces.d.ts +2 -0
  9. package/dist/src/templates/edu/PageEduTeachableMoment/PageEduTeachableMoment.stories.d.ts +330 -0
  10. package/dist/style.css +1 -1
  11. package/package.json +2 -2
  12. package/src/components/BlockLinkCardList/BlockLinkCardList.stories.js +110 -0
  13. package/src/components/BlockLinkCardList/BlockLinkCardList.vue +34 -0
  14. package/src/components/BlockStreamfield/BlockStreamfield.vue +26 -6
  15. package/src/components/MetadataEduResource/MetadataEduResource.stories.js +4 -1
  16. package/src/components/MetadataEduResource/MetadataEduResource.vue +14 -1
  17. package/src/components/SearchSelectMenu/SearchSelectMenu.vue +1 -1
  18. package/src/constants.ts +7 -1
  19. package/src/docs/foundation/typography.stories.js +2 -0
  20. package/src/interfaces.ts +3 -0
  21. package/src/templates/edu/PageEduLesson/PageEduLesson.stories.js +1 -0
  22. package/src/templates/edu/PageEduLesson/PageEduLesson.vue +15 -11
  23. package/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.vue +1 -0
  24. package/src/templates/edu/PageEduTeachableMoment/PageEduTeachableMoment.stories.js +142 -0
  25. package/src/templates/edu/PageEduTeachableMoment/PageEduTeachableMoment.vue +217 -0
  26. package/src/utils/rangeifyGrades.ts +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@explorer-1/vue",
3
- "version": "0.2.23",
3
+ "version": "0.2.25",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -30,7 +30,7 @@
30
30
  "vue-bind-once": "^0.2.1",
31
31
  "vue-observe-visibility": "^1.0.0",
32
32
  "vue3-compare-image": "^1.2.5",
33
- "@explorer-1/common": "1.1.5"
33
+ "@explorer-1/common": "1.1.7"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@vitejs/plugin-vue": "^5.0.4",
@@ -0,0 +1,110 @@
1
+ import BlockLinkCardList from './BlockLinkCardList.vue'
2
+
3
+ export default {
4
+ title: 'Components/Blocks/BlockLinkCardList',
5
+ component: BlockLinkCardList,
6
+ tags: ['!autodocs'],
7
+ excludeStories: /.*Data$/
8
+ }
9
+ export const BlockLinkCardData = {
10
+ data: {
11
+ url: '/news/placeholder-slug-1',
12
+ title: 'How engineers at NASA-JPL persevered to develop a ventilator',
13
+ slug: 'placeholder-slug-1',
14
+ label: 'Solar System',
15
+ thumbnailImage: {
16
+ src: {
17
+ url: 'https://picsum.photos/512/288',
18
+ width: 512,
19
+ height: 288
20
+ },
21
+ alt: 'Alt text'
22
+ }
23
+ },
24
+ headingLevel: 'h2',
25
+ startDate: undefined,
26
+ endDate: undefined
27
+ }
28
+
29
+ export const BlockLinkCardCarouselData = [
30
+ {
31
+ page: {
32
+ ...BlockLinkCardData.data,
33
+ __typename: 'EDUEventPage',
34
+ startDate: '2021-11-11',
35
+ startDatetime: '2021-11-11T00:00:00-08:00',
36
+ endDatetime: '2021-11-11T23:59:59.999999-08:00',
37
+ endDate: '2021-11-11',
38
+ ongoing: false,
39
+ eventType: 'Workshop'
40
+ }
41
+ },
42
+ {
43
+ page: {
44
+ summary:
45
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse at tortor placerat, varius ante in, imperdiet dolor. Morbi vel arcu eu purus efficitur consequat sit amet vel nisi. Duis convallis volutpat scelerisque.',
46
+
47
+ ...BlockLinkCardData.data,
48
+ __typename: 'EDULessonPage',
49
+ primarySubject: {
50
+ subject: 'Math'
51
+ },
52
+ gradeLevels: [
53
+ { gradeLevel: 'K' },
54
+ { gradeLevel: '1' },
55
+ { gradeLevel: '2' },
56
+ { gradeLevel: '8' }
57
+ ],
58
+ time: {
59
+ time: '1-2 hrs'
60
+ }
61
+ }
62
+ },
63
+ {
64
+ page: {
65
+ ...BlockLinkCardData.data,
66
+ __typename: 'EDUExplainerArticlePage',
67
+ summary:
68
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse at tortor placerat, varius ante in, imperdiet dolor. Morbi vel arcu eu purus efficitur consequat sit amet vel nisi. Duis convallis volutpat scelerisque.',
69
+ primarySubject: {
70
+ subject: 'Engineering'
71
+ },
72
+ gradeLevels: [
73
+ { gradeLevel: 'All Ages' },
74
+ { gradeLevel: 'K' },
75
+ { gradeLevel: '1' },
76
+ { gradeLevel: '2' },
77
+ { gradeLevel: '5' },
78
+ { gradeLevel: '6' },
79
+ { gradeLevel: '7' },
80
+ { gradeLevel: '8' }
81
+ ]
82
+ }
83
+ },
84
+ {
85
+ url: '/news/placeholder-slug-4',
86
+ title: 'How engineers at NASA-JPL persevered to develop a ventilator',
87
+ slug: 'placeholder-slug-4',
88
+ summary:
89
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse at tortor placerat, varius ante in, imperdiet dolor. Morbi vel arcu eu purus efficitur consequat sit amet vel nisi. Duis convallis volutpat scelerisque.',
90
+ label: 'Technology',
91
+ thumbnailImage: {
92
+ src: {
93
+ url: 'https://picsum.photos/512/288',
94
+ width: 512,
95
+ height: 288
96
+ },
97
+ alt: 'Alt text'
98
+ }
99
+ }
100
+ ]
101
+
102
+ // stories
103
+ export const BaseStory = {
104
+ name: 'BlockLinkCardList',
105
+ args: {
106
+ itemType: 'cards',
107
+ heading: 'Related Pages',
108
+ items: BlockLinkCardCarouselData
109
+ }
110
+ }
@@ -0,0 +1,34 @@
1
+ <script setup lang="ts">
2
+ import type { Card } from './../../interfaces'
3
+ import BlockLinkCard from './../BlockLinkCard/BlockLinkCard.vue'
4
+
5
+ export interface BlockLinkCardListProps {
6
+ items: Card[]
7
+ }
8
+
9
+ const props = withDefaults(defineProps<BlockLinkCardListProps>(), {
10
+ items: undefined
11
+ })
12
+ </script>
13
+ <template>
14
+ <div class="BlockLinkCardList">
15
+ <!-- Slides -->
16
+ <BlockLinkCard
17
+ v-for="(item, index) in props.items"
18
+ :key="index"
19
+ class="border-b border-gray-light-mid mb-5"
20
+ :class="{ 'pt-3': index !== 0 }"
21
+ :data="item"
22
+ size="lg"
23
+ />
24
+ </div>
25
+ </template>
26
+ <style lang="scss">
27
+ .BlockLinkCardList {
28
+ .BlockLinkCard {
29
+ div.bg-gray-dark.relative.mb-6 {
30
+ @apply mb-3 #{!important};
31
+ }
32
+ }
33
+ }
34
+ </style>
@@ -207,6 +207,23 @@
207
207
  <BlockCardGrid :cards="block.items" />
208
208
  </div>
209
209
 
210
+ <div
211
+ v-else-if="block.blockType === 'LinkCarouselBlock' && block.blocks?.length"
212
+ :key="`linkCarouselBlock${index}`"
213
+ class="lg:mb-18 mb-10"
214
+ >
215
+ <BlockLinkCarousel :items="block.blocks" />
216
+ </div>
217
+
218
+ <LayoutHelper
219
+ v-else-if="block.blockType === 'LinkCardListBlock' && block.blocks?.length"
220
+ :key="`linkCardListBlock${index}`"
221
+ indent="col-3"
222
+ class="lg:mb-18 mb-10"
223
+ >
224
+ <BlockLinkCardList :items="block.blocks" />
225
+ </LayoutHelper>
226
+
210
227
  <LayoutHelper
211
228
  v-else-if="block.blockType == 'AccordionBlock'"
212
229
  :key="`accordionBlock${index}`"
@@ -231,6 +248,8 @@ import { defineComponent } from 'vue'
231
248
  import type { PropType } from 'vue'
232
249
  import type { StreamfieldBlockData } from '../../interfaces'
233
250
  import LayoutHelper from './../LayoutHelper/LayoutHelper.vue'
251
+ import BlockAnchor from './../BlockAnchor/BlockAnchor.vue'
252
+ import BlockAccordion, { type AccordionBlockObject } from './../BlockAccordion/BlockAccordion.vue'
234
253
  import BlockCardGrid from './../BlockCardGrid/BlockCardGrid.vue'
235
254
  import BlockCta from './../BlockCta/BlockCta.vue'
236
255
  import BlockHeading, { BlockHeadingObject } from './../BlockHeading/BlockHeading.vue'
@@ -240,6 +259,8 @@ import BlockImageComparison from './../BlockImageComparison/BlockImageComparison
240
259
  import BlockImageGallery from './../BlockImageGallery/BlockImageGallery.vue'
241
260
  import BlockInlineImage from './../BlockInlineImage/BlockInlineImage.vue'
242
261
  import BlockKeyPoints from './../BlockKeyPoints/BlockKeyPoints.vue'
262
+ import BlockLinkCardList from './../BlockLinkCardList/BlockLinkCardList.vue'
263
+ import BlockLinkCarousel from './../BlockLinkCarousel/BlockLinkCarousel.vue'
243
264
  import BlockListCards from './../BlockListCards/BlockListCards.vue'
244
265
  import BlockQuote, { type BlockQuoteAttributes } from './../BlockQuote/BlockQuote.vue'
245
266
  import BlockRelatedLinks, {
@@ -255,9 +276,6 @@ import BlockVideo from './../BlockVideo/BlockVideo.vue'
255
276
  import BlockVideoEmbed, {
256
277
  type BlockData as VideoBlockEmbedData
257
278
  } from './../BlockVideoEmbed/BlockVideoEmbed.vue'
258
- import BlockAnchor from './../BlockAnchor/BlockAnchor.vue'
259
- import BlockAccordion from './../BlockAccordion/BlockAccordion.vue'
260
- import { type AccordionBlockObject } from './../BlockAccordion/BlockAccordion.vue'
261
279
 
262
280
  interface Variants {
263
281
  [key: string]: string
@@ -272,6 +290,8 @@ export default defineComponent({
272
290
  name: 'BlockStreamfield',
273
291
  components: {
274
292
  LayoutHelper,
293
+ BlockAnchor,
294
+ BlockAccordion,
275
295
  BlockCardGrid,
276
296
  BlockCta,
277
297
  BlockHeading,
@@ -281,6 +301,8 @@ export default defineComponent({
281
301
  BlockImageGallery,
282
302
  BlockInlineImage,
283
303
  BlockKeyPoints,
304
+ BlockLinkCardList,
305
+ BlockLinkCarousel,
284
306
  BlockListCards,
285
307
  BlockQuote,
286
308
  BlockRelatedLinks,
@@ -291,9 +313,7 @@ export default defineComponent({
291
313
  BlockIframeEmbed,
292
314
  BlockGist,
293
315
  BlockVideo,
294
- BlockVideoEmbed,
295
- BlockAnchor,
296
- BlockAccordion
316
+ BlockVideoEmbed
297
317
  },
298
318
  props: {
299
319
  variant: {
@@ -50,7 +50,10 @@ export const MultipleGradeLevels = {
50
50
  { gradeLevel: '6' },
51
51
  { gradeLevel: '7' },
52
52
  { gradeLevel: '8' }
53
- ]
53
+ ],
54
+ time: {
55
+ time: 'Under 30 mins'
56
+ }
54
57
  },
55
58
  variant: 'secondary'
56
59
  }
@@ -3,7 +3,7 @@ import { computed } from 'vue'
3
3
  import type { EduResourceCardObject } from './../../interfaces.ts'
4
4
  import IconSubject from './../Icons/IconSubject.vue'
5
5
  import IconProfile from './../Icons/IconProfile.vue'
6
- // import IconTime from './../Icons/IconTime.vue'
6
+ import IconTime from './../Icons/IconTime.vue'
7
7
  import {} from './../../utils/mixins'
8
8
  import { rangeifyGrades } from './../../utils/rangeifyGrades'
9
9
 
@@ -29,6 +29,9 @@ const primarySubject = computed(() => {
29
29
  const audience = computed(() => {
30
30
  return rangeifyGrades(props.resource?.gradeLevels)
31
31
  })
32
+ const time = computed(() => {
33
+ return props.resource?.time?.time
34
+ })
32
35
  </script>
33
36
  <template>
34
37
  <div
@@ -57,6 +60,16 @@ const audience = computed(() => {
57
60
  />
58
61
  <span>{{ audience }}</span>
59
62
  </div>
63
+ <div
64
+ v-if="time"
65
+ class="MetadataEduResourceItem"
66
+ >
67
+ <IconTime
68
+ class="MetadataEduResourceIcon text-[1.15em]"
69
+ :class="iconClass"
70
+ />
71
+ <span>{{ time }}</span>
72
+ </div>
60
73
  </div>
61
74
  </template>
62
75
  <style lang="scss">
@@ -8,7 +8,7 @@
8
8
  <select
9
9
  :id="generateId()"
10
10
  v-model="selectValueHandler"
11
- class="border-0 text-primary can-hover:hover:text-primary-dark font-secondary font-semibold tracking-wider uppercase align-middle"
11
+ class="border-0 text-action can-hover:hover:text-action-dark font-secondary font-semibold tracking-wider uppercase align-middle"
12
12
  >
13
13
  <option
14
14
  disabled
package/src/constants.ts CHANGED
@@ -11,6 +11,11 @@ export const eduMetadataDictionary: PillDictionaryInterface = {
11
11
  variant: 'primary',
12
12
  type: 'resource'
13
13
  },
14
+ EDUTeachableMomentPage: {
15
+ label: 'Teachable Moment',
16
+ variant: 'primary',
17
+ type: 'resource'
18
+ },
14
19
  EDUEventPage: {
15
20
  variant: 'primary',
16
21
  type: 'event'
@@ -24,5 +29,6 @@ export const searchContentTypeToPageType: DictionaryInterface = {
24
29
  missions_mission: 'Mission',
25
30
  eduevents_edueventpage: 'EDUEventPage',
26
31
  eduresources_eduexplainerarticlepage: 'EDUExplainerArticlePage',
27
- eduresources_edulessonpage: 'EDULessonPage'
32
+ eduresources_edulessonpage: 'EDULessonPage',
33
+ eduresources_eduteachablemomentpage: 'EDUTeachableMomentPage'
28
34
  }
@@ -78,6 +78,8 @@ export const TextStyles = {
78
78
  <code>.text-body-xs</code>
79
79
  <p class="mt-8"><mark>Highlighted text</mark></p>
80
80
  <code>mark</code>
81
+ <p class="mt-8"><span class="math-text">This is math text. a<sup>2</sup> + a<sub>b</sub> = c</span></p>
82
+ <code>.math-text</code>
81
83
  </div>`
82
84
  })
83
85
  }
package/src/interfaces.ts CHANGED
@@ -140,6 +140,7 @@ export interface GradeLevelsObject {
140
140
  export interface EduResourceCardObject extends Card {
141
141
  primarySubject: PrimarySubjectObject
142
142
  gradeLevels: GradeLevelsObject[]
143
+ time: EduResourcesTime
143
144
  }
144
145
 
145
146
  export interface LinkObject {
@@ -213,11 +214,13 @@ export type MetaPanelTheme = 'primary' | 'secondary' | 'stars'
213
214
  export interface PageObject {
214
215
  __typename: string
215
216
  contentType: string
217
+ lastPublishedAt?: string
216
218
  breadcrumb?: string
217
219
  slug: string
218
220
  url: string
219
221
  title: string
220
222
  getTopicsForDisplay?: Topic[]
223
+ showJumpMenu?: boolean
221
224
  label?: string
222
225
  summary?: string
223
226
  topper?: string
@@ -44,6 +44,7 @@ export const BaseStory = {
44
44
  seoTitle: 'Test Lesson',
45
45
  slug: 'test-lesson',
46
46
  publicationDate: '2024-08-16',
47
+ lastPublishedAt: '2024-08-22T02:33:13.507206+00:00',
47
48
  thumbnailImage: {
48
49
  __typename: 'CustomImage',
49
50
  original: 'http://127.0.0.1:9000/media/original_images/imagessirtfsirtf-090303-16.jpg',
@@ -114,15 +114,6 @@ const heroInline = computed((): boolean => {
114
114
  return false
115
115
  })
116
116
 
117
- const computedClass = computed((): string => {
118
- if (heroInline.value || heroEmpty) {
119
- return 'pt-5 lg:pt-12'
120
- } else if (!heroInline.value) {
121
- return '-nav-offset'
122
- }
123
- return ''
124
- })
125
-
126
117
  const sectionOrder = [
127
118
  'top',
128
119
  'overview',
@@ -262,8 +253,7 @@ const consolidatedSections = computed((): EduLessonSectionObject[] => {
262
253
  <template>
263
254
  <div
264
255
  v-if="data"
265
- class="ThemeVariantLight"
266
- :class="computedClass"
256
+ class="ThemeVariantLight pt-5 lg:pt-12"
267
257
  >
268
258
  <LayoutHelper
269
259
  indent="col-2"
@@ -409,5 +399,19 @@ const consolidatedSections = computed((): EduLessonSectionObject[] => {
409
399
  :heading="data.relatedContentHeading"
410
400
  :items="data.relatedContent"
411
401
  />
402
+
403
+ <LayoutHelper
404
+ v-if="data.lastPublishedAt"
405
+ indent="col-3"
406
+ class="lg:my-18 my-10"
407
+ >
408
+ <p class="border-t border-gray-light-mid pt-8">
409
+ <strong>Lesson Last Updated:</strong>
410
+ {{
411
+ // @ts-ignore
412
+ $filters.displayDate(data.lastPublishedAt)
413
+ }}
414
+ </p>
415
+ </LayoutHelper>
412
416
  </div>
413
417
  </template>
@@ -151,6 +151,7 @@ defineExpose({
151
151
  itemprop="articleBody"
152
152
  :data="data.body"
153
153
  />
154
+
154
155
  <div class="bg-stars bg-primary-darker">
155
156
  <div class="py-10 text-center text-white">
156
157
  <strong>Related News goes here</strong>
@@ -0,0 +1,142 @@
1
+ import { HeroMediaData } from './../../../components/HeroMedia/HeroMedia.stories'
2
+ import { BlockIframeEmbedData } from './../../../components/BlockIframeEmbed/BlockIframeEmbed.stories.js'
3
+ import { BlockImageCarouselData } from './../../../components/BlockImageCarousel/BlockImageCarousel.stories'
4
+ import { BlockImageData } from './../../../components/BlockImage/BlockImage.stories'
5
+ import { BlockHeadingData } from './../../../components/BlockHeading/BlockHeading.stories'
6
+ import { BlockImageComparisonData } from './../../../components/BlockImageComparison/BlockImageComparison.stories'
7
+ import { BaseVideoData } from './../../../components/BaseVideo/BaseVideo.stories'
8
+ import { BlockVideoEmbedData } from './../../../components/BlockVideoEmbed/BlockVideoEmbed.stories'
9
+ import { BlockRelatedLinksData } from './../../../components/BlockRelatedLinks/BlockRelatedLinks.stories.js'
10
+ import { BlockLinkCardCarouselData } from './../../../components/BlockLinkCarousel/BlockLinkCarousel.stories.js'
11
+ import {
12
+ BlockStreamfieldTruncatedData,
13
+ BlockStreamfieldMinimalData
14
+ } from './../../../components/BlockStreamfield/BlockStreamfield.stories'
15
+ import PageEduTeachableMoment from './PageEduTeachableMoment.vue'
16
+
17
+ export default {
18
+ title: 'Templates/EDU/PageEduTeachableMoment',
19
+ component: PageEduTeachableMoment,
20
+ tags: ['!autodocs'],
21
+ decorators: [
22
+ () => ({
23
+ template: `<div id="storyDecorator" class="disable-nav-offset"><story/></div>`
24
+ })
25
+ ],
26
+ parameters: {
27
+ layout: 'fullscreen',
28
+ html: {
29
+ root: '#storyDecorator'
30
+ }
31
+ },
32
+ excludeStories: /.*Data$/
33
+ }
34
+
35
+ export const BaseStory = {
36
+ args: {
37
+ data: {
38
+ __typename: 'EDUTeachableMomentPage',
39
+ title: 'A Teachable Moment',
40
+ lastPublishedAt: '2024-08-22T02:33:13.507206+00:00',
41
+ url: 'http://localhost:3000/edu/resources/teachable-moment',
42
+ pageType: 'EDUTeachableMomentPage',
43
+ contentType: 'edu_resources.EDUTeachableMomentPage',
44
+ showJumpMenu: true,
45
+ thumbnailImage: {
46
+ __typename: 'CustomImage',
47
+ original: 'http://127.0.0.1:9000/media/original_images/imagessirtfsirtf-090303-16.jpg',
48
+ alt: ''
49
+ },
50
+ hero: [
51
+ {
52
+ ...HeroMediaData,
53
+ blockType: 'HeroImageBlock'
54
+ }
55
+ ],
56
+ heroConstrain: true,
57
+
58
+ body: BlockStreamfieldTruncatedData.body,
59
+
60
+ relatedLinks: BlockRelatedLinksData.data,
61
+ relatedContentHeading: 'Related Content',
62
+ relatedContent: BlockLinkCardCarouselData
63
+ }
64
+ }
65
+ }
66
+
67
+ export const HeroCarousel = {
68
+ args: {
69
+ data: {
70
+ ...BaseStory.args.data,
71
+ hero: [{ blockType: 'CarouselBlock', blocks: BlockImageCarouselData }]
72
+ }
73
+ }
74
+ }
75
+
76
+ export const HeroImageComparison = {
77
+ args: {
78
+ data: {
79
+ ...BaseStory.args.data,
80
+ hero: [
81
+ {
82
+ ...BlockImageComparisonData
83
+ }
84
+ ]
85
+ }
86
+ }
87
+ }
88
+
89
+ export const HeroVideo = {
90
+ args: {
91
+ data: {
92
+ ...BaseStory.args.data,
93
+ hero: [
94
+ {
95
+ blockType: 'VideoBlock',
96
+ video: BaseVideoData,
97
+ caption: 'Lorem ipsum dolor sit amet',
98
+ credit: 'NASA/JPL'
99
+ }
100
+ ]
101
+ }
102
+ }
103
+ }
104
+
105
+ export const HeroVideoEmbed = {
106
+ args: {
107
+ data: {
108
+ ...BaseStory.args.data,
109
+ hero: [
110
+ {
111
+ ...BlockVideoEmbedData.data,
112
+ embed: {
113
+ embed: `<iframe title="Meet NASA's Diana Trujillo - Embedded Hero" width="480" height="270" src="https://www.youtube.com/embed/vUuUyYqI83Q?feature=oembed" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>`
114
+ },
115
+ blockType: 'VideoEmbedBlock'
116
+ }
117
+ ]
118
+ }
119
+ }
120
+ }
121
+
122
+ export const HeroIframeEmbed = {
123
+ args: {
124
+ data: {
125
+ ...BaseStory.args.data,
126
+ hero: [
127
+ {
128
+ ...BlockIframeEmbedData
129
+ }
130
+ ]
131
+ }
132
+ }
133
+ }
134
+
135
+ export const NoHero = {
136
+ args: {
137
+ data: {
138
+ ...BaseStory.args.data,
139
+ hero: []
140
+ }
141
+ }
142
+ }