Skip to content

Commit c43514b

Browse files
committed
Merge branch 'main' into feat/changelog-1
2 parents 47431f5 + 55ff287 commit c43514b

File tree

104 files changed

+6016
-1139
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+6016
-1139
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ jobs:
154154
run: pnpm build:test
155155
env:
156156
VALIDATE_HTML: true
157+
NODE_OPTIONS: --max-old-space-size=6144
157158

158159
- name: 🖥️ Test project (browser)
159160
run: pnpm test:browser:prebuilt
@@ -182,6 +183,8 @@ jobs:
182183

183184
- name: 🏗️ Build project
184185
run: pnpm build:test
186+
env:
187+
NODE_OPTIONS: --max-old-space-size=6144
185188

186189
- name: ♿ Accessibility audit (Lighthouse - ${{ matrix.mode }} mode)
187190
run: pnpm test:a11y:prebuilt

CONTRIBUTING.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,11 @@ shared/ # Shared between app and server
179179
└── types/ # TypeScript type definitions
180180
181181
cli/ # Local connector CLI (separate workspace)
182+
182183
test/ # Vitest tests
183184
├── unit/ # Unit tests (*.spec.ts)
184-
── nuxt/ # Nuxt component tests
185-
tests/ # Playwright E2E tests
185+
── nuxt/ # Nuxt component tests
186+
└── e2e/ # Playwright E2E tests
186187
```
187188

188189
> [!TIP]

app/app.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,10 @@ if (import.meta.client) {
118118
useEventListener(document, 'click', handleModalLightDismiss)
119119
}
120120
}
121+
122+
// title and description will be inferred
123+
// this will be overridden by upstream pages that use different templates
124+
defineOgImage('Page.takumi')
121125
</script>
122126

123127
<template>

app/components/CollapsibleSection.vue

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { LinkBase } from '#components'
44
55
interface Props {
66
title: string
7+
subtitle?: string
78
isLoading?: boolean
89
headingLevel?: `h${number}`
910
id: string
@@ -81,7 +82,8 @@ useHead({
8182
<div class="flex items-center justify-between mb-3 px-1">
8283
<component
8384
:is="headingLevel"
84-
class="group text-xs text-fg-subtle uppercase tracking-wider flex items-center gap-2"
85+
class="group text-xs text-fg-subtle uppercase tracking-wider flex gap-2"
86+
:class="subtitle ? 'items-start' : 'items-center'"
8587
>
8688
<button
8789
:id="buttonId"
@@ -101,9 +103,14 @@ useHead({
101103
/>
102104
</button>
103105

104-
<LinkBase :to="`#${id}`">
105-
{{ title }}
106-
</LinkBase>
106+
<span>
107+
<LinkBase :to="`#${id}`">
108+
{{ title }}
109+
</LinkBase>
110+
<span v-if="subtitle" class="block text-2xs normal-case tracking-normal">{{
111+
subtitle
112+
}}</span>
113+
</span>
107114
</component>
108115

109116
<!-- Actions slot for buttons or other elements -->

app/components/Modal.client.vue

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<script setup lang="ts">
22
const props = defineProps<{
33
modalTitle: string
4+
modalSubtitle?: string
45
}>()
56
67
const dialogRef = useTemplateRef('dialogRef')
@@ -14,6 +15,12 @@ const modalTitleId = computed(() => {
1415
return id ? `${id}-title` : undefined
1516
})
1617
18+
const modalSubtitleId = computed(() => {
19+
if (!props.modalSubtitle) return undefined
20+
const id = getCurrentInstance()?.attrs.id
21+
return id ? `${id}-subtitle` : undefined
22+
})
23+
1724
function handleModalClose() {
1825
dialogRef.value?.close()
1926
}
@@ -45,14 +52,20 @@ defineExpose({
4552
closedby="any"
4653
class="w-[calc(100%-2rem)] bg-bg border border-border rounded-lg shadow-xl max-h-[90vh] overflow-y-auto overscroll-contain m-0 m-auto p-6 text-fg focus-visible:outline focus-visible:outline-accent/70"
4754
:aria-labelledby="modalTitleId"
55+
:aria-describedby="modalSubtitleId"
4856
v-bind="$attrs"
4957
@transitionend="onDialogTransitionEnd"
5058
>
5159
<!-- Modal top header section -->
5260
<div class="flex items-center justify-between mb-6">
53-
<h2 :id="modalTitleId" class="font-mono text-lg font-medium">
54-
{{ modalTitle }}
55-
</h2>
61+
<div>
62+
<h2 :id="modalTitleId" class="font-mono text-lg font-medium">
63+
{{ modalTitle }}
64+
</h2>
65+
<p v-if="modalSubtitle" :id="modalSubtitleId" class="text-xs text-fg-subtle">
66+
{{ modalSubtitle }}
67+
</p>
68+
</div>
5669
<ButtonBase
5770
type="button"
5871
:aria-label="$t('common.close')"

app/components/OgImage/Default.vue

Lines changed: 0 additions & 84 deletions
This file was deleted.

app/components/OgImage/Package.d.vue.ts

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)