Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
60736f4
Creates the collection block and grid collections components.
Sveb Jul 21, 2025
2cdce09
Clean up
Sveb Jul 21, 2025
040b837
Adds the themes, moves the style to the theme files, clean up.
Sveb Jul 23, 2025
fda7612
remove the redundant theme file - will ad later if neccessary
Sveb Jul 23, 2025
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
b21594e
Updates the components with new knowledge.
Sveb Aug 25, 2025
b5391f0
Adds a default class alongside the dlc one.
Sveb Aug 27, 2025
b87f27e
Merge remote-tracking branch 'upstream/main'
Sveb Aug 27, 2025
16e863a
Merge remote-tracking branch 'upstream/main'
Sveb Aug 27, 2025
4c72660
Update compoent, run eslint fix
Sveb Aug 28, 2025
595da3d
Merge branch 'main' into BlockCollection
Sveb Aug 28, 2025
4fa604a
Update _block-collection.scss
Sveb Aug 28, 2025
b7fb501
Adjust font-weight and text-dcoration-color
Sveb Sep 2, 2025
9cf0c32
remove the packageManager before making PRs.
Sveb Sep 2, 2025
b5f64ab
Update package.json
Sveb Sep 2, 2025
d2891ca
Adds spec file for the compoments
Sveb Sep 2, 2025
6486fd4
Delete NOTES.md
Sveb Sep 2, 2025
64208d8
Merge remote-tracking branch 'upstream/main'
Sveb Sep 2, 2025
d2c45e9
Merge branch 'main' into BlockCollection
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
7b5f6fa
Merge branch 'main' into BlockCollection
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
d660e03
Merge remote-tracking branch 'upstream/main'
Sveb Sep 25, 2025
cdea736
Merge remote-tracking branch 'upstream/main'
Sveb Oct 2, 2025
fe5f331
Merge branch 'main' into BlockCollection
pghorpade Oct 10, 2025
f650268
Removes the extra created components, leverages the existant section-…
Sveb Oct 13, 2025
db8bcf4
Merge remote-tracking branch 'upstream/main'
Sveb Oct 17, 2025
4695b8c
Merge branch 'main' into BlockCollection
Sveb Oct 17, 2025
756cba5
fix the lint error
Sveb Oct 17, 2025
430626f
fix: percy and eslint issues (#839)
pghorpade Oct 17, 2025
54fb027
chore(release): set `package.json` to 1.36.2 [skip ci]
semantic-release-bot Oct 17, 2025
2635689
chore(nuxt-module): force release after vue-component-library update …
invalid-email-address Oct 17, 2025
1147ed2
chore(release): set `package.json` to 1.2.80 [skip ci]
semantic-release-bot Oct 17, 2025
6ee2317
fix: APPS-3517 update font color on caption on ImageSlider (#838)
angelahuqing Oct 17, 2025
8ffa64c
chore(release): set `package.json` to 1.36.3 [skip ci]
semantic-release-bot Oct 17, 2025
29769de
chore(nuxt-module): force release after vue-component-library update …
invalid-email-address Oct 17, 2025
e3f773c
chore(release): set `package.json` to 1.2.81 [skip ci]
semantic-release-bot Oct 17, 2025
b367f9f
fix: APPS-3471 Truncate long breadcrumb titles (#837)
tinuola Oct 17, 2025
3cbd670
chore(release): set `package.json` to 1.36.4 [skip ci]
semantic-release-bot Oct 17, 2025
eac6b5f
chore(nuxt-module): force release after vue-component-library update …
invalid-email-address Oct 17, 2025
a086ab0
chore(release): set `package.json` to 1.2.82 [skip ci]
semantic-release-bot Oct 17, 2025
2c43638
Merge branch 'main' into BlockCollection
pghorpade Oct 17, 2025
79eeea8
feat: add slot to card meta (#841)
farosFreed Oct 17, 2025
abb28ac
chore(release): set `package.json` to 1.37.0 [skip ci]
semantic-release-bot Oct 17, 2025
cdfd1ec
chore(nuxt-module): force release after vue-component-library update …
invalid-email-address Oct 17, 2025
faedfdc
chore(release): set `package.json` to 1.2.83 [skip ci]
semantic-release-bot Oct 17, 2025
04eaa4c
fix: only add primary-with-page-anchor when pageanchor present (#842)
farosFreed Oct 20, 2025
e437e5d
chore(release): set `package.json` to 1.37.1 [skip ci]
semantic-release-bot Oct 20, 2025
b84e468
chore(nuxt-module): force release after vue-component-library update …
invalid-email-address Oct 20, 2025
aea17e3
chore(release): set `package.json` to 1.2.84 [skip ci]
semantic-release-bot Oct 20, 2025
5ca0204
Merge branch 'main' into BlockCollection
pghorpade Oct 20, 2025
db79b84
fix: percyfork (#843)
pghorpade Oct 20, 2025
957c9be
feat: creates ButtonIiif component (#806)
Sveb Oct 20, 2025
c7e25db
chore(release): set `package.json` to 1.38.0 [skip ci]
semantic-release-bot Oct 20, 2025
83b2f2b
chore(nuxt-module): force release after vue-component-library update …
invalid-email-address Oct 20, 2025
d7b351f
chore(release): set `package.json` to 1.2.85 [skip ci]
semantic-release-bot Oct 20, 2025
aaba1e9
deletes redundant styles and stories
Sveb Oct 21, 2025
7c707c3
remove the default class.
Sveb Oct 21, 2025
ad01b18
Merge branch 'main' into BlockCollection
Sveb Oct 21, 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
37 changes: 28 additions & 9 deletions .github/workflows/percy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,17 +122,27 @@ jobs:
env:
CYPRESS_CACHE_FOLDER: $HOME/.cache/Cypress

- name: Cache Storybook Build
id: cache-storybook
uses: actions/cache@v3
with:
path: storybook-static
key: storybook-${{ github.sha }}

- name: Build Storybook
if: steps.cache-storybook.outputs.cache-hit != 'true'
run: pnpm --filter @ucla-library-monorepo/ucla-library-website-components run build-storybook

- name: Percy via Cypress (internal, Netlify preview)
uses: cypress-io/github-action@v5
with:
working-directory: packages/vue-component-library
install: false
start: "" # using remote Netlify URL
wait-on: ${{ github.event.inputs.preview_url }}
wait-on-timeout: 180
start: pnpm --filter @ucla-library-monorepo/ucla-library-website-components exec http-server ./storybook-static -p 6006
wait-on: http://localhost:6006
wait-on-timeout: 600
command-prefix: "percy exec -- pnpx"
env:
CYPRESS_baseUrl: ${{ github.event.inputs.preview_url }}
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN_STORYBOOK_VUE3X }}
PERCY_TARGET_BRANCH: main

Expand Down Expand Up @@ -165,18 +175,27 @@ jobs:
env:
CYPRESS_CACHE_FOLDER: $HOME/.cache/Cypress

- name: Cache Storybook Build
id: cache-storybook
uses: actions/cache@v3
with:
path: storybook-static
key: storybook-${{ github.sha }}

- name: Build Storybook
if: steps.cache-storybook.outputs.cache-hit != 'true'
run: pnpm --filter @ucla-library-monorepo/ucla-library-website-components run build-storybook

- name: Percy via Cypress (fork, Netlify preview)
uses: cypress-io/github-action@v5
with:
working-directory: packages/vue-component-library
install: false
start: "" # using remote Netlify URL
wait-on: ${{ github.event.inputs.preview_url }}
wait-on-timeout: 180
start: pnpm --filter @ucla-library-monorepo/ucla-library-website-components exec http-server ./storybook-static -p 6006
wait-on: http://localhost:6006
wait-on-timeout: 600
command-prefix: "percy exec -- pnpx"
env:
CYPRESS_baseUrl: ${{ github.event.inputs.preview_url }}
# NOTE: uses your fork secret name from your earlier snippet
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN_STORYBOOK }}
PERCY_TARGET_BRANCH: main
PERCY_BRANCH: pr-${{ github.event.inputs.pr_number }}-${{ needs.get-pr-info.outputs.head_ref_sanitized }}
Expand Down
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]"
}
}
12 changes: 12 additions & 0 deletions packages/component-library-nuxt-module/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
# [@ucla-library/component-library-nuxt-module-v1.2.85](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library/component-library-nuxt-module-v1.2.84...@ucla-library/component-library-nuxt-module-v1.2.85) (2025-10-20)

# [@ucla-library/component-library-nuxt-module-v1.2.84](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library/component-library-nuxt-module-v1.2.83...@ucla-library/component-library-nuxt-module-v1.2.84) (2025-10-20)

# [@ucla-library/component-library-nuxt-module-v1.2.83](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library/component-library-nuxt-module-v1.2.82...@ucla-library/component-library-nuxt-module-v1.2.83) (2025-10-17)

# [@ucla-library/component-library-nuxt-module-v1.2.82](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library/component-library-nuxt-module-v1.2.81...@ucla-library/component-library-nuxt-module-v1.2.82) (2025-10-17)

# [@ucla-library/component-library-nuxt-module-v1.2.81](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library/component-library-nuxt-module-v1.2.80...@ucla-library/component-library-nuxt-module-v1.2.81) (2025-10-17)

# [@ucla-library/component-library-nuxt-module-v1.2.80](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library/component-library-nuxt-module-v1.2.79...@ucla-library/component-library-nuxt-module-v1.2.80) (2025-10-17)

# [@ucla-library/component-library-nuxt-module-v1.2.79](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library/component-library-nuxt-module-v1.2.78...@ucla-library/component-library-nuxt-module-v1.2.79) (2025-10-15)

# [@ucla-library/component-library-nuxt-module-v1.2.78](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library/component-library-nuxt-module-v1.2.77...@ucla-library/component-library-nuxt-module-v1.2.78) (2025-10-10)
Expand Down
2 changes: 1 addition & 1 deletion packages/component-library-nuxt-module/FORCE_RELEASE.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Triggered release at Wed Oct 15 14:38:07 UTC 2025
Triggered release at Mon Oct 20 23:38:43 UTC 2025
2 changes: 1 addition & 1 deletion packages/component-library-nuxt-module/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ucla-library/component-library-nuxt-module",
"version": "1.2.79",
"version": "1.2.85",
"publishConfig": {
"access": "public"
},
Expand Down
42 changes: 42 additions & 0 deletions packages/vue-component-library/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,45 @@
# [@ucla-library-monorepo/ucla-library-website-components-v1.38.0](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library-monorepo/ucla-library-website-components-v1.37.1...@ucla-library-monorepo/ucla-library-website-components-v1.38.0) (2025-10-20)


### Features

* creates ButtonIiif component ([#806](https://github.com/UCLALibrary/ucla-library-website-components/issues/806)) ([957c9be](https://github.com/UCLALibrary/ucla-library-website-components/commit/957c9be9064dd755eb37e8d86371f63fc14ea01d))

# [@ucla-library-monorepo/ucla-library-website-components-v1.37.1](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library-monorepo/ucla-library-website-components-v1.37.0...@ucla-library-monorepo/ucla-library-website-components-v1.37.1) (2025-10-20)


### Bug Fixes

* only add primary-with-page-anchor when pageanchor present ([#842](https://github.com/UCLALibrary/ucla-library-website-components/issues/842)) ([04eaa4c](https://github.com/UCLALibrary/ucla-library-website-components/commit/04eaa4cc02e81e53daf0a40838da67113f52feb1))

# [@ucla-library-monorepo/ucla-library-website-components-v1.37.0](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library-monorepo/ucla-library-website-components-v1.36.4...@ucla-library-monorepo/ucla-library-website-components-v1.37.0) (2025-10-17)


### Features

* add slot to card meta ([#841](https://github.com/UCLALibrary/ucla-library-website-components/issues/841)) ([79eeea8](https://github.com/UCLALibrary/ucla-library-website-components/commit/79eeea85b3e84f7e28054fc5f1d9717e17f624c2))

# [@ucla-library-monorepo/ucla-library-website-components-v1.36.4](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library-monorepo/ucla-library-website-components-v1.36.3...@ucla-library-monorepo/ucla-library-website-components-v1.36.4) (2025-10-17)


### Bug Fixes

* APPS-3471 Truncate long breadcrumb titles ([#837](https://github.com/UCLALibrary/ucla-library-website-components/issues/837)) ([b367f9f](https://github.com/UCLALibrary/ucla-library-website-components/commit/b367f9fdf07486183f83b028dbed88a25e5f019c))

# [@ucla-library-monorepo/ucla-library-website-components-v1.36.3](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library-monorepo/ucla-library-website-components-v1.36.2...@ucla-library-monorepo/ucla-library-website-components-v1.36.3) (2025-10-17)


### Bug Fixes

* APPS-3517 update font color on caption on ImageSlider ([#838](https://github.com/UCLALibrary/ucla-library-website-components/issues/838)) ([6ee2317](https://github.com/UCLALibrary/ucla-library-website-components/commit/6ee23175efcf178718405aba717a220c6ac35a8e))

# [@ucla-library-monorepo/ucla-library-website-components-v1.36.2](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library-monorepo/ucla-library-website-components-v1.36.1...@ucla-library-monorepo/ucla-library-website-components-v1.36.2) (2025-10-17)


### Bug Fixes

* percy and eslint issues ([#839](https://github.com/UCLALibrary/ucla-library-website-components/issues/839)) ([430626f](https://github.com/UCLALibrary/ucla-library-website-components/commit/430626f6acdd67fc550240680e0e812a5f9e12e2))

# [@ucla-library-monorepo/ucla-library-website-components-v1.36.1](https://github.com/UCLALibrary/ucla-library-website-components/compare/@ucla-library-monorepo/ucla-library-website-components-v1.36.0...@ucla-library-monorepo/ucla-library-website-components-v1.36.1) (2025-10-15)


Expand Down
2 changes: 1 addition & 1 deletion packages/vue-component-library/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@ucla-library-monorepo/ucla-library-website-components",
"type": "module",
"version": "1.36.1",
"version": "1.38.0",
"homepage": "https://ucla-library-storybook.netlify.app/?path=/docs/configure-your-project--docs",
"repository": {
"type": "git",
Expand Down
32 changes: 32 additions & 0 deletions packages/vue-component-library/src/lib-components/ButtonIiif.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<script setup lang="ts">
// Imports
import { computed } from 'vue'
import IconIiif from 'ucla-library-design-tokens/assets/svgs/icon-iiif.svg'
import SmartLink from '@/lib-components/SmartLink.vue'
import { useTheme } from '@/composables/useTheme'

defineProps<ButtonIiifProps>()

// Theme
const theme = useTheme()

// Props
interface ButtonIiifProps {
to: string
}
// Computed
const classes = computed(() => (['button-iiif', theme?.value || '']))
</script>

<template>
<SmartLink
:to="to"
:class="classes"
>
<IconIiif class="icon-iiif" />
</SmartLink>
</template>

<style lang="scss" scoped>
@import "@/styles/dlc/_button-iiif.scss";
</style>
14 changes: 11 additions & 3 deletions packages/vue-component-library/src/lib-components/CardMeta.vue
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,9 @@ const classes = computed(() => {
v-html="category"
/>

<!-- Named slot for custom title -->
<!-- Slot for injecting a title with any tags / styles (useful to substitute h1 tags for accessibility) -->
<slot name="anyTitle" />
<!-- Named slots for custom title with H3 tags -->
<h3
v-if="$slots.customTitle && !to && !title"
class="custom-title"
Expand Down Expand Up @@ -296,13 +298,19 @@ const classes = computed(() => {
/>

<!-- SHARE BUTTON -->
<div class="sharebutton-slot">
<div
v-if="$slots.sharebutton"
class="sharebutton-slot"
>
<slot name="sharebutton" />
</div>

<!-- USED FOR BLOCKTAG SLOT -->
<!-- MOVES BASED ON DESKTOP OR MOBILE -->
<div class="floating-slot">
<div
v-if="$slots.floatingslot"
class="floating-slot"
>
<slot name="floatingslot" />
</div>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ onMounted(() => {
class="event-dots"
>
<template
v-for=" index in dateFrequency[date.toLocaleDateString()]"
v-for="index in dateFrequency[date.toLocaleDateString()]"
:key="index"
>
<!-- limit display to 3 events dots -->
Expand Down Expand Up @@ -403,7 +403,7 @@ onMounted(() => {
class="event-dots"
>
<template
v-for=" index in dateFrequency[date.toLocaleDateString()]"
v-for="index in dateFrequency[date.toLocaleDateString()]"
:key="index"
>
<!-- limit display to 3 events dots -->
Expand Down Expand Up @@ -482,9 +482,12 @@ onMounted(() => {
font-size: 18px;
color: $medium-grey;
border-radius: 8px;
&:hover, &:focus {

&:hover,
&:focus {
border-color: #ddd;
}

&:hover {
background-color: #f1f1f1;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,18 +89,33 @@ onMounted(() => {
</template>
<template #dropdownItems="{ removeOverlay }">
<div class="dropdown-filter">
<div v-for="group in filterGroups" :key="group.name" class="filter-group">
<div
v-for="group in filterGroups"
:key="group.name"
class="filter-group"
>
<h3>{{ group.name }}</h3>
<div class="pills">
<!-- <label> must wrap <input> for accessbility fuctionality -->
<label v-for="option in group.options" :key="option" class="pill-label">
<label
v-for="option in group.options"
:key="option"
class="pill-label"
>
<!-- Hidden checkbox for managing selection & screen-reader user interaction -->
<input
:id="option" v-model="selectedFilters[group.searchField]" type="checkbox" class="pill-checkbox"
:name="option" :value="option"
:id="option"
v-model="selectedFilters[group.searchField]"
type="checkbox"
class="pill-checkbox"
:name="option"
:value="option"
>
<!-- BlockTag component for display -->
<BlockTag :label="option" :is-secondary="true">
<BlockTag
:label="option"
:is-secondary="true"
>
<!-- 'x' SVG only shows when selected -->
<template v-if="isSelected(group.searchField, option)">
<SvgGlyphX class="close-icon" />
Expand All @@ -111,11 +126,15 @@ onMounted(() => {
</div>
<div class="action-row">
<ButtonLink
class="action-row-button select-button" label="Done" icon-name="none"
class="action-row-button select-button"
label="Done"
icon-name="none"
@click="onDoneClick(); removeOverlay();"
/>
<ButtonLink
class="action-row-button clear-button" label="Clear" icon-name="icon-close"
class="action-row-button clear-button"
label="Clear"
icon-name="icon-close"
@click="clearFilters"
/>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ function handleSliderInput(event: Event) {
padding-top: 15px;
width: 100%;
text-align: center;
color: #737373;
color: $medium-grey;
}

.slider {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,10 @@ function createBreadcrumbLinks(arr: string[]) {
const linkIndex = route.path.indexOf(item)
const linkTo = route.path.substring(0, linkLength + linkIndex)

// Replace hyphens
// Replace hyphens and truncate long text if necessary
const regex = /-/gi
let linkTitle = item.replace(regex, ' ')
linkTitle = truncateTitle(linkTitle)

// Determine if breadcrumb title should be overridden by data in `overrideTitleGroup` prop
if (overrideTitleGroup.length > 0) {
Expand Down Expand Up @@ -201,6 +202,17 @@ function createBreadcrumbLinks(arr: string[]) {
}
}

// Handle title truncation over 40 (mobile), 60 (desktop) characters
function truncateTitle(str: string): string {
const strCount = str.length
if (strCount > 40 && isMobile.value)
return str.substring(0, 30).padEnd(33, '.')
else if (strCount > 60)
return str.substring(0, 47).padEnd(50, '.')
else
return str
}

// Event handler for parent breadcrumbs; if title prop is passed at page level as the final breadcrumb title, prevent it from from overriding a preceding parent title.
function handleSetRouteTitle() {
setRouteTitle.value = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,10 @@ onMounted(() => {
class="slot-container"
:class="[{ 'is-opened': slotIsOpened, 'is-opened-mobile': mobileMenuIsOpened }]"
>
<slot name="additional-menu" :close-slot="closeSlot" />
<slot
name="additional-menu"
:close-slot="closeSlot"
/>
</div>
</div>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,11 @@ const classes = computed(() => {
return ['page-anchor', theme?.value || '']
})

const isDropdownOpen = ref(theme?.value === 'ftva')

const windowWidth = ref(window.innerWidth)

// If the screen is Desktop and FTVA have pageAnchor default to open
const isDropdownOpen = ref(theme?.value === 'ftva' && windowWidth.value > 1024)

// Computed
const sectionName = computed(() => {
return color || getSectionName(route?.path)
Expand Down
Loading
Loading