Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
33787b8
update package
Sveb Aug 14, 2025
2e670a6
Merge remote-tracking branch 'upstream/main'
Sveb Aug 18, 2025
09043d2
Merge remote-tracking branch 'upstream/main'
Sveb Aug 18, 2025
99240ef
Merge remote-tracking branch 'upstream/main'
Sveb Aug 20, 2025
8301316
Merge remote-tracking branch 'upstream/main'
Sveb Aug 22, 2025
b87f27e
Merge remote-tracking branch 'upstream/main'
Sveb Aug 27, 2025
16e863a
Merge remote-tracking branch 'upstream/main'
Sveb Aug 27, 2025
64208d8
Merge remote-tracking branch 'upstream/main'
Sveb Sep 2, 2025
d7ec61c
Merge remote-tracking branch 'upstream/main'
Sveb Sep 3, 2025
c2a2e75
Merge remote-tracking branch 'upstream/main'
Sveb Sep 4, 2025
33211f0
Merge remote-tracking branch 'upstream/main'
Sveb Sep 4, 2025
fe816e4
Merge remote-tracking branch 'upstream/main'
Sveb Sep 8, 2025
12b0865
Merge remote-tracking branch 'upstream/main'
Sveb Sep 11, 2025
daf45e8
Merge remote-tracking branch 'upstream/main'
Sveb Sep 15, 2025
9dc1550
Merge remote-tracking branch 'upstream/main'
Sveb Sep 22, 2025
499ad28
feat: crrates the header main funkhaus component
Sveb Sep 24, 2025
85587b5
Adds the brand bar to the header
Sveb Sep 24, 2025
d8fac3c
Adds a slot for the search bar
Sveb Sep 24, 2025
00d3ecc
adjusting the slot for searchbar
Sveb Sep 24, 2025
dbc7d1d
Adds the borders to the header and to the slotted item
Sveb Sep 25, 2025
d660e03
Merge remote-tracking branch 'upstream/main'
Sveb Sep 25, 2025
74f59e4
remove the searchbar slot from the header
Sveb Sep 26, 2025
99d7004
Update _header-main-funkahaus.scss
Sveb Sep 26, 2025
6aa62f5
add the secondary nav header to the header.
Sveb Oct 1, 2025
cdea736
Merge remote-tracking branch 'upstream/main'
Sveb Oct 2, 2025
db8bcf4
Merge remote-tracking branch 'upstream/main'
Sveb Oct 17, 2025
38310ea
Merge branch 'main' into header-main-funkhaus
Sveb Oct 21, 2025
b4107a3
Merge remote-tracking branch 'upstream/main'
Sveb Oct 21, 2025
d4be143
Update package.json
Sveb Oct 21, 2025
97d98e3
Merge remote-tracking branch 'upstream/main'
Sveb Oct 28, 2025
da5c0a1
Merge remote-tracking branch 'upstream/main'
Sveb Oct 30, 2025
e15b515
Merge remote-tracking branch 'upstream/main'
Sveb Nov 6, 2025
5d04aad
Merge remote-tracking branch 'upstream/main'
Sveb Nov 10, 2025
a52dd33
fix: run lint fix
Sveb Nov 10, 2025
786e959
Merge remote-tracking branch 'upstream/main' into header-main-funkhaus
Sveb Nov 10, 2025
92249fc
Create HeaderMainFunkhaus.spec.js
Sveb Nov 10, 2025
edba53a
chore: adjust story
Sveb Nov 10, 2025
b7e4f6b
Merge branch 'main' into header-main-funkhaus
Sveb Nov 10, 2025
9f95191
fix: CI Percy error
Sveb Nov 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 0 additions & 11 deletions NOTES.md

This file was deleted.

3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,5 @@
},
"engines": {
"pnpm": "^9.12.1"
},
"packageManager": "[email protected]"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<script setup lang="ts">
import { computed } from 'vue'
import { useTheme } from '@/composables/useTheme'

const props = defineProps<GlobalHamburgerProps>()

// Emits
const emit = defineEmits(['toggle-menu'])

// Data
const theme = useTheme()

// Props
interface GlobalHamburgerProps {
isOpened: boolean
}

// Computed
const classes = computed(() => {
return [
'global-hamburger',
theme?.value || '',
{
'is-opened': props.isOpened
}
]
})

// Methods
function onClick() {
emit('toggle-menu')
}
</script>

<template>
<div
:class="classes"
@click="onClick"
>
<div class="hamburger-lines">
<span class="line line-1" />
<span class="line line-2" />
<span class="line line-3" />
</div>
</div>
</template>

<style scoped lang="scss">
@import "@/styles/dlc/_global-hamburger.scss";
</style>
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
<script setup lang="ts">
// Imports
import SvgLibraryLogo from 'ucla-library-design-tokens/assets/svgs/logo-library-digital-collections.svg'
import { computed } from 'vue'
import SmartLink from '@/lib-components/SmartLink.vue'
import GlobalHamburger from '@/lib-components/GlobalHamburger.vue'
import SiteBrandBar from '@/lib-components/SiteBrandBar.vue'

import { useTheme } from '@/composables/useTheme'

// Props
interface HeaderMainFunkhausProps {
menuOpened: boolean
showSecondary: boolean
menuItems: any[]
secondaryItems: any[]
}

const props = defineProps<HeaderMainFunkhausProps>()

// Emits
const emit = defineEmits(['toggle-menu'])

// Data
const theme = useTheme()

// Computed
const classes = computed(() => {
return ['header-main-funkahus', theme?.value || '', { 'menu-opened': props.menuOpened }]
Copy link

Copilot AI Sep 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CSS class name 'header-main-funkahus' has a spelling error. It should be 'header-main-funkhaus' to match the component name and avoid style application issues.

Copilot uses AI. Check for mistakes.
})

const parsedSubMenuItems = computed(() => {
return props.secondaryItems.map((item) => {
const supportUsClass = item.label?.toLowerCase() === 'support us' ? ' support-us' : ''

return {
...item,
classes: supportUsClass
}
})
})

// Methods
function toggleMenu() {
emit('toggle-menu')
}

function handleAccountButtonClick() {
console.log('handleAccountButtonClick')
}
</script>

<template>
<div :class="classes">
<SiteBrandBar class="brand-bar" />

<ul
v-if="showSecondary"
class="container-secondary show-desktop"
>
<li
v-for="item in parsedSubMenuItems"
:key="item.label"
class="menu-item"
>
<SmartLink
:to="item.to"
:class="item.classes"
class="menu-link"
>
{{ item.label }}
</SmartLink>
</li>

<button
class="account-button"
@click="handleAccountButtonClick"
>
My Account
</button>
</ul>
<div class="container">
<SmartLink
to="/"
class="ucla-dlc-logo-link"
>
<SvgLibraryLogo
class="ucla-dlc-logo"
alt="UCLA Library Digital Collections logo"
/>
</SmartLink>

<ul class="header-links show-desktop">
<li
v-for="item in menuItems"
:key="item.label"
class="menu-item"
>
<SmartLink
:to="item.to"
:class="item.classes"
class="menu-link"
>
{{ item.label }}
</SmartLink>
</li>
</ul>

<GlobalHamburger
class="hamburger show-mobile"
:is-opened="menuOpened"
@toggle-menu="toggleMenu"
/>
</div>
</div>
</template>

<style lang="scss" scoped>
@import "@/styles/dlc/_header-main-funkahaus.scss";
</style>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
describe('Funkhaus / Header Main Funkhaus', () => {
it('Default', () => {
cy.visit(
'/iframe.html?id=funkhaus-header-main-funkhaus--default&args=&viewMode=story'
)
cy.get('.header-main-funkahus').should('exist')
// cy.percySnapshot('Funkhaus / Header Main Funkhaus: Default')
})
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import { computed, provide, ref } from 'vue'
import HeaderMainFunkhaus from '@/lib-components/HeaderMainFunkhaus.vue'
import SmartLink from '@/lib-components/SmartLink.vue'

// Storybook default settings
export default {
title: 'Funkhaus / Header Main Funkhaus',
component: HeaderMainFunkhaus,
}

// Variations of stories below
export function Default() {
provide(() => {
return {
theme: computed(() => 'dlc'),
}
})

return {
components: { HeaderMainFunkhaus, SmartLink },
setup() {
const menuOpened = ref(false)

const toggleMenu = () => {
menuOpened.value = !menuOpened.value
}

const menuItems = [
{
label: 'Using digital collections content',
to: '/digital-collections',
},
{
label: 'About',
to: '/about',
},
{
label: 'Give us feedback',
to: '/feedback',
}
]

return {
menuOpened,
toggleMenu,
menuItems
}
},
template: `
<HeaderMainFunkhaus
:menu-opened="menuOpened"
@toggle-menu="toggleMenu"
:class="menuOpened ? 'menu-opened' : ''"
:menu-items="menuItems"
/>
`,
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
.global-hamburger,
.global-hamburger.dlc {
display: none;
cursor: pointer;

/* Breakpoints */
@media #{$medium} {
display: block;

.hamburger-lines {
position: relative;
width: 24px;
height: 18px;
display: flex;
flex-direction: column;
justify-content: space-between;
}

.line {
display: block;
height: 2px;
width: 100%;
background-color: var(--color-primary-blue-03);
border-radius: 1px;
transform-origin: center;

@include animate-normal;
}

// States
&.is-opened {
.line {
background-color: var(--color-white);
}

.line-1 {
transform: translateY(8px) rotate(45deg);
}

.line-2 {
opacity: 0;
transform: scaleX(0);
}

.line-3 {
transform: translateY(-8px) rotate(-45deg);
}
}
}
}
Loading
Loading