@explorer-1/vue 0.2.51 → 0.2.53

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 (71) hide show
  1. package/components.d.ts +2 -0
  2. package/dist/explorer-1-vue.js +3228 -3167
  3. package/dist/explorer-1-vue.umd.cjs +10 -10
  4. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Artists.jpg +0 -0
  5. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Communicators.jpg +0 -0
  6. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Designers.jpg +0 -0
  7. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Disruptors.jpg +0 -0
  8. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Dreamers.jpg +0 -0
  9. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Educators.jpg +0 -0
  10. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Innovators.jpg +0 -0
  11. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Inventors.jpg +0 -0
  12. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Makers.jpg +0 -0
  13. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Problem_Solvers.jpg +0 -0
  14. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Robiticists.jpg +0 -0
  15. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Scientists.jpg +0 -0
  16. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Software_Engineers.jpg +0 -0
  17. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Thinkers.jpg +0 -0
  18. package/dist/img/SwimlaneCTA/backgroundImages/JPL_is__Visualizers.jpg +0 -0
  19. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Artists.jpg +0 -0
  20. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Communicators.jpg +0 -0
  21. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Designers.jpg +0 -0
  22. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Disruptors.jpg +0 -0
  23. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Dreamers.jpg +0 -0
  24. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Educators.jpg +0 -0
  25. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Innovators.jpg +0 -0
  26. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Inventors.jpg +0 -0
  27. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Makers.jpg +0 -0
  28. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Problem_Solvers.jpg +0 -0
  29. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Robiticists.jpg +0 -0
  30. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Scientists.jpg +0 -0
  31. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Software_Engineers.jpg +0 -0
  32. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Thinkers.jpg +0 -0
  33. package/dist/img/SwimlaneCTA/backgroundImagesSmall/JPL_is__Visualizers.jpg +0 -0
  34. package/dist/src/components/BaseButton/BaseButton.stories.d.ts +1 -1
  35. package/dist/src/components/BaseButton/BaseButton.vue.d.ts +1 -1
  36. package/dist/src/components/BaseModal/BaseModal.stories.d.ts +2 -2
  37. package/dist/src/components/BlockStreamfield/BlockStreamfield.vue.d.ts +12 -0
  38. package/dist/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.stories.d.ts +5 -1
  39. package/dist/src/components/HomepageMissionsCarousel/HomepageMissionsCarouselItem.vue.d.ts +5 -1
  40. package/dist/src/components/SearchFilterGroup/SearchFilterGroup.vue.d.ts +1 -0
  41. package/dist/src/components/SearchResultCard/SearchResultCard.vue.d.ts +9 -0
  42. package/dist/src/components/SearchResultGridItem/SearchResultGridItem.vue.d.ts +9 -0
  43. package/dist/src/components/TextInput/TextInput.vue.d.ts +5 -2
  44. package/dist/src/components/YearTicker/YearTicker.stories.d.ts +1 -0
  45. package/dist/src/components/YearTicker/YearTicker.vue.d.ts +1 -0
  46. package/dist/src/interfaces.d.ts +4 -2
  47. package/dist/src/templates/edu/PageEduLesson/PageEduLesson.stories.d.ts +3 -5
  48. package/dist/src/templates/edu/PageEduStudentProject/PageEduStudentProject.stories.d.ts +601 -0
  49. package/dist/src/utils/generateHash.d.ts +1 -0
  50. package/dist/style.css +1 -1
  51. package/package.json +2 -2
  52. package/src/components/BlockIframeEmbed/BlockIframeEmbed.vue +1 -1
  53. package/src/components/BlockImage/BlockImage.vue +4 -1
  54. package/src/components/BlockImage/BlockImageFullBleed.vue +5 -2
  55. package/src/components/BlockImage/BlockImageStandard.vue +5 -2
  56. package/src/components/BlockImageCarouselItem/BlockImageCarouselItem.vue +5 -2
  57. package/src/components/BlockImageComparison/BlockImageComparison.vue +5 -2
  58. package/src/components/BlockInlineImage/BlockInlineImage.vue +9 -2
  59. package/src/components/BlockStreamfield/BlockStreamfield.vue +46 -23
  60. package/src/components/BlockVideo/BlockVideo.vue +1 -1
  61. package/src/components/BlockVideoEmbed/BlockVideoEmbed.vue +1 -1
  62. package/src/components/HeroInlineMedia/HeroInlineMedia.vue +2 -21
  63. package/src/components/HeroMedia/HeroMedia.vue +1 -1
  64. package/src/components/MetaPanel/MetaPanel.vue +48 -43
  65. package/src/components/SearchResultsList/SearchResultsList.vue +4 -1
  66. package/src/templates/edu/PageEduLesson/PageEduLesson.stories.js +1 -1
  67. package/src/templates/edu/PageEduLesson/PageEduLesson.vue +10 -7
  68. package/src/templates/edu/PageEduLesson/PageEduLessonSection.vue +3 -8
  69. package/src/templates/edu/PageEduStudentProject/PageEduStudentProject.stories.js +253 -0
  70. package/src/templates/edu/PageEduStudentProject/PageEduStudentProject.vue +419 -0
  71. package/src/templates/edu/PageEduStudentProject/PageEduStudentProjectSection.vue +179 -0
@@ -0,0 +1,179 @@
1
+ <script setup lang="ts">
2
+ import { reactive } from 'vue'
3
+ import type { ImageObject, StreamfieldBlockData } from './../../../interfaces'
4
+ import BlockHeading, {
5
+ type BlockHeadingObject
6
+ } from './../../../components/BlockHeading/BlockHeading.vue'
7
+ import type { EduStudentProjectStep } from './PageEduStudentProject.vue'
8
+ import BaseHeading from './../../../components/BaseHeading/BaseHeading.vue'
9
+ import HeroInlineMedia from './../../../components/HeroInlineMedia/HeroInlineMedia.vue'
10
+ import BlockText from './../../../components/BlockText/BlockText.vue'
11
+ import LayoutHelper from './../../../components/LayoutHelper/LayoutHelper.vue'
12
+ import BlockImageStandard from './../../../components/BlockImage/BlockImageStandard.vue'
13
+ import BlockStreamfield from './../../../components/BlockStreamfield/BlockStreamfield.vue'
14
+
15
+ export interface PageEduStudentProjectSectionProps {
16
+ heading?: BlockHeadingObject
17
+ blocks?: StreamfieldBlockData[]
18
+ steps?: EduStudentProjectStep[]
19
+ stepsNumbering?: boolean
20
+ text?: string
21
+ image?: ImageObject
22
+ }
23
+
24
+ const props = withDefaults(defineProps<PageEduStudentProjectSectionProps>(), {
25
+ heading: undefined,
26
+ blocks: undefined,
27
+ steps: undefined,
28
+ stepsNumbering: false,
29
+ text: undefined,
30
+ image: undefined
31
+ })
32
+
33
+ const { heading, blocks, image, steps, stepsNumbering, text } = reactive(props)
34
+ </script>
35
+ <template>
36
+ <section
37
+ class="PageEduStudentProjectSection"
38
+ :aria-label="heading?.heading"
39
+ >
40
+ <LayoutHelper
41
+ v-if="heading"
42
+ indent="col-3"
43
+ class="lg:mb-8 mb-5"
44
+ >
45
+ <BlockHeading
46
+ :data="heading"
47
+ generate-id
48
+ />
49
+ </LayoutHelper>
50
+
51
+ <LayoutHelper
52
+ v-if="image"
53
+ indent="col-2"
54
+ class="lg:mb-8 mb-5"
55
+ >
56
+ <!-- image goes here -->
57
+ <BlockImageStandard :data="image" />
58
+ </LayoutHelper>
59
+
60
+ <!-- regular streamfield -->
61
+ <BlockStreamfield
62
+ v-if="blocks"
63
+ :data="blocks"
64
+ />
65
+
66
+ <!-- steps -->
67
+ <component
68
+ :is="stepsNumbering ? 'ol' : 'ul'"
69
+ v-else-if="steps?.length"
70
+ >
71
+ <li
72
+ v-for="(step, index) in steps"
73
+ :key="index"
74
+ class="PageEduStudentProjectStep lg:mb-10 mb-8 px-4 lg:px-0"
75
+ >
76
+ <LayoutHelper
77
+ class="ThemeVariantGray bg-gray-light py-6 lg:py-14 px-4 lg:px-0"
78
+ indent="col-2"
79
+ >
80
+ <template v-if="step.media?.length">
81
+ <!-- split 50/50 -->
82
+ <div class="lg:grid grid-cols-2 gap-6 lg:gap-10">
83
+ <div
84
+ :class="index % 2 === 0 ? 'order-1' : 'order-2'"
85
+ class="mb-6 lg:mb-0"
86
+ >
87
+ <BaseHeading
88
+ level="h3"
89
+ class="mb-5"
90
+ >
91
+ <span
92
+ v-if="stepsNumbering"
93
+ class="steps-numbering"
94
+ aria-hidden
95
+ >{{ `Step ${index + 1}:` }}</span
96
+ >
97
+ {{ step.heading }}
98
+ </BaseHeading>
99
+ <BlockStreamfield
100
+ v-if="step.content"
101
+ :data="step.content"
102
+ size="medium"
103
+ variant="fluid"
104
+ />
105
+ </div>
106
+ <HeroInlineMedia
107
+ :hero-blocks="step.media"
108
+ :class="index % 2 === 1 ? 'order-1' : 'order-2'"
109
+ constrain
110
+ />
111
+ </div>
112
+ </template>
113
+ <template v-else>
114
+ <BaseHeading
115
+ level="h3"
116
+ class="mb-5"
117
+ >
118
+ <span
119
+ v-if="stepsNumbering"
120
+ aria-hidden
121
+ class="steps-numbering"
122
+ >{{ `Step ${index + 1}:` }}</span
123
+ >
124
+ {{ step.heading }}
125
+ </BaseHeading>
126
+ <BlockStreamfield
127
+ v-if="step.content"
128
+ class="PageEduStudentProjectStep__fullWidth"
129
+ :data="step.content"
130
+ size="medium"
131
+ variant="fluid"
132
+ />
133
+ </template>
134
+ </LayoutHelper>
135
+ </li>
136
+ </component>
137
+
138
+ <!-- simple richtext -->
139
+ <LayoutHelper
140
+ v-else-if="text"
141
+ indent="col-3"
142
+ class="lg:mb-18 mb-10"
143
+ >
144
+ <BlockText :text="text" />
145
+ </LayoutHelper>
146
+ </section>
147
+ </template>
148
+ <style lang="scss">
149
+ @use 'sass:math';
150
+ @function pxToRem($pxValue) {
151
+ // Assumes font-size for body element is a constant 16px
152
+ @return math.div($pxValue, 16) * 1rem;
153
+ }
154
+ .PageEduStudentProjectStep {
155
+ .BlockStreamfield {
156
+ div:last-child {
157
+ @apply mb-0 #{!important};
158
+ }
159
+ }
160
+ .caption-area {
161
+ @apply px-0;
162
+ }
163
+ .steps-numbering {
164
+ // intentionally overriding correction that occurs within ThemeVariantGray
165
+ @apply text-jpl-red;
166
+ }
167
+
168
+ .PageEduStudentProjectStep__fullWidth {
169
+ .LayoutHelper > div > .BlockText {
170
+ @screen lg {
171
+ @apply mr-[10rem];
172
+ }
173
+ @screen xl {
174
+ @apply mr-[14rem];
175
+ }
176
+ }
177
+ }
178
+ }
179
+ </style>