@explorer-1/vue 0.3.8 → 1.0.0

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 (148) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/package.json +2 -2
  3. package/src/assets/fonts/helvetica-now/.gitkeep +0 -0
  4. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Bd It.otf +0 -0
  5. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Black.otf +0 -0
  6. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Blk It.otf +0 -0
  7. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Bold.otf +0 -0
  8. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Hair It.otf +0 -0
  9. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Hairline.otf +0 -0
  10. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display It.otf +0 -0
  11. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Light.otf +0 -0
  12. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Lt It.otf +0 -0
  13. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Md It.otf +0 -0
  14. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Medium.otf +0 -0
  15. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Th It.otf +0 -0
  16. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Thin.otf +0 -0
  17. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XBd It.otf +0 -0
  18. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XBlack.otf +0 -0
  19. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XBlk It.otf +0 -0
  20. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XBold.otf +0 -0
  21. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XLight.otf +0 -0
  22. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XLt It.otf +0 -0
  23. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display.otf +0 -0
  24. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Bd It.otf +0 -0
  25. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Bold.otf +0 -0
  26. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro ExtraBold.otf +0 -0
  27. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro ExtraLight.otf +0 -0
  28. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro It.otf +0 -0
  29. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Light.otf +0 -0
  30. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Lt It.otf +0 -0
  31. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Md It.otf +0 -0
  32. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Medium.otf +0 -0
  33. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro XBd It.otf +0 -0
  34. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro XLt It.otf +0 -0
  35. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro.otf +0 -0
  36. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Bd It.otf +0 -0
  37. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Black.otf +0 -0
  38. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Blk It.otf +0 -0
  39. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Bold.otf +0 -0
  40. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text ExtraBold.otf +0 -0
  41. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text ExtraLight.otf +0 -0
  42. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text It.otf +0 -0
  43. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Light.otf +0 -0
  44. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Lt It.otf +0 -0
  45. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Md It.otf +0 -0
  46. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Medium.otf +0 -0
  47. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Th It.otf +0 -0
  48. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Thin.otf +0 -0
  49. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text XBd It.otf +0 -0
  50. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text XLt It.otf +0 -0
  51. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text.otf +0 -0
  52. package/src/components/AboutTheAuthor/AboutTheAuthor.vue +2 -2
  53. package/src/components/AsteroidWatchWidget/AsteroidWatchWidget.vue +8 -6
  54. package/src/components/BaseAccordionItem/BaseAccordionItem.vue +1 -1
  55. package/src/components/BaseAudio/BaseAudio.vue +1 -1
  56. package/src/components/BaseButton/BaseButton.stories.ts +0 -6
  57. package/src/components/BaseButton/BaseButton.vue +1 -1
  58. package/src/components/BaseCheckboxGroup/BaseCheckboxGroup.vue +3 -3
  59. package/src/components/BaseImageCaption/BaseImageCaption.vue +1 -1
  60. package/src/components/BaseLink/BaseLink.vue +44 -36
  61. package/src/components/BasePill/BasePill.vue +4 -4
  62. package/src/components/BaseRadioGroup/BaseRadioGroup.vue +4 -5
  63. package/src/components/BaseTimer/BaseTimer.vue +2 -1
  64. package/src/components/BlockCardGridItem/BlockCardGridItemElement.vue +2 -2
  65. package/src/components/BlockCsrTable/BlockCsrTable.vue +2 -2
  66. package/src/components/BlockCsrTable/CsrAttachment.vue +16 -4
  67. package/src/components/BlockCta/BlockCta.vue +2 -2
  68. package/src/components/BlockImageCarousel/BlockImageCarousel.vue +2 -2
  69. package/src/components/BlockKeyPoints/BlockKeyPoints.vue +1 -1
  70. package/src/components/BlockLinkCard/BlockLinkCard.stories.js +3 -1
  71. package/src/components/BlockLinkCard/BlockLinkCard.vue +6 -6
  72. package/src/components/BlockLinkCard/BlockLinkCardCollectionLg.vue +1 -1
  73. package/src/components/BlockLinkTile/BlockLinkTile.vue +2 -2
  74. package/src/components/BlockNewsletterSignup/BlockNewsletterSignup.vue +3 -3
  75. package/src/components/BlockRichTable/BlockRichTable.vue +2 -2
  76. package/src/components/BlockTeaser/BlockTeaser.vue +1 -1
  77. package/src/components/CalendarChip/CalendarChip.vue +2 -2
  78. package/src/components/DetailHeadline/DetailHeadline.vue +3 -3
  79. package/src/components/HeroLarge/HeroLarge.vue +3 -4
  80. package/src/components/HeroMedium/HeroMedium.vue +1 -1
  81. package/src/components/HomepageCarousel/HomepageCarousel.vue +1 -1
  82. package/src/components/HomepageCarouselItem/HomepageCarouselItem.vue +2 -2
  83. package/src/components/HomepageEmbedBlock/HomepageEmbedBlock.vue +1 -1
  84. package/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.vue +1 -1
  85. package/src/components/HomepageMissionsCarousel/HomepageMissionsCarouselItem.vue +3 -3
  86. package/src/components/HomepageStats/HomepageStats.vue +1 -1
  87. package/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue +1 -1
  88. package/src/components/ImageDetailContextImage/ImageDetailContextImage.vue +1 -1
  89. package/src/components/MetaPanel/MetaPanel.vue +4 -4
  90. package/src/components/MetaPanelAccordion/MetaPanelAccordion.vue +3 -3
  91. package/src/components/MetadataEduResource/MetadataEduResource.vue +1 -1
  92. package/src/components/MetadataEvent/MetadataEvent.vue +1 -1
  93. package/src/components/MissionDetailAbout/MissionDetailAbout.vue +1 -1
  94. package/src/components/MissionDetailHero/MissionDetailHero.vue +5 -3
  95. package/src/components/MissionDetailHighlights/MissionDetailHighlights.vue +1 -1
  96. package/src/components/MissionDetailHighlights/MissionDetailHighlightsCarouselItem.vue +2 -2
  97. package/src/components/MissionDetailStats/MissionDetailStatsMini.vue +2 -2
  98. package/src/components/MixinCarousel/MixinCarousel.vue +3 -3
  99. package/src/components/MixinFancybox/MixinFancybox.vue +1 -1
  100. package/src/components/MixinFancybox/MixinFancyboxOpenButton.vue +1 -1
  101. package/src/components/NavDesktop/NavDesktopDropdown.vue +1 -1
  102. package/src/components/NavDesktop/NavDesktopDropdownContent.vue +3 -3
  103. package/src/components/NavDesktop/NavDesktopDropdownMore.vue +1 -1
  104. package/src/components/NavDesktopEdu/NavDesktopEdu.vue +8 -8
  105. package/src/components/NavHeading/NavHeading.vue +2 -2
  106. package/src/components/NavHighlight/NavHighlight.vue +6 -1
  107. package/src/components/NavJumpMenu/NavJumpMenuContent.vue +1 -1
  108. package/src/components/NavLinkList/NavLinkList.vue +1 -1
  109. package/src/components/NavMobile/NavMobile.stories.js +1 -0
  110. package/src/components/NavMobile/NavMobile.vue +6 -6
  111. package/src/components/NavMobile/NavMobileDropdown.vue +1 -1
  112. package/src/components/NavMobile/NavMobileLink.vue +1 -1
  113. package/src/components/NavSecondary/NavSecondary.vue +2 -2
  114. package/src/components/NavSecondary/NavSecondaryDropdown.vue +3 -3
  115. package/src/components/NavSecondary/NavSecondaryDropdownContent.vue +6 -6
  116. package/src/components/NavSecondary/NavSecondaryLink.vue +3 -3
  117. package/src/components/NavSocial/NavSocial.vue +3 -2
  118. package/src/components/PodcastSeriesCarousel/PodcastSeriesCarousel.vue +1 -5
  119. package/src/components/SearchFilterGroup/SearchFilterGroup.vue +3 -3
  120. package/src/components/SearchInput/SearchInput.vue +7 -6
  121. package/src/components/SearchPagination/SearchPagination.vue +2 -0
  122. package/src/components/SearchResultGridItem/SearchResultGridItem.vue +1 -1
  123. package/src/components/SearchSelectMenu/SearchSelectMenu.vue +1 -1
  124. package/src/components/ShareButtons/ShareButtons.vue +4 -4
  125. package/src/components/ShareButtonsEdu/ShareButtonsEdu.vue +1 -1
  126. package/src/components/SwimlaneCTA/SwimlaneCTA.vue +4 -6
  127. package/src/components/TheFooter/TheFooter.vue +3 -3
  128. package/src/components/TimelineDialog/TimelineDialog.vue +7 -7
  129. package/src/components/TopicDetailMissionCarouselItem/TopicDetailMissionCarouselItem.vue +2 -2
  130. package/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.vue +2 -4
  131. package/src/components/TopicDetailMore/TopicDetailMore.vue +1 -5
  132. package/src/docs/foundation/FontVariants.vue +49 -27
  133. package/src/docs/foundation/color.docs.mdx +544 -115
  134. package/src/docs/foundation/colorsemantic.docs.mdx +395 -0
  135. package/src/docs/foundation/typography.docs.mdx +10 -5
  136. package/src/docs/utils/ColorRow.jsx +138 -0
  137. package/src/templates/PageEventDetail/PageEventDetail.vue +1 -1
  138. package/src/templates/PageImageDetail/PageImageDetail.vue +6 -10
  139. package/src/templates/PageNewsDetail/PageNewsDetail.vue +1 -1
  140. package/src/templates/edu/PageEduEventDetail/PageEduEventDetail.vue +2 -2
  141. package/src/templates/edu/PageEduHome/PageEduHome.vue +1 -1
  142. package/src/templates/edu/PageEduMultimediaDetail/PageEduMultimediaDetail.vue +1 -1
  143. package/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.vue +1 -1
  144. package/src/templates/www/PageCuratedGallery/PageCuratedGallery.vue +1 -1
  145. package/src/templates/www/PageInfographicDetail/PageInfographicDetail.vue +1 -1
  146. package/src/templates/www/PageMaintenanceMode/PageMaintenanceMode.vue +1 -1
  147. package/src/templates/www/PagePodcast/PagePodcast.vue +1 -1
  148. package/src/templates/www/PagePodcastSeason/PagePodcastSeason.vue +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @explorer-1/vue
2
2
 
3
+ ## 1.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - 27c013c: Updating Explorer-1 with JPL's new branding colors and typefaces.
8
+
9
+ ### Patch Changes
10
+
11
+ - 27c013c: Documentation updates, Storybook improvements.
12
+ - Updated dependencies [27c013c]
13
+ - @explorer-1/common@2.0.0
14
+
15
+ ## 0.3.9
16
+
17
+ ### Patch Changes
18
+
19
+ - 604b717: Fixing url handling in BlockCsrTable, adding option to disable trailing slash in BaseLink.
20
+
3
21
  ## 0.3.8
4
22
 
5
23
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@explorer-1/vue",
3
- "version": "0.3.8",
3
+ "version": "1.0.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -31,7 +31,7 @@
31
31
  "vue-bind-once": "^0.2.1",
32
32
  "vue3-compare-image": "^1.2.5",
33
33
  "vue3-observe-visibility": "^1.0.1",
34
- "@explorer-1/common": "1.3.3"
34
+ "@explorer-1/common": "2.0.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@vitejs/plugin-vue": "^5.0.4",
File without changes
@@ -63,13 +63,13 @@ const headingString = computed(() => {
63
63
  <div class="mb-4">
64
64
  <h3
65
65
  v-if="author.author.name"
66
- class="!font-medium !tracking-normal !text-lg mb-1"
66
+ class="!text-lg mb-1"
67
67
  >
68
68
  {{ author.author.name }}
69
69
  </h3>
70
70
  <p
71
71
  v-if="author.author.jobTitle || author.author.organization"
72
- class="text-lg"
72
+ class="font-display text-lg"
73
73
  >
74
74
  {{
75
75
  (author.author.jobTitle ? author.author.jobTitle : '') +
@@ -78,9 +78,9 @@
78
78
  :href="item.externalLink"
79
79
  external-target-blank
80
80
  >
81
- <span class="flex flex-nowrap items-center">
81
+ <span class="font-secondary text-base flex flex-nowrap items-center">
82
82
  <span>{{ item.name }}</span>
83
- <IconExternal class="text-jpl-red ml-3 text-lg" />
83
+ <IconExternal class="text-jpl-red ml-3 text-base" />
84
84
  </span>
85
85
  </BaseLink>
86
86
  </div>
@@ -89,10 +89,12 @@
89
89
  class="lg:col-span-4 col-span-full"
90
90
  >
91
91
  <p class="label text-subtitle text-jpl-red">Date</p>
92
- {{
93
- // @ts-ignore
94
- $filters.displayDate(item.date)
95
- }}
92
+ <div class="font-secondary text-base">
93
+ {{
94
+ // @ts-ignore
95
+ $filters.displayDate(item.date)
96
+ }}
97
+ </div>
96
98
  </div>
97
99
  </div>
98
100
  </div>
@@ -101,7 +101,7 @@ defineSlots<{
101
101
  >
102
102
  <component
103
103
  :is="headingLevel"
104
- class="!font-normal !tracking-normal"
104
+ class="!font-normal"
105
105
  >
106
106
  <button
107
107
  v-bind-once="{ id: headingId, 'aria-controls': panelId }"
@@ -27,7 +27,7 @@
27
27
  </div>
28
28
  <div class="flex flex-col w-full z-20">
29
29
  <div
30
- class="BaseAudio__playback-time-wrapper cursor-pointer relative inline-block w-full border-t border-jpl-red bg-gray-mid-dark bg-opacity-25 h-2"
30
+ class="BaseAudio__playback-time-wrapper cursor-pointer relative inline-block w-full border-t border-jpl-red bg-gray-mid bg-opacity-25 h-2"
31
31
  title="Playback Position"
32
32
  @click="setPosition"
33
33
  >
@@ -15,12 +15,6 @@ export default {
15
15
  description: {
16
16
  component: 'Simple button with style variations.'
17
17
  }
18
- },
19
- to: {
20
- description: 'If populated, a router-link will be generated. Overrides `href`'
21
- },
22
- click: {
23
- type: '@click emit'
24
18
  }
25
19
  }
26
20
  }
@@ -125,7 +125,7 @@ export default defineComponent({
125
125
  <template>
126
126
  <component
127
127
  :is="tag"
128
- class="BaseButton text-contrast-none print:border print:!border-gray-dark print:text-center"
128
+ class="BaseButton text-sm text-contrast-none print:border print:!border-gray-dark print:text-center"
129
129
  :class="variantClass"
130
130
  :aria-label="ariaLabel"
131
131
  :disabled="disabled"
@@ -2,7 +2,7 @@
2
2
  <div class="BaseCheckboxGroup">
3
3
  <label
4
4
  v-if="heading"
5
- class="text-lg font-semibold text-gray-900"
5
+ class="text-lg font-bold text-gray-900"
6
6
  >{{ heading }}</label
7
7
  >
8
8
  <p
@@ -41,11 +41,11 @@
41
41
  <div class="mb-1">
42
42
  <label
43
43
  :for="`${group}_${option.id}`"
44
- class="ml-3 block text-md text-gray-700"
44
+ class="ml-3 block text-md text-gray-mid-dark"
45
45
  >
46
46
  <span
47
47
  v-if="option.title"
48
- class="font-semibold"
48
+ class="font-bold"
49
49
  >{{ option.title }}</span
50
50
  >
51
51
  <span v-if="option.text"> - </span>
@@ -33,7 +33,7 @@ export default defineComponent({
33
33
  <template>
34
34
  <div
35
35
  v-if="data"
36
- class="BaseImageCaption text-body-sm"
36
+ class="BaseImageCaption text-body-sm -tracking-[0.03rem]"
37
37
  >
38
38
  <div
39
39
  v-if="data.caption || data.credit"
@@ -50,6 +50,11 @@ export default defineComponent({
50
50
  type: String,
51
51
  default: undefined
52
52
  },
53
+ /** Links are normalized to add a trailing slash (handles links to files, query params etc.). Set to false to disable. */
54
+ addSlash: {
55
+ type: Boolean,
56
+ default: true
57
+ },
53
58
  title: {
54
59
  type: String,
55
60
  default: undefined
@@ -196,46 +201,49 @@ export default defineComponent({
196
201
  eventBus.emit('linkClicked')
197
202
  },
198
203
  addTrailingSlash(path: string) {
199
- let filteredPath = path
200
- if (path && typeof path === 'string') {
201
- const isFilePath = () => {
202
- const afterLastSlash = path.split('/').pop()
203
- if (afterLastSlash && afterLastSlash.includes('.')) {
204
- return true
205
- }
206
- return false
207
- }
208
- const isQueryPath = path.includes('?')
209
- const isAnchorPath = path.includes('#')
210
- if (
211
- !isQueryPath &&
212
- !isAnchorPath &&
213
- !isFilePath() &&
214
- path !== '/' &&
215
- !path.endsWith('/') &&
216
- !path.startsWith('/preview')
217
- ) {
218
- // add a trailing slash if there isn't one
219
- filteredPath += '/'
220
- } else if (isQueryPath) {
221
- if (!path.includes('/?')) {
222
- // also add a trailing slash to paths with query params
223
- const urlParts = filteredPath.split('?')
224
- const pathWithSlash = `${urlParts[0]}/`
225
- const queryParams = urlParts[1]
226
- filteredPath = pathWithSlash + '?' + queryParams
204
+ if (this.addSlash) {
205
+ let filteredPath = path
206
+ if (path && typeof path === 'string') {
207
+ const isFilePath = () => {
208
+ const afterLastSlash = path.split('/').pop()
209
+ if (afterLastSlash && afterLastSlash.includes('.')) {
210
+ return true
211
+ }
212
+ return false
227
213
  }
228
- } else if (isAnchorPath) {
229
- if (!path.includes('/#')) {
230
- // also add a trailing slash to paths with anchors
231
- const urlParts = filteredPath.split('#')
232
- const pathWithSlash = `${urlParts[0]}/`
233
- const anchor = urlParts[1]
234
- filteredPath = pathWithSlash + '#' + anchor
214
+ const isQueryPath = path.includes('?')
215
+ const isAnchorPath = path.includes('#')
216
+ if (
217
+ !isQueryPath &&
218
+ !isAnchorPath &&
219
+ !isFilePath() &&
220
+ path !== '/' &&
221
+ !path.endsWith('/') &&
222
+ !path.startsWith('/preview')
223
+ ) {
224
+ // add a trailing slash if there isn't one
225
+ filteredPath += '/'
226
+ } else if (isQueryPath) {
227
+ if (!path.includes('/?')) {
228
+ // also add a trailing slash to paths with query params
229
+ const urlParts = filteredPath.split('?')
230
+ const pathWithSlash = `${urlParts[0]}/`
231
+ const queryParams = urlParts[1]
232
+ filteredPath = pathWithSlash + '?' + queryParams
233
+ }
234
+ } else if (isAnchorPath) {
235
+ if (!path.includes('/#')) {
236
+ // also add a trailing slash to paths with anchors
237
+ const urlParts = filteredPath.split('#')
238
+ const pathWithSlash = `${urlParts[0]}/`
239
+ const anchor = urlParts[1]
240
+ filteredPath = pathWithSlash + '#' + anchor
241
+ }
235
242
  }
236
243
  }
244
+ return filteredPath
237
245
  }
238
- return filteredPath
246
+ return path
239
247
  }
240
248
  }
241
249
  })
@@ -13,9 +13,9 @@ const variantMap = {
13
13
  type VariantMapKey = keyof typeof variantMap
14
14
 
15
15
  const sizeMap = {
16
- sm: 'text-xs border-t-2 py-1 px-2.5',
17
- md: 'text-xs lg:text-base border-t py-1.5 px-3.5',
18
- lg: 'text-base lg:text-lg border-t pt-1.5 pb-1 px-5'
16
+ sm: 'text-subtitle border-t-2 py-1 px-2.5',
17
+ md: 'text-subtitle lg:text-base border-t py-1.5 px-3.5',
18
+ lg: 'text-subtitle lg:text-lg border-t py-1.5 px-5'
19
19
  } as const
20
20
  type SizeMapKey = keyof typeof sizeMap
21
21
 
@@ -69,7 +69,7 @@ const theText = computed(() => {
69
69
  <template>
70
70
  <p
71
71
  :class="`${variantMap[metadataAttrs.variant || props.variant]} ${sizeMap[props.size]}`"
72
- class="ThemeVariantLight text-contrast-none inline-block text-white font-bold edu:font-extrabold rounded-full leading-tight m-0 uppercase print:border-none print:px-0"
72
+ class="ThemeVariantLight text-contrast-none inline-block text-white !font-bold rounded-full leading-tight m-0 uppercase print:border-none print:px-0"
73
73
  >
74
74
  {{ theText }}
75
75
  <span class="sr-only">.</span>
@@ -2,12 +2,12 @@
2
2
  <div class="BaseRadioGroup">
3
3
  <label
4
4
  v-if="heading"
5
- class="text-lg font-semibold text-gray-900"
5
+ class="font-display text-lg font-bold text-gray-900"
6
6
  >{{ heading }}</label
7
7
  >
8
8
  <p
9
9
  v-if="subHeading"
10
- class="text-lg pt-4 pb-2 pr-4"
10
+ class="text-body-md pt-4 pb-2 pr-4"
11
11
  >
12
12
  {{ subHeading }}
13
13
  </p>
@@ -39,18 +39,17 @@
39
39
  />
40
40
  <label
41
41
  :for="`${group}_${option.id}`"
42
- class="ml-3 block text-md text-gray-700"
42
+ class="ml-3 block text-md text-gray-mid-dark"
43
43
  >
44
44
  <span
45
45
  v-if="option.title"
46
- :class="option.text ? 'font-semibold' : ''"
46
+ :class="option.text ? 'font-medium' : ''"
47
47
  >{{ option.title }}</span
48
48
  >
49
49
  <span v-if="option.text"> - </span>
50
50
  <span
51
51
  v-if="option.text"
52
52
  :id="`${group}_${option.id}_description`"
53
- class="font-light"
54
53
  >{{ option.text }}</span
55
54
  >
56
55
  </label>
@@ -42,7 +42,8 @@
42
42
  </span>
43
43
  <br v-if="!inline" />
44
44
  <span
45
- class="unit text-body-xs uppercase"
45
+ class="unit font-secondary text-xs uppercase"
46
+ :class="{ 'pl-2': unit === 'seconds' }"
46
47
  data-chromatic="ignore"
47
48
  >
48
49
  {{ shortLabel(unit) }}
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  class="shadow-jpl relative h-full bg-white"
4
- :class="{ 'flex items-center min-h-32': !image }"
4
+ :class="{ 'flex items-start min-h-32': !image }"
5
5
  >
6
6
  <div
7
7
  v-if="image"
@@ -24,7 +24,7 @@
24
24
  />
25
25
  </BaseImagePlaceholder>
26
26
  </div>
27
- <div class="px-6 py-6 ThemeVariantLight">
27
+ <div class="px-6 py-6 w-full ThemeVariantLight">
28
28
  <template v-if="label">
29
29
  <div class="text-primary text-subtitle internal:text-black">
30
30
  {{ label }}
@@ -76,7 +76,7 @@ const theme = themeMaterial.withParams({
76
76
  })
77
77
 
78
78
  const headerClass = [
79
- 'min-w-[6rem] bg-jpl-blue-darker edu:bg-jpl-violet-darker text-subtitle text-white text-sm border-gray-light-mid lg:p-5 p-3 border-b text-left'
79
+ 'min-w-[6rem] bg-jpl-blue-darker edu:bg-jpl-violet-darker font-display text-white text-sm border-gray-light-mid lg:p-5 p-3 border-b text-left'
80
80
  ]
81
81
  const defaultcolDef = {
82
82
  flex: 1,
@@ -245,7 +245,7 @@ const onFilterTextBoxChanged = () => {
245
245
  >
246
246
  </p>
247
247
  </div>
248
- <h2 class="text-lg tracking-tight mb-3">Test Limits</h2>
248
+ <h2 class="text-lg mb-3">Test Limits</h2>
249
249
  <CsrTestLimitsTable :data="modalData.ExportPackageRates" />
250
250
  </div>
251
251
  </BaseModalDialog>
@@ -1,5 +1,5 @@
1
1
  <script setup lang="ts">
2
- import { reactive } from 'vue'
2
+ import { computed, onMounted } from 'vue'
3
3
  import BaseLink from './../BaseLink/BaseLink.vue'
4
4
 
5
5
  interface CsrAttachmentProps {
@@ -15,14 +15,26 @@ interface CsrAttachmentProps {
15
15
  const props = withDefaults(defineProps<CsrAttachmentProps>(), {
16
16
  params: undefined
17
17
  })
18
- const { params } = reactive(props)
18
+
19
+ const encodedAttachmentUrl = computed(() => {
20
+ let url = ''
21
+ if (props.params.data?.Attachment && props.params.attachmentPrefix) {
22
+ url = props.params.attachmentPrefix + props.params.data.Attachment
23
+ }
24
+ return encodeURI(url)
25
+ })
26
+
27
+ onMounted(() => {
28
+ console.log(encodedAttachmentUrl.value)
29
+ })
19
30
  </script>
20
31
  <template>
21
32
  <BaseLink
22
- v-if="params?.data?.Attachment"
23
- :href="params.attachmentPrefix + params.data.Attachment"
33
+ v-if="props.params?.data?.Attachment"
34
+ :href="encodedAttachmentUrl"
24
35
  variant="default"
25
36
  target="_blank"
37
+ :add-slash="false"
26
38
  >Download</BaseLink
27
39
  >
28
40
  </template>
@@ -1,9 +1,9 @@
1
1
  <template>
2
2
  <div
3
- class="bg-gray-light edu:bg-stars edu:bg-primary md:mx-0 sm:py-8 md:py-10 md:px-0 sm:mx-20 px-6 py-6 text-center"
3
+ class="bg-gray-light edu:bg-stars edu:bg-primary-dark md:mx-0 sm:py-8 md:py-10 md:px-0 sm:mx-20 px-6 py-6 text-center"
4
4
  >
5
5
  <div class="md:mx-16 xl:mx-24">
6
- <p class="text-h6 edu:text-white edu:font-extrabold">{{ data.heading }}</p>
6
+ <p class="text-h6 edu:text-white">{{ data.heading }}</p>
7
7
  </div>
8
8
  <BaseButton
9
9
  v-if="data.page"
@@ -24,7 +24,7 @@
24
24
  <div class="absolute inset-0">
25
25
  <div class="absolute bottom-0 right-0 z-10 flex">
26
26
  <BaseButton
27
- class="swiper-prev xl:text-xl border-collapse"
27
+ class="swiper-prev !text-lg xl:!text-xl border-collapse"
28
28
  aria-label="Previous slide"
29
29
  >
30
30
  <template #icon>
@@ -32,7 +32,7 @@
32
32
  </template>
33
33
  </BaseButton>
34
34
  <BaseButton
35
- class="swiper-next xl:text-xl border-collapse"
35
+ class="swiper-next !text-lg xl:!text-xl border-collapse"
36
36
  aria-label="Next slide"
37
37
  >
38
38
  <template #icon>
@@ -8,7 +8,7 @@
8
8
  class="mb-5"
9
9
  :data="{ heading: data.heading }"
10
10
  />
11
- <ul class="print:!list-disc">
11
+ <ul class="print:!list-disc font-text">
12
12
  <li
13
13
  v-for="(item, index) in data.listItem"
14
14
  :key="index"
@@ -41,7 +41,8 @@ export const BaseStory = {
41
41
  })
42
42
  ],
43
43
  args: {
44
- ...BlockLinkCardData
44
+ ...BlockLinkCardData,
45
+ size: 'md'
45
46
  }
46
47
  }
47
48
 
@@ -343,6 +344,7 @@ export const EduNewsItem = {
343
344
  }
344
345
 
345
346
  export const ExternalLink = {
347
+ globals: { theme: 'defaultTheme' },
346
348
  decorators: [
347
349
  () => ({
348
350
  template: `<div id="storyRoot" class="relative grid grid-cols-2 gap-3"><story/></div>`