@explorer-1/vue 0.2.64 → 0.2.66
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.
- package/components.d.ts +1 -1
- package/dist/explorer-1-vue.js +3787 -3764
- package/dist/explorer-1-vue.umd.cjs +14 -14
- package/dist/src/components/BlockRichTable/BlockRichTable.stories.d.ts +129 -0
- package/dist/src/components/BlockStreamfield/BlockStreamfield.stories.d.ts +125 -1
- package/dist/src/components/SearchFilterGroup/SearchFilterGroup.vue.d.ts +9 -0
- package/dist/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.stories.d.ts +336 -3
- package/dist/src/templates/edu/PageEduStudentProject/PageEduStudentProject.stories.d.ts +195 -2
- package/dist/src/templates/www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.stories.d.ts +112 -1
- package/dist/style.css +1 -1
- package/lib/main.ts +0 -2
- package/package.json +2 -2
- package/src/components/BlockHeading/BlockHeading.vue +1 -1
- package/src/components/BlockKeyPoints/BlockKeyPoints.vue +1 -1
- package/src/components/BlockRichTable/BlockRichTable.stories.js +23 -4
- package/src/components/BlockRichTable/BlockRichTable.vue +10 -10
- package/src/components/BlockStreamfield/BlockStreamfield.stories.js +9 -4
- package/src/components/BlockStreamfield/BlockStreamfield.vue +4 -12
- package/src/components/BlockText/BlockText.stories.js +51 -2
- package/src/components/NavDesktop/NavDesktopTopHat.vue +12 -2
- package/src/components/NavJumpMenu/NavJumpMenu.stories.js +17 -0
- package/src/components/NavJumpMenu/NavJumpMenu.vue +1 -0
- package/src/components/NavSearchForm/NavSearchForm.vue +6 -1
- package/src/components/NavSecondary/NavSecondary.vue +4 -3
- package/src/components/NavSecondary/NavSecondaryDropdownContent.vue +4 -2
- package/src/templates/edu/PageEduExplainerArticle/PageEduExplainerArticle.vue +2 -2
- package/src/templates/edu/PageEduGalleryDetail/PageEduGalleryDetail.vue +2 -2
- package/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.vue +0 -13
- package/src/templates/edu/PageEduStudentProject/PageEduStudentProject.stories.js +13 -2
- package/src/templates/edu/PageEduStudentProject/PageEduStudentProject.vue +2 -2
- package/src/templates/edu/PageEduStudentProject/PageEduStudentProjectSection.vue +25 -4
- package/dist/src/components/BlockTable/BlockTable.stories.d.ts +0 -17
- package/dist/src/components/BlockTable/BlockTable.vue.d.ts +0 -17
- package/src/components/BlockTable/BlockTable.stories.js +0 -20
- package/src/components/BlockTable/BlockTable.vue +0 -69
package/lib/main.ts
CHANGED
|
@@ -73,7 +73,6 @@ import BlockQuote from './../src/components/BlockQuote/BlockQuote.vue'
|
|
|
73
73
|
import BlockRelatedLinks from './../src/components/BlockRelatedLinks/BlockRelatedLinks.vue'
|
|
74
74
|
import RelatedLink from './../src/components/BlockRelatedLinks/RelatedLink.vue'
|
|
75
75
|
import BlockStreamfield from './../src/components/BlockStreamfield/BlockStreamfield.vue'
|
|
76
|
-
import BlockTable from './../src/components/BlockTable/BlockTable.vue'
|
|
77
76
|
import BlockTeaser from './../src/components/BlockTeaser/BlockTeaser.vue'
|
|
78
77
|
import BlockText from './../src/components/BlockText/BlockText.vue'
|
|
79
78
|
import BlockVideo from './../src/components/BlockVideo/BlockVideo.vue'
|
|
@@ -276,7 +275,6 @@ export {
|
|
|
276
275
|
BlockRelatedLinks,
|
|
277
276
|
RelatedLink,
|
|
278
277
|
BlockStreamfield,
|
|
279
|
-
BlockTable,
|
|
280
278
|
BlockTeaser,
|
|
281
279
|
BlockText,
|
|
282
280
|
BlockVideo,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@explorer-1/vue",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.66",
|
|
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
|
"vue3-compare-image": "^1.2.5",
|
|
32
32
|
"vue3-observe-visibility": "^1.0.1",
|
|
33
|
-
"@explorer-1/common": "1.1.
|
|
33
|
+
"@explorer-1/common": "1.1.17"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@vitejs/plugin-vue": "^5.0.4",
|
|
@@ -4,6 +4,7 @@ import { BlockImageData } from './../BlockImage/BlockImage.stories'
|
|
|
4
4
|
export default {
|
|
5
5
|
title: 'Components/Blocks/BlockRichTable',
|
|
6
6
|
component: BlockRichTable,
|
|
7
|
+
tags: ['!autodocs'],
|
|
7
8
|
excludeStories: /.*Data$/
|
|
8
9
|
}
|
|
9
10
|
|
|
@@ -14,10 +15,16 @@ export const BlockRichTableData = {
|
|
|
14
15
|
tableHead: [
|
|
15
16
|
[
|
|
16
17
|
{
|
|
17
|
-
text: '1. Learn
|
|
18
|
+
text: '1. Learn'
|
|
18
19
|
},
|
|
19
20
|
{
|
|
20
|
-
text: '
|
|
21
|
+
text: '2. Learn why we study geology on Earth and other planets'
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
text: '3. Read about it'
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
text: '4. Another column'
|
|
21
28
|
}
|
|
22
29
|
]
|
|
23
30
|
],
|
|
@@ -29,7 +36,13 @@ export const BlockRichTableData = {
|
|
|
29
36
|
displayCaption: true,
|
|
30
37
|
blockType: 'ImageBlock'
|
|
31
38
|
},
|
|
32
|
-
{ ...BlockImageData, blockType: 'ImageBlock' }
|
|
39
|
+
{ ...BlockImageData, blockType: 'ImageBlock' },
|
|
40
|
+
{ ...BlockImageData, blockType: 'ImageBlock' },
|
|
41
|
+
{
|
|
42
|
+
blockType: 'CharBlock',
|
|
43
|
+
value:
|
|
44
|
+
"Geologists are scientists who study a planet's solid features, like soil, rocks, and minerals. There are all kinds of rocks and minerals that make up our planet – as well as the Moon, Mars, and other rocky worlds. By studying these features, we can learn more about how rocky worlds form and change over time."
|
|
45
|
+
}
|
|
33
46
|
],
|
|
34
47
|
[
|
|
35
48
|
{
|
|
@@ -41,7 +54,13 @@ export const BlockRichTableData = {
|
|
|
41
54
|
blockType: 'CharBlock',
|
|
42
55
|
value:
|
|
43
56
|
"Geologists are scientists who study a planet's solid features, like soil, rocks, and minerals. There are all kinds of rocks and minerals that make up our planet – as well as the Moon, Mars, and other rocky worlds. By studying these features, we can learn more about how rocky worlds form and change over time."
|
|
44
|
-
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
blockType: 'CharBlock',
|
|
60
|
+
value:
|
|
61
|
+
"Geologists are scientists who study a planet's solid features, like soil, rocks, and minerals. There are all kinds of rocks and minerals that make up our planet – as well as the Moon, Mars, and other rocky worlds. By studying these features, we can learn more about how rocky worlds form and change over time."
|
|
62
|
+
},
|
|
63
|
+
{ ...BlockImageData, blockType: 'ImageBlock' }
|
|
45
64
|
]
|
|
46
65
|
]
|
|
47
66
|
}
|
|
@@ -23,7 +23,7 @@ export default defineComponent({
|
|
|
23
23
|
v-if="table"
|
|
24
24
|
class="BlockRichTable BlockText -small text-body-sm"
|
|
25
25
|
>
|
|
26
|
-
<div class="overflow-x-auto scrolling-touch max-w-screen-3xl mx-auto">
|
|
26
|
+
<div class="overflow-x-auto scrolling-touch max-w-screen-3xl mx-auto !mb-0">
|
|
27
27
|
<table
|
|
28
28
|
class="min-w-full border-gray-light-mid w-full border-t border-b border-collapse table-auto"
|
|
29
29
|
>
|
|
@@ -33,7 +33,7 @@ export default defineComponent({
|
|
|
33
33
|
v-for="(headCell, headIndex) in table.tableContent.tableHead[0]"
|
|
34
34
|
:key="headIndex"
|
|
35
35
|
scope="col"
|
|
36
|
-
class="min-w-
|
|
36
|
+
class="min-w-[12rem] bg-jpl-blue-darker edu:bg-jpl-teal-dark text-subtitle text-white border-gray-light-mid lg:p-5 p-3 border-b"
|
|
37
37
|
>
|
|
38
38
|
{{ headCell.text }}
|
|
39
39
|
</th>
|
|
@@ -47,7 +47,7 @@ export default defineComponent({
|
|
|
47
47
|
<td
|
|
48
48
|
v-for="(cell, cellIndex) in row"
|
|
49
49
|
:key="cellIndex"
|
|
50
|
-
class="min-w-
|
|
50
|
+
class="min-w-[12rem] bg-white text-gray-dark border-gray-light-mid"
|
|
51
51
|
>
|
|
52
52
|
<template v-if="cell.blockType === 'CharBlock'">
|
|
53
53
|
<p class="">
|
|
@@ -73,14 +73,14 @@ export default defineComponent({
|
|
|
73
73
|
</tr>
|
|
74
74
|
</tbody>
|
|
75
75
|
</table>
|
|
76
|
-
<template v-if="table.tableCaption">
|
|
77
|
-
<caption class="block text-left px-0 text-gray-mid-dark text-body-sm mt-4">
|
|
78
|
-
{{
|
|
79
|
-
table.tableCaption
|
|
80
|
-
}}
|
|
81
|
-
</caption>
|
|
82
|
-
</template>
|
|
83
76
|
</div>
|
|
77
|
+
<template v-if="table.tableCaption">
|
|
78
|
+
<caption class="block text-left px-0 text-gray-mid-dark text-body-sm mt-4">
|
|
79
|
+
{{
|
|
80
|
+
table.tableCaption
|
|
81
|
+
}}
|
|
82
|
+
</caption>
|
|
83
|
+
</template>
|
|
84
84
|
</div>
|
|
85
85
|
</template>
|
|
86
86
|
|
|
@@ -11,7 +11,7 @@ import { BlockKeyPointsData } from './../BlockKeyPoints/BlockKeyPoints.stories'
|
|
|
11
11
|
import { BlockListCardsData } from './../BlockListCards/BlockListCards.stories'
|
|
12
12
|
import { BlockQuoteData } from './../BlockQuote/BlockQuote.stories'
|
|
13
13
|
import { BlockRelatedLinksData } from './../BlockRelatedLinks/BlockRelatedLinks.stories'
|
|
14
|
-
import {
|
|
14
|
+
import { BlockRichTableData } from './../BlockRichTable/BlockRichTable.stories'
|
|
15
15
|
import { BlockTeaserData } from './../BlockTeaser/BlockTeaser.stories'
|
|
16
16
|
import { BlockIframeEmbedData } from './../BlockIframeEmbed/BlockIframeEmbed.stories'
|
|
17
17
|
import { BlockVideoData } from './../BlockVideo/BlockVideo.stories'
|
|
@@ -26,6 +26,10 @@ export default {
|
|
|
26
26
|
variant: {
|
|
27
27
|
control: { type: 'select' },
|
|
28
28
|
options: Object.keys(variants)
|
|
29
|
+
},
|
|
30
|
+
size: {
|
|
31
|
+
control: { type: 'select' },
|
|
32
|
+
options: ['small', 'medium', 'large']
|
|
29
33
|
}
|
|
30
34
|
},
|
|
31
35
|
parameters: {
|
|
@@ -122,7 +126,7 @@ export const BlockStreamfieldData = {
|
|
|
122
126
|
...BlockInlineImageData.block,
|
|
123
127
|
alignTo: 'left'
|
|
124
128
|
},
|
|
125
|
-
|
|
129
|
+
BlockRichTableData,
|
|
126
130
|
{
|
|
127
131
|
blockType: 'ListBlock',
|
|
128
132
|
field: 'card_grid',
|
|
@@ -132,12 +136,13 @@ export const BlockStreamfieldData = {
|
|
|
132
136
|
}
|
|
133
137
|
|
|
134
138
|
export const BaseStory = {
|
|
135
|
-
args: { data: BlockStreamfieldData.body, variant: 'default' }
|
|
139
|
+
args: { data: BlockStreamfieldData.body, variant: 'default', size: 'large' }
|
|
136
140
|
}
|
|
137
141
|
|
|
138
142
|
export const MatchingWidths = {
|
|
139
143
|
args: {
|
|
140
144
|
data: BlockStreamfieldData.body,
|
|
141
|
-
variant: 'fluid'
|
|
145
|
+
variant: 'fluid',
|
|
146
|
+
size: 'large'
|
|
142
147
|
}
|
|
143
148
|
}
|
|
@@ -173,19 +173,10 @@
|
|
|
173
173
|
<BlockGist :data="block" />
|
|
174
174
|
</LayoutHelper>
|
|
175
175
|
|
|
176
|
-
<LayoutHelper
|
|
177
|
-
v-else-if="block.blockType == 'TableBlock'"
|
|
178
|
-
:key="`tableBlock${index}`"
|
|
179
|
-
indent="col-3"
|
|
180
|
-
:class="marginBottom"
|
|
181
|
-
>
|
|
182
|
-
<BlockTable :data="block" />
|
|
183
|
-
</LayoutHelper>
|
|
184
|
-
|
|
185
176
|
<LayoutHelper
|
|
186
177
|
v-else-if="block.blockType == 'RichTableBlock'"
|
|
187
178
|
:key="`richTableBlock${index}`"
|
|
188
|
-
indent="col-3"
|
|
179
|
+
:indent="themeStore.isEdu ? 'col-2' : 'col-3'"
|
|
189
180
|
class="lg:mb-18 mb-10"
|
|
190
181
|
>
|
|
191
182
|
<BlockRichTable :table="block" />
|
|
@@ -277,7 +268,6 @@ import BlockQuote, { type BlockQuoteAttributes } from './../BlockQuote/BlockQuot
|
|
|
277
268
|
import BlockRelatedLinks, {
|
|
278
269
|
type BlockRelatedLinksObject
|
|
279
270
|
} from './../BlockRelatedLinks/BlockRelatedLinks.vue'
|
|
280
|
-
import BlockTable from './../BlockTable/BlockTable.vue'
|
|
281
271
|
import BlockRichTable from './../BlockRichTable/BlockRichTable.vue'
|
|
282
272
|
import BlockTeaser from './../BlockTeaser/BlockTeaser.vue'
|
|
283
273
|
import BlockText from './../BlockText/BlockText.vue'
|
|
@@ -287,6 +277,8 @@ import BlockVideo from './../BlockVideo/BlockVideo.vue'
|
|
|
287
277
|
import BlockVideoEmbed, {
|
|
288
278
|
type BlockData as VideoBlockEmbedData
|
|
289
279
|
} from './../BlockVideoEmbed/BlockVideoEmbed.vue'
|
|
280
|
+
import { mapStores } from 'pinia'
|
|
281
|
+
import { useThemeStore } from '../../store/theme'
|
|
290
282
|
|
|
291
283
|
interface Variants {
|
|
292
284
|
[key: string]: string
|
|
@@ -317,7 +309,6 @@ export default defineComponent({
|
|
|
317
309
|
BlockListCards,
|
|
318
310
|
BlockQuote,
|
|
319
311
|
BlockRelatedLinks,
|
|
320
|
-
BlockTable,
|
|
321
312
|
BlockRichTable,
|
|
322
313
|
BlockTeaser,
|
|
323
314
|
BlockText,
|
|
@@ -345,6 +336,7 @@ export default defineComponent({
|
|
|
345
336
|
}
|
|
346
337
|
},
|
|
347
338
|
computed: {
|
|
339
|
+
...mapStores(useThemeStore),
|
|
348
340
|
layoutClass(): string {
|
|
349
341
|
return variants[this.variant]
|
|
350
342
|
},
|
|
@@ -15,9 +15,35 @@ export default {
|
|
|
15
15
|
() => ({
|
|
16
16
|
template: '<div class="lg:w-2/3 mx-auto"><story /></div>'
|
|
17
17
|
})
|
|
18
|
-
]
|
|
18
|
+
],
|
|
19
|
+
excludeStories: /.*Data$/
|
|
19
20
|
}
|
|
20
21
|
|
|
22
|
+
export const RichTextMediaData = `<p data-block-key="5f55p">Description for it.</p><div class="richtext-image fullwidth"><img alt="Perseverance Looks Back at &#x27;Bright Angel&#x27;" height="480" loading="lazy" src="https://picsum.photos/640/480" width="640">
|
|
23
|
+
<div class="richtext-caption">
|
|
24
|
+
<div class="caption">One of the navigation cameras aboard NASAs Perseverance Mars rover captured this view looking back at the Bright Angel area on July 30, 2024.</div>
|
|
25
|
+
<span class="credit">Credit: NASA/JPL-Caltech</span>
|
|
26
|
+
<a class="caption-link" href="#">Full Image Details</a>
|
|
27
|
+
</div>
|
|
28
|
+
</div><p data-block-key="89jcq">More text and another image that's full width (above)</p><p data-block-key="6jsp"></p><div class="richtext-image left"><img alt="Carbon Mapper Coalition&#x27;s Tanager Satellite" height="336" loading="lazy" src="https://picsum.photos/640/336" width="640">
|
|
29
|
+
<div class="richtext-caption">
|
|
30
|
+
<div class="caption">This artists concept depicts one of the Carbon Mapper Coalitions Tanager satellites, the first of which launched on Aug. 16, 2024. Tanager-1 will use imaging spectrometer technology developed at JPL to measure greenhouse gas point-source emissions.</div>
|
|
31
|
+
<span class="credit">Credit: Planet Labs PBC</span>
|
|
32
|
+
<a class="caption-link" href="#">Full Image Details</a>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
<ul><li>Item one in the list</li><li>Aliquam erat volutpat. Nam et lorem purus. Pellentesque placerat, lorem eget ultrices bibendum, lorem dolor finibus metus, consectetur mattis lorem sapien id felis. Cras scelerisque lacus et tristique luctus.</li><li>Third item in the list</li></ul>
|
|
36
|
+
<p data-block-key="4409g">More text and something that's <span="math-text">right-aligned</span>.</p><p data-block-key="bid36"></p><div class="richtext-image right"><img alt="Lecture Brings Galileo&#x27;s Travels into Final Focus" height="350" loading="lazy" src="https://picsum.photos/640/350" width="640">
|
|
37
|
+
<div class="richtext-caption">
|
|
38
|
+
<div class="caption">Lecture Brings Galileo's Travels into Final Focus</div>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
<ol><li>Item one in the list</li><li>Aliquam erat volutpat. Nam et lorem purus. Pellentesque placerat, lorem eget ultrices bibendum, lorem dolor finibus metus, consectetur mattis lorem sapien id felis. Cras scelerisque lacus et tristique luctus.</li><li>Third item in the list</li></ol>
|
|
42
|
+
<p data-block-key="1f4rd"> Pellentesque euismod, metus et vehicula tincidunt, magna velit viverra enim, non efficitur elit enim ut ante. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum massa est, aliquam sed volutpat quis, tempor vitae felis. Quisque suscipit in purus non rhoncus. Vestibulum commodo gravida nibh. Quisque imperdiet lacus rhoncus malesuada elementum. Mauris tempor purus quis sollicitudin ornare. Suspendisse eget gravida neque. Etiam gravida, sapien ac condimentum placerat, tellus eros volutpat elit, non viverra lectus turpis ut lectus. Praesent varius porttitor eros eu efficitur. Etiam nec neque semper, facilisis leo non, tempor enim. Etiam a sodales lacus. Aenean a nibh ipsum.</p>
|
|
43
|
+
<ul><li>Item one in the list</li><li>Aliquam erat volutpat. Nam et lorem purus. Pellentesque placerat, lorem eget ultrices bibendum, lorem dolor finibus metus, consectetur mattis lorem sapien id felis. Cras scelerisque lacus et tristique luctus.</li><li>Third item in the list</li></ul>
|
|
44
|
+
<ol><li>Item one in the list</li><li>Aliquam erat volutpat. Nam et lorem purus. Pellentesque placerat, lorem eget ultrices bibendum, lorem dolor finibus metus, consectetur mattis lorem sapien id felis. Cras scelerisque lacus et tristique luctus.</li><li>Third item in the list</li></ol>
|
|
45
|
+
<p>Nunc molestie aliquet nunc, ut viverra risus elementum bibendum. Cras metus metus, sagittis sed ex at, rutrum dictum leo. Cras sodales, urna id aliquam scelerisque, neque sem venenatis justo, a feugiat lorem ligula molestie orci. Vestibulum in suscipit diam. Phasellus pulvinar quis diam ullamcorper sagittis. Praesent a risus leo. Etiam tempor dolor eu turpis laoreet fermentum. Sed turpis risus, interdum ut bibendum ut, ornare a augue. Donec condimentum odio non lectus efficitur sodales. Vivamus posuere ligula a eros molestie, semper porttitor augue interdum. Cras et facilisis ligula, nec malesuada velit. </p>`
|
|
46
|
+
|
|
21
47
|
export const BaseStory = {
|
|
22
48
|
name: 'BlockText',
|
|
23
49
|
args: {
|
|
@@ -27,6 +53,12 @@ export const BaseStory = {
|
|
|
27
53
|
}
|
|
28
54
|
|
|
29
55
|
export const RichTextMedia = {
|
|
56
|
+
args: {
|
|
57
|
+
variant: 'large',
|
|
58
|
+
text: RichTextMediaData
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export const SubsequentFloatingImages = {
|
|
30
62
|
args: {
|
|
31
63
|
variant: 'large',
|
|
32
64
|
text: `<p data-block-key="5f55p">Description for it.</p><div class="richtext-image fullwidth"><img alt="Perseverance Looks Back at &#x27;Bright Angel&#x27;" height="480" loading="lazy" src="https://picsum.photos/640/480" width="640">
|
|
@@ -45,6 +77,23 @@ export const RichTextMedia = {
|
|
|
45
77
|
<div class="richtext-caption">
|
|
46
78
|
<div class="caption">Lecture Brings Galileo's Travels into Final Focus</div>
|
|
47
79
|
</div>
|
|
48
|
-
</div><p data-block-key="
|
|
80
|
+
</div><p data-block-key="4409g">More text and something that's right-aligned.</p><p data-block-key="bid36"></p><div class="richtext-image right"><img alt="Lecture Brings Galileo&#x27;s Travels into Final Focus" height="342" loading="lazy" src="https://picsum.photos/640/350" width="640">
|
|
81
|
+
<div class="richtext-caption">
|
|
82
|
+
<div class="caption">Lecture Brings Galileo's Travels into Final Focus</div>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
<div class="richtext-image left"><img alt="Lecture Brings Galileo&#x27;s Travels into Final Focus" height="354" loading="lazy" src="https://picsum.photos/640/320" width="640">
|
|
86
|
+
<div class="richtext-caption">
|
|
87
|
+
<div class="caption">Lecture Brings Galileo's Travels into Final Focus</div>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
<div class="richtext-image left"><img alt="Lecture Brings Galileo&#x27;s Travels into Final Focus" height="354" loading="lazy" src="https://picsum.photos/640/324" width="640">
|
|
91
|
+
<div class="richtext-caption">
|
|
92
|
+
<div class="caption">Lecture Brings Galileo's Travels into Final Focus</div>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</div><p data-block-key="1f4rd">More text and two subsequent left-aligned images</p>
|
|
96
|
+
<p data-block-key="1f4rd"> Pellentesque euismod, metus et vehicula tincidunt, magna velit viverra enim, non efficitur elit enim ut ante. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum massa est, aliquam sed volutpat quis, tempor vitae felis. Quisque suscipit in purus non rhoncus. Vestibulum commodo gravida nibh. Quisque imperdiet lacus rhoncus malesuada elementum. Mauris tempor purus quis sollicitudin ornare. Suspendisse eget gravida neque. Etiam gravida, sapien ac condimentum placerat, tellus eros volutpat elit, non viverra lectus turpis ut lectus. Praesent varius porttitor eros eu efficitur. Etiam nec neque semper, facilisis leo non, tempor enim. Etiam a sodales lacus. Aenean a nibh ipsum.</p>
|
|
97
|
+
<p>Nunc molestie aliquet nunc, ut viverra risus elementum bibendum. Cras metus metus, sagittis sed ex at, rutrum dictum leo. Cras sodales, urna id aliquam scelerisque, neque sem venenatis justo, a feugiat lorem ligula molestie orci. Vestibulum in suscipit diam. Phasellus pulvinar quis diam ullamcorper sagittis. Praesent a risus leo. Etiam tempor dolor eu turpis laoreet fermentum. Sed turpis risus, interdum ut bibendum ut, ornare a augue. Donec condimentum odio non lectus efficitur sodales. Vivamus posuere ligula a eros molestie, semper porttitor augue interdum. Cras et facilisis ligula, nec malesuada velit. </p>`
|
|
49
98
|
}
|
|
50
99
|
}
|
|
@@ -16,8 +16,13 @@
|
|
|
16
16
|
:class="{ '-ml-3': index === 0 }"
|
|
17
17
|
>
|
|
18
18
|
<span
|
|
19
|
-
class="can-hover:group-hover:border-jpl-red
|
|
20
|
-
:class="
|
|
19
|
+
class="can-hover:group-hover:border-jpl-red inline-block py-2 border-b-2"
|
|
20
|
+
:class="
|
|
21
|
+
(getLinkText(item) === 'JPL' && !themeStore.isEdu) ||
|
|
22
|
+
(getLinkText(item) === 'Education' && themeStore.isEdu)
|
|
23
|
+
? 'border-jpl-red'
|
|
24
|
+
: 'border-transparent'
|
|
25
|
+
"
|
|
21
26
|
>
|
|
22
27
|
{{ getLinkText(item) }}
|
|
23
28
|
</span>
|
|
@@ -29,6 +34,8 @@
|
|
|
29
34
|
<script lang="ts">
|
|
30
35
|
import { defineComponent } from 'vue'
|
|
31
36
|
import { mixinGetRouterLink, mixinGetLinkText } from './../../utils/mixins'
|
|
37
|
+
import { mapStores } from 'pinia'
|
|
38
|
+
import { useThemeStore } from './../../store/theme'
|
|
32
39
|
import BaseLink from './../BaseLink/BaseLink.vue'
|
|
33
40
|
import type { LinkObject } from './../../utils/mixins'
|
|
34
41
|
import type { PropType } from 'vue'
|
|
@@ -51,6 +58,9 @@ export default defineComponent({
|
|
|
51
58
|
getLinkText(link: LinkObject): string | undefined {
|
|
52
59
|
return mixinGetLinkText(link)
|
|
53
60
|
}
|
|
61
|
+
},
|
|
62
|
+
computed: {
|
|
63
|
+
...mapStores(useThemeStore)
|
|
54
64
|
}
|
|
55
65
|
})
|
|
56
66
|
</script>
|
|
@@ -38,6 +38,23 @@ export const BaseStory = {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
export const ExtraLong = {
|
|
42
|
+
args: {
|
|
43
|
+
title: 'Page Title',
|
|
44
|
+
jumpLinks: [
|
|
45
|
+
...JumpLinksData,
|
|
46
|
+
...JumpLinksData,
|
|
47
|
+
...JumpLinksData,
|
|
48
|
+
...JumpLinksData,
|
|
49
|
+
...JumpLinksData,
|
|
50
|
+
...JumpLinksData,
|
|
51
|
+
...JumpLinksData,
|
|
52
|
+
...JumpLinksData
|
|
53
|
+
],
|
|
54
|
+
invert: true
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
41
58
|
export const Light = {
|
|
42
59
|
args: {
|
|
43
60
|
title: 'Page Title',
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { ref } from 'vue'
|
|
3
3
|
import { useRouter } from 'vue-router'
|
|
4
|
+
import { useThemeStore } from '../../store/theme'
|
|
4
5
|
import SearchInput from './../SearchInput/SearchInput.vue'
|
|
5
6
|
const router = useRouter()
|
|
7
|
+
const themeStore = useThemeStore()
|
|
6
8
|
|
|
7
9
|
interface NavSearchFormProps {
|
|
8
10
|
mobile?: boolean
|
|
@@ -20,7 +22,10 @@ const clearSearch = () => {
|
|
|
20
22
|
}
|
|
21
23
|
const submitSearch = () => {
|
|
22
24
|
emit('submitForm')
|
|
23
|
-
router.push({
|
|
25
|
+
router.push({
|
|
26
|
+
path: themeStore.isEdu ? '/edu/search/' : '/search',
|
|
27
|
+
query: { query: searchQuery.value }
|
|
28
|
+
})
|
|
24
29
|
}
|
|
25
30
|
</script>
|
|
26
31
|
<template>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
:class="{ 'bg-gradient-to-r from-black to-primary bg-transparent to-90% text-white': invert }"
|
|
15
15
|
>
|
|
16
16
|
<div
|
|
17
|
-
:class="`nav-secondary-container lg:container lg:px-0 lg:whitespace-normal lg:overflow-visible relative px-4 pb-0 mx-auto overflow-x-auto text-sm font-medium whitespace-nowrap ${invert ? 'border-0' : 'border-t border-gray-mid text-gray-mid-dark border-opacity-50'}`"
|
|
17
|
+
:class="`nav-secondary-container edu:border-0 lg:container lg:px-0 lg:whitespace-normal lg:overflow-visible relative px-4 pb-0 mx-auto overflow-x-auto text-sm font-medium whitespace-nowrap ${invert ? 'border-0' : 'border-t border-gray-mid text-gray-mid-dark border-opacity-50'}`"
|
|
18
18
|
>
|
|
19
19
|
<div class="lg:ml-0 2xl:-mr-3 lg:justify-end flex -ml-3">
|
|
20
20
|
<template v-for="(item, index) in theBreadcrumb">
|
|
@@ -179,7 +179,7 @@ export default defineComponent({
|
|
|
179
179
|
<style lang="scss">
|
|
180
180
|
.NavSecondary {
|
|
181
181
|
top: -1px; // for intersection observer to work
|
|
182
|
-
@apply sticky z-40 w-full bg-white border-b
|
|
182
|
+
@apply sticky z-40 w-full bg-white border-b border-gray-mid border-opacity-0 transition-border-opacity duration-150 edu:duration-300 ease-in;
|
|
183
183
|
@apply hidden;
|
|
184
184
|
@screen lg {
|
|
185
185
|
@apply block;
|
|
@@ -191,7 +191,8 @@ export default defineComponent({
|
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
-
&.-is-sticky
|
|
194
|
+
&.-is-sticky,
|
|
195
|
+
&.-is-sticky-offset {
|
|
195
196
|
@apply border-gray-mid border-opacity-50;
|
|
196
197
|
}
|
|
197
198
|
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
:key="child_index"
|
|
17
17
|
>
|
|
18
18
|
<BaseLink
|
|
19
|
-
:to="child.path"
|
|
19
|
+
:to="child.path.startsWith('/') ? child.path : undefined"
|
|
20
|
+
:href="!child.path.startsWith('/') ? child.path : undefined"
|
|
20
21
|
variant="none"
|
|
21
22
|
:link-class="linkClass(child, child_index === item.children.length - 1)"
|
|
22
23
|
exact
|
|
@@ -35,7 +36,8 @@
|
|
|
35
36
|
class=""
|
|
36
37
|
>
|
|
37
38
|
<BaseLink
|
|
38
|
-
:to="grandchild.path"
|
|
39
|
+
:to="grandchild.path.startsWith('/') ? grandchild.path : undefined"
|
|
40
|
+
:href="!grandchild.path.startsWith('/') ? grandchild.path : undefined"
|
|
39
41
|
variant="none"
|
|
40
42
|
:link-class="
|
|
41
43
|
nestedLinkClass(
|
|
@@ -160,18 +160,5 @@ defineExpose({
|
|
|
160
160
|
>
|
|
161
161
|
<AboutTheAuthor :authors="data.authors" />
|
|
162
162
|
</LayoutHelper>
|
|
163
|
-
|
|
164
|
-
<div class="bg-stars bg-primary-darker">
|
|
165
|
-
<div class="py-10 text-center text-white">
|
|
166
|
-
<strong>Related News goes here</strong>
|
|
167
|
-
</div>
|
|
168
|
-
<!-- extras -->
|
|
169
|
-
<!-- <BlockLinkCarousel
|
|
170
|
-
item-type="cards"
|
|
171
|
-
class="mt-24"
|
|
172
|
-
heading="Explore more"
|
|
173
|
-
:items="data.getRelatedOrLatestNews"
|
|
174
|
-
/> -->
|
|
175
|
-
</div>
|
|
176
163
|
</div>
|
|
177
164
|
</template>
|
|
@@ -9,6 +9,8 @@ import { BaseVideoData } from './../../../components/BaseVideo/BaseVideo.stories
|
|
|
9
9
|
import { BlockVideoEmbedData } from './../../../components/BlockVideoEmbed/BlockVideoEmbed.stories'
|
|
10
10
|
import { BlockRelatedLinksData } from './../../../components/BlockRelatedLinks/BlockRelatedLinks.stories.js'
|
|
11
11
|
import { BlockLinkCardCarouselData } from './../../../components/BlockLinkCarousel/BlockLinkCarousel.stories.js'
|
|
12
|
+
import { RichTextMediaData } from './../../../components/BlockText/BlockText.stories.js'
|
|
13
|
+
import { BlockRichTableData } from './../../../components/BlockRichTable/BlockRichTable.stories'
|
|
12
14
|
import {
|
|
13
15
|
BlockStreamfieldTruncatedData,
|
|
14
16
|
BlockStreamfieldMinimalData
|
|
@@ -139,7 +141,16 @@ export const BaseStory = {
|
|
|
139
141
|
{
|
|
140
142
|
heading: 'Lorem ipsum dolor no media',
|
|
141
143
|
media: [],
|
|
142
|
-
content: [
|
|
144
|
+
content: [
|
|
145
|
+
BlockImageData,
|
|
146
|
+
...BlockStreamfieldMinimalData.body,
|
|
147
|
+
BlockRichTableData,
|
|
148
|
+
BlockInlineImageData.block,
|
|
149
|
+
{
|
|
150
|
+
blockType: 'RichTextBlock',
|
|
151
|
+
value: RichTextMediaData
|
|
152
|
+
}
|
|
153
|
+
]
|
|
143
154
|
},
|
|
144
155
|
{
|
|
145
156
|
heading: 'Sit amet',
|
|
@@ -156,7 +167,7 @@ export const BaseStory = {
|
|
|
156
167
|
{
|
|
157
168
|
heading: 'Consectatur adipscing',
|
|
158
169
|
media: [BlockImageComparisonData],
|
|
159
|
-
content:
|
|
170
|
+
content: BlockStreamfieldTruncatedData.body
|
|
160
171
|
}
|
|
161
172
|
],
|
|
162
173
|
|
|
@@ -186,13 +186,34 @@ const { heading, blocks, image, steps, stepsNumbering, text } = reactive(props)
|
|
|
186
186
|
// intentionally overriding correction that occurs within ThemeVariantGray
|
|
187
187
|
@apply text-jpl-red;
|
|
188
188
|
}
|
|
189
|
+
.richtext-image {
|
|
190
|
+
&.right,
|
|
191
|
+
&.left {
|
|
192
|
+
@apply lg:max-w-md;
|
|
193
|
+
}
|
|
194
|
+
&.right {
|
|
195
|
+
@apply mr-0;
|
|
196
|
+
}
|
|
197
|
+
&.left {
|
|
198
|
+
@apply ml-0;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
189
201
|
.PageEduStudentProjectStep__fullWidth {
|
|
190
202
|
.LayoutHelper > div > .BlockText {
|
|
191
|
-
|
|
192
|
-
|
|
203
|
+
p,
|
|
204
|
+
li {
|
|
205
|
+
@screen lg {
|
|
206
|
+
@apply mr-[10rem];
|
|
207
|
+
}
|
|
208
|
+
@screen xl {
|
|
209
|
+
@apply mr-[14rem];
|
|
210
|
+
}
|
|
193
211
|
}
|
|
194
|
-
|
|
195
|
-
|
|
212
|
+
table {
|
|
213
|
+
p,
|
|
214
|
+
li {
|
|
215
|
+
@apply mr-0;
|
|
216
|
+
}
|
|
196
217
|
}
|
|
197
218
|
}
|
|
198
219
|
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { default as BlockTable } from './BlockTable.vue';
|
|
2
|
-
declare namespace _default {
|
|
3
|
-
export let title: string;
|
|
4
|
-
export { BlockTable as component };
|
|
5
|
-
export let excludeStories: RegExp;
|
|
6
|
-
}
|
|
7
|
-
export default _default;
|
|
8
|
-
export namespace BlockTableData {
|
|
9
|
-
let blockType: string;
|
|
10
|
-
let table: string;
|
|
11
|
-
}
|
|
12
|
-
export namespace BaseStory {
|
|
13
|
-
let name: string;
|
|
14
|
-
namespace args {
|
|
15
|
-
export { BlockTableData as data };
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
2
|
-
data: {
|
|
3
|
-
type: ObjectConstructor;
|
|
4
|
-
required: false;
|
|
5
|
-
};
|
|
6
|
-
}>, {}, {}, {
|
|
7
|
-
table(): {
|
|
8
|
-
rows: never[];
|
|
9
|
-
caption: any;
|
|
10
|
-
};
|
|
11
|
-
}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
12
|
-
data: {
|
|
13
|
-
type: ObjectConstructor;
|
|
14
|
-
required: false;
|
|
15
|
-
};
|
|
16
|
-
}>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
17
|
-
export default _default;
|