diff --git a/apps/vue-storybook/.storybook/preview.ts b/apps/vue-storybook/.storybook/preview.ts index ee3a5ef3..263cf4ba 100644 --- a/apps/vue-storybook/.storybook/preview.ts +++ b/apps/vue-storybook/.storybook/preview.ts @@ -2,6 +2,7 @@ import { MINIMAL_VIEWPORTS } from '@storybook/addon-viewport' import useMockComponents from './_mock-components.js' import { setup, type Preview } from '@storybook/vue3' +import { createRouter, createWebHashHistory, type RouterOptions } from 'vue-router' import { Swiper, SwiperSlide } from 'swiper/vue' import vClickOutside from 'click-outside-vue3' import VueCompareImage from 'vue3-compare-image' @@ -13,9 +14,28 @@ import customTheme from '@explorer-1/common-storybook/src/config/customTheme' import '@explorer-1/common-storybook/src/config/canvas.css' const pinia = createPinia() - +const router = createRouter({ + routes: [], + history: createWebHashHistory(), + scrollBehavior(to, from, savedPosition) { + if (to.hash) { + return { + el: to.hash, + behavior: 'smooth' + } + } + if (savedPosition) { + return savedPosition + } else { + return { + top: 0 + } + } + } +} as RouterOptions) setup((app, _context) => { app.use(pinia) + app.use(router) app.use(vClickOutside) app.use(VueCompareImage) app.component('Swiper', Swiper) @@ -122,7 +142,8 @@ const preview: Preview = { ['Overview', 'WWW'], 'Footers', ['Overview', 'WWW'], - 'Secondary Navigation' + 'Secondary Navigation', + 'Jump Menu' ], 'Global Layout', [ @@ -149,7 +170,7 @@ const preview: Preview = { 'Cards', ['Overview', 'BlockLinkCard', 'BlockLinkTile', 'BlockCircleImageCard'], 'Blocks', - ['Overview', 'Heroes', ['Overview', 'Small', 'Medium', 'Large']], + ['BlockStreamfield'], 'Heroes', ['Overview', 'Small', 'Medium', 'Large', 'Media Only', 'HeroListingIndex'], 'Forms', diff --git a/apps/vue-storybook/package.json b/apps/vue-storybook/package.json index ac978843..4db6b08a 100644 --- a/apps/vue-storybook/package.json +++ b/apps/vue-storybook/package.json @@ -41,6 +41,7 @@ "@tailwindcss/forms": "^0.5.7", "click-outside-vue3": "^4.0.1", "dayjs": "^1.11.11", + "mitt": "^3.0.1", "swiper": "^11.1.3", "vue": "^3.2.47", "vue3-compare-image": "^1.2.5" diff --git a/packages/common/src/scss/components/_BlockKeyPoints.scss b/packages/common/src/scss/components/_BlockKeyPoints.scss index 3e8e8c0f..c41d0f7b 100644 --- a/packages/common/src/scss/components/_BlockKeyPoints.scss +++ b/packages/common/src/scss/components/_BlockKeyPoints.scss @@ -1,7 +1,7 @@ .BlockKeyPoints { ul li { &::before { - @apply bg-jpl-red; + @apply bg-primary; @apply inline-block; @apply relative; @apply mr-4; diff --git a/packages/vue/package.json b/packages/vue/package.json index bf2ed757..17482fb5 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -32,6 +32,7 @@ "dayjs": "^1.11.11", "fast-qs": "^2.0.3", "lodash": "^4.17.21", + "mitt": "^3.0.1", "sass": "^1.77.4", "swiper": "^11.1.3", "tailwindcss": "^3.4.3", diff --git a/packages/vue/src/components/BaseAudio/BaseAudio.vue b/packages/vue/src/components/BaseAudio/BaseAudio.vue index 82f15bf6..0b280001 100644 --- a/packages/vue/src/components/BaseAudio/BaseAudio.vue +++ b/packages/vue/src/components/BaseAudio/BaseAudio.vue @@ -119,6 +119,7 @@ + diff --git a/packages/vue/src/components/BlockStreamfield/BlockStreamfield.vue b/packages/vue/src/components/BlockStreamfield/BlockStreamfield.vue index 4fda137a..4720733f 100644 --- a/packages/vue/src/components/BlockStreamfield/BlockStreamfield.vue +++ b/packages/vue/src/components/BlockStreamfield/BlockStreamfield.vue @@ -11,7 +11,11 @@ indent="col-3" class="mb-5" > - + diff --git a/packages/vue/src/components/NavDesktop/NavDesktopDropdown.vue b/packages/vue/src/components/NavDesktop/NavDesktopDropdown.vue index 4c6516a5..76bda750 100644 --- a/packages/vue/src/components/NavDesktop/NavDesktopDropdown.vue +++ b/packages/vue/src/components/NavDesktop/NavDesktopDropdown.vue @@ -37,6 +37,7 @@ + diff --git a/packages/vue/src/components/NavJumpMenu/NavJumpMenuContent.vue b/packages/vue/src/components/NavJumpMenu/NavJumpMenuContent.vue new file mode 100644 index 00000000..c4f16834 --- /dev/null +++ b/packages/vue/src/components/NavJumpMenu/NavJumpMenuContent.vue @@ -0,0 +1,74 @@ + + + + diff --git a/packages/vue/src/components/NavMobile/NavMobile.vue b/packages/vue/src/components/NavMobile/NavMobile.vue index 22c70b16..a270d594 100644 --- a/packages/vue/src/components/NavMobile/NavMobile.vue +++ b/packages/vue/src/components/NavMobile/NavMobile.vue @@ -115,6 +115,7 @@ // @ts-nocheck import { defineComponent } from 'vue' import { mapStores } from 'pinia' +import { eventBus } from './../../utils/eventBus' import LogoColor from '@explorer-1/common/src/images/svg/logo-tribrand-color.svg' import LogoWhite from '@explorer-1/common/src/images/svg/logo-tribrand-white.svg' import { useHeaderStore } from './../../store/header' @@ -216,10 +217,7 @@ export default defineComponent({ } }, mounted() { - // // TODO: VUE3: find solution for emitting event from slot - // // TODO: find a cleaner way to do this w/o using mounted or root level events - // // scoped slots? https://github.com/vuejs/vue/issues/4332 - // this.$root?.$on('linkClicked', this.closeMenu) + eventBus.on('linkClicked', () => this.closeMenu()) }, methods: { toggleMenu() { diff --git a/packages/vue/src/components/NavMobile/NavMobileDropdown.vue b/packages/vue/src/components/NavMobile/NavMobileDropdown.vue index 4b217b51..330d60cc 100644 --- a/packages/vue/src/components/NavMobile/NavMobileDropdown.vue +++ b/packages/vue/src/components/NavMobile/NavMobileDropdown.vue @@ -42,6 +42,7 @@ @@ -27,6 +28,8 @@