@explorer-1/vue 0.2.65 → 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.
Files changed (34) hide show
  1. package/components.d.ts +1 -1
  2. package/dist/explorer-1-vue.js +3787 -3764
  3. package/dist/explorer-1-vue.umd.cjs +14 -14
  4. package/dist/src/components/BlockRichTable/BlockRichTable.stories.d.ts +129 -0
  5. package/dist/src/components/BlockStreamfield/BlockStreamfield.stories.d.ts +125 -1
  6. package/dist/src/components/SearchFilterGroup/SearchFilterGroup.vue.d.ts +9 -0
  7. package/dist/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.stories.d.ts +336 -3
  8. package/dist/src/templates/edu/PageEduStudentProject/PageEduStudentProject.stories.d.ts +195 -2
  9. package/dist/src/templates/www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.stories.d.ts +112 -1
  10. package/dist/style.css +1 -1
  11. package/lib/main.ts +0 -2
  12. package/package.json +2 -2
  13. package/src/components/BlockHeading/BlockHeading.vue +1 -1
  14. package/src/components/BlockKeyPoints/BlockKeyPoints.vue +1 -1
  15. package/src/components/BlockRichTable/BlockRichTable.stories.js +23 -4
  16. package/src/components/BlockRichTable/BlockRichTable.vue +10 -10
  17. package/src/components/BlockStreamfield/BlockStreamfield.stories.js +9 -4
  18. package/src/components/BlockStreamfield/BlockStreamfield.vue +4 -12
  19. package/src/components/BlockText/BlockText.stories.js +51 -2
  20. package/src/components/NavDesktop/NavDesktopTopHat.vue +12 -2
  21. package/src/components/NavJumpMenu/NavJumpMenu.stories.js +17 -0
  22. package/src/components/NavJumpMenu/NavJumpMenu.vue +1 -0
  23. package/src/components/NavSearchForm/NavSearchForm.vue +6 -1
  24. package/src/components/NavSecondary/NavSecondaryDropdownContent.vue +4 -2
  25. package/src/templates/edu/PageEduExplainerArticle/PageEduExplainerArticle.vue +2 -2
  26. package/src/templates/edu/PageEduGalleryDetail/PageEduGalleryDetail.vue +2 -2
  27. package/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.vue +0 -13
  28. package/src/templates/edu/PageEduStudentProject/PageEduStudentProject.stories.js +13 -2
  29. package/src/templates/edu/PageEduStudentProject/PageEduStudentProject.vue +2 -2
  30. package/src/templates/edu/PageEduStudentProject/PageEduStudentProjectSection.vue +25 -4
  31. package/dist/src/components/BlockTable/BlockTable.stories.d.ts +0 -17
  32. package/dist/src/components/BlockTable/BlockTable.vue.d.ts +0 -17
  33. package/src/components/BlockTable/BlockTable.stories.js +0 -20
  34. 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.65",
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.16"
33
+ "@explorer-1/common": "1.1.17"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@vitejs/plugin-vue": "^5.0.4",
@@ -57,7 +57,7 @@ export default defineComponent({
57
57
  &:target {
58
58
  @apply scroll-mt-14;
59
59
  @screen lg {
60
- @apply scroll-mt-[8rem];
60
+ @apply scroll-mt-[7rem];
61
61
  }
62
62
  }
63
63
  }
@@ -11,7 +11,7 @@
11
11
  <li
12
12
  v-for="(item, index) in data.listItem"
13
13
  :key="index"
14
- class="flex print:!list-item print:ml-4"
14
+ class="print:!list-item print:ml-4"
15
15
  :class="index + 1 === data.listItem.length ? 'mb-0' : 'mb-4'"
16
16
  >
17
17
  <BlockText
@@ -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 why we study geology on Earth and other planets'
18
+ text: '1. Learn'
18
19
  },
19
20
  {
20
- text: '1. Learn why we study geology on Earth and other planets'
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-72 sm:min-w-80 bg-jpl-blue-darker text-subtitle text-white border-gray-light-mid lg:p-5 p-3 border-b"
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-72 sm:min-w-80 bg-white text-gray-dark border-gray-light-mid"
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 { BlockTableData } from './../BlockTable/BlockTable.stories'
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
- BlockTableData,
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 &amp;#x27;Bright Angel&amp;#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&#x27;s full width (above)</p><p data-block-key="6jsp"></p><div class="richtext-image left"><img alt="Carbon Mapper Coalition&amp;#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&#x27;s <span="math-text">right-aligned</span>.</p><p data-block-key="bid36"></p><div class="richtext-image right"><img alt="Lecture Brings Galileo&amp;#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 &amp;#x27;Bright Angel&amp;#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="1f4rd">More text and something that&#x27;s left-aligned</p>`
80
+ </div><p data-block-key="4409g">More text and something that&#x27;s right-aligned.</p><p data-block-key="bid36"></p><div class="richtext-image right"><img alt="Lecture Brings Galileo&amp;#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&amp;#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&amp;#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-light inline-block py-2 border-b-2"
20
- :class="index === 0 ? 'border-jpl-red-light' : 'border-transparent'"
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',
@@ -18,6 +18,7 @@
18
18
  >
19
19
  <NavJumpMenuContent
20
20
  :key="index"
21
+ class="max-h-[72vh] overflow-y-auto"
21
22
  :item="item"
22
23
  v-bind="$attrs"
23
24
  />
@@ -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({ path: '/search', query: { query: searchQuery.value } })
25
+ router.push({
26
+ path: themeStore.isEdu ? '/edu/search/' : '/search',
27
+ query: { query: searchQuery.value }
28
+ })
24
29
  }
25
30
  </script>
26
31
  <template>
@@ -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(
@@ -231,8 +231,8 @@ export default defineComponent({
231
231
  .BlockText {
232
232
  ul {
233
233
  li {
234
- &::before {
235
- @apply bg-secondary;
234
+ &::marker {
235
+ @apply text-secondary;
236
236
  }
237
237
  }
238
238
  }
@@ -260,8 +260,8 @@ const { data } = reactive(props)
260
260
  .BlockText {
261
261
  ul {
262
262
  li {
263
- &::before {
264
- @apply bg-secondary;
263
+ &::marker {
264
+ @apply text-secondary;
265
265
  }
266
266
  }
267
267
  }
@@ -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: [BlockImageData, ...BlockStreamfieldMinimalData.body, BlockInlineImageData.block]
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: BlockStreamfieldMinimalData.body
170
+ content: BlockStreamfieldTruncatedData.body
160
171
  }
161
172
  ],
162
173
 
@@ -451,9 +451,9 @@ const computedClass = computed((): string => {
451
451
  .BlockText {
452
452
  ul {
453
453
  li {
454
- &::before {
454
+ &::marker {
455
455
  // intentionally using a specific red
456
- @apply bg-jpl-red;
456
+ @apply text-jpl-red;
457
457
  }
458
458
  }
459
459
  }
@@ -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
- @screen lg {
192
- @apply mr-[10rem];
203
+ p,
204
+ li {
205
+ @screen lg {
206
+ @apply mr-[10rem];
207
+ }
208
+ @screen xl {
209
+ @apply mr-[14rem];
210
+ }
193
211
  }
194
- @screen xl {
195
- @apply mr-[14rem];
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;
@@ -1,20 +0,0 @@
1
- import BlockTable from './BlockTable.vue'
2
-
3
- export default {
4
- title: 'Components/Blocks/BlockTable',
5
- component: BlockTable,
6
- excludeStories: /.*Data$/
7
- }
8
-
9
- export const BlockTableData = {
10
- blockType: 'TableBlock',
11
- table:
12
- "{'data': [['Header 1', 'Header 2', 'Header 3'], ['Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet', 'Lorem ipsum dolor sit amet'], [None, None, None]], 'cell': [], 'first_row_is_table_header': True, 'first_col_is_header': False, 'table_caption': 'Third row intentionally blank to test parsing.'}"
13
- }
14
-
15
- export const BaseStory = {
16
- name: 'BlockTable',
17
- args: {
18
- data: BlockTableData
19
- }
20
- }