Skip to content

Commit 3e72bf8

Browse files
committed
fix(ContentSearchButton/DashboardSearchButton): hide label and trailing with css when collapsed
1 parent f004031 commit 3e72bf8

File tree

7 files changed

+38
-26
lines changed

7 files changed

+38
-26
lines changed

src/runtime/components/DashboardSearchButton.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,9 @@ const { t } = useLocale()
8484
const appConfig = useAppConfig() as DashboardSearchButton['AppConfig']
8585
const { toggleSearch } = useDashboard({ toggleSearch: () => {} })
8686
87-
// eslint-disable-next-line vue/no-dupe-keys
88-
const ui = computed(() => tv({ extend: tv(theme), ...(appConfig.ui?.dashboardSearchButton || {}) })())
87+
const ui = computed(() => tv({ extend: tv(theme), ...(appConfig.ui?.dashboardSearchButton || {}) })({
88+
collapsed: props.collapsed
89+
}))
8990
</script>
9091

9192
<template>
@@ -98,7 +99,6 @@ const ui = computed(() => tv({ extend: tv(theme), ...(appConfig.ui?.dashboardSea
9899
...buttonProps,
99100
...(collapsed ? {
100101
'square': true,
101-
'label': undefined,
102102
'aria-label': label || t('dashboardSearchButton.label')
103103
} : {}),
104104
...$attrs
@@ -111,7 +111,7 @@ const ui = computed(() => tv({ extend: tv(theme), ...(appConfig.ui?.dashboardSea
111111
<slot :name="name" v-bind="slotData" />
112112
</template>
113113

114-
<template v-if="!collapsed" #trailing="{ ui: uiProxy }">
114+
<template #trailing="{ ui: uiProxy }">
115115
<div data-slot="trailing" :class="ui.trailing({ class: props.ui?.trailing })">
116116
<slot name="trailing" :ui="uiProxy">
117117
<template v-if="kbds?.length">

src/runtime/components/content/ContentSearchButton.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,9 @@ const { t } = useLocale()
8484
const { open } = useContentSearch()
8585
const appConfig = useAppConfig() as ContentSearchButton['AppConfig']
8686
87-
// eslint-disable-next-line vue/no-dupe-keys
88-
const ui = computed(() => tv({ extend: tv(theme), ...(appConfig.ui?.contentSearchButton || {}) })())
87+
const ui = computed(() => tv({ extend: tv(theme), ...(appConfig.ui?.contentSearchButton || {}) })({
88+
collapsed: props.collapsed
89+
}))
8990
</script>
9091

9192
<template>
@@ -98,7 +99,6 @@ const ui = computed(() => tv({ extend: tv(theme), ...(appConfig.ui?.contentSearc
9899
...buttonProps,
99100
...(collapsed ? {
100101
'square': true,
101-
'label': undefined,
102102
'aria-label': label || t('contentSearchButton.label')
103103
} : {}),
104104
...$attrs
@@ -111,7 +111,7 @@ const ui = computed(() => tv({ extend: tv(theme), ...(appConfig.ui?.contentSearc
111111
<slot :name="name" v-bind="slotData" />
112112
</template>
113113

114-
<template v-if="!collapsed" #trailing="{ ui: uiProxy }">
114+
<template #trailing="{ ui: uiProxy }">
115115
<div data-slot="trailing" :class="ui.trailing({ class: props.ui?.trailing })">
116116
<slot name="trailing" :ui="uiProxy">
117117
<template v-if="kbds?.length">
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
export default {
22
slots: {
33
base: '',
4+
label: '',
45
trailing: 'hidden lg:flex items-center gap-0.5 ms-auto'
6+
},
7+
variants: {
8+
collapsed: {
9+
true: {
10+
label: 'hidden',
11+
trailing: 'lg:hidden'
12+
}
13+
}
514
}
615
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
export default {
22
slots: {
33
base: '',
4+
label: '',
45
trailing: 'hidden lg:flex items-center gap-0.5 ms-auto'
6+
},
7+
variants: {
8+
collapsed: {
9+
true: {
10+
label: 'hidden',
11+
trailing: 'lg:hidden'
12+
}
13+
}
514
}
615
}

test/components/__snapshots__/DashboardSearchButton-vue.spec.ts.snap

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@ exports[`DashboardSearchButton > renders with class correctly 1`] = `
77
`;
88

99
exports[`DashboardSearchButton > renders with collapsed correctly 1`] = `
10-
"<button type="button" aria-label="Search…" data-slot="base" class="rounded-md font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75 transition-colors text-sm gap-1.5 text-default hover:bg-elevated active:bg-elevated focus:outline-none focus-visible:bg-elevated hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent p-1.5"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" viewBox="0 0 16 16" data-slot="leadingIcon" class="shrink-0 size-5"></svg>
11-
<!--v-if-->
12-
<!--v-if-->
10+
"<button type="button" aria-label="Search…" data-slot="base" class="rounded-md font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75 transition-colors text-sm gap-1.5 text-default hover:bg-elevated active:bg-elevated focus:outline-none focus-visible:bg-elevated hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent p-1.5"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" viewBox="0 0 16 16" data-slot="leadingIcon" class="shrink-0 size-5"></svg><span data-slot="label" class="truncate hidden">Search…</span>
11+
<div data-slot="trailing" class="hidden items-center gap-0.5 ms-auto lg:hidden"><kbd class="inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase h-5 min-w-[20px] text-[11px] ring ring-inset ring-accented text-default bg-elevated">Ctrl</kbd><kbd class="inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase h-5 min-w-[20px] text-[11px] ring ring-inset ring-accented text-default bg-elevated">k</kbd></div>
1312
</button>"
1413
`;
1514

test/components/__snapshots__/DashboardSearchButton.spec.ts.snap

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@ exports[`DashboardSearchButton > renders with class correctly 1`] = `
77
`;
88

99
exports[`DashboardSearchButton > renders with collapsed correctly 1`] = `
10-
"<button type="button" aria-label="Search…" data-slot="base" class="rounded-md font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75 transition-colors text-sm gap-1.5 text-default hover:bg-elevated active:bg-elevated focus:outline-none focus-visible:bg-elevated hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent p-1.5"><span class="iconify i-lucide:search shrink-0 size-5" aria-hidden="true" data-slot="leadingIcon"></span>
11-
<!--v-if-->
12-
<!--v-if-->
10+
"<button type="button" aria-label="Search…" data-slot="base" class="rounded-md font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75 transition-colors text-sm gap-1.5 text-default hover:bg-elevated active:bg-elevated focus:outline-none focus-visible:bg-elevated hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent p-1.5"><span class="iconify i-lucide:search shrink-0 size-5" aria-hidden="true" data-slot="leadingIcon"></span><span data-slot="label" class="truncate hidden">Search…</span>
11+
<div data-slot="trailing" class="hidden items-center gap-0.5 ms-auto lg:hidden"><kbd class="inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase h-5 min-w-[20px] text-[11px] ring ring-inset ring-accented text-default bg-elevated">Ctrl</kbd><kbd class="inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase h-5 min-w-[20px] text-[11px] ring ring-inset ring-accented text-default bg-elevated">k</kbd></div>
1312
</button>"
1413
`;
1514

test/components/content/__snapshots__/ContentSearchButton.spec.ts.snap

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,26 @@
11
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
22

33
exports[`DashboardSearchButton > renders with class correctly 1`] = `
4-
"<button type="button" aria-label="Search…" data-slot="base" class="rounded-md font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75 transition-colors text-sm gap-1.5 text-default hover:bg-elevated active:bg-elevated focus:outline-none focus-visible:bg-elevated hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent p-1.5 w-full"><span class="iconify i-lucide:search shrink-0 size-5" aria-hidden="true" data-slot="leadingIcon"></span>
5-
<!--v-if-->
6-
<!--v-if-->
4+
"<button type="button" aria-label="Search…" data-slot="base" class="rounded-md font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75 transition-colors text-sm gap-1.5 text-default hover:bg-elevated active:bg-elevated focus:outline-none focus-visible:bg-elevated hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent p-1.5 w-full"><span class="iconify i-lucide:search shrink-0 size-5" aria-hidden="true" data-slot="leadingIcon"></span><span data-slot="label" class="truncate hidden">Search…</span>
5+
<div data-slot="trailing" class="hidden items-center gap-0.5 ms-auto lg:hidden"><kbd class="inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase h-5 min-w-[20px] text-[11px] ring ring-inset ring-accented text-default bg-elevated">Ctrl</kbd><kbd class="inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase h-5 min-w-[20px] text-[11px] ring ring-inset ring-accented text-default bg-elevated">k</kbd></div>
76
</button>"
87
`;
98

109
exports[`DashboardSearchButton > renders with icon correctly 1`] = `
11-
"<button type="button" aria-label="Search…" data-slot="base" class="rounded-md font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75 transition-colors text-sm gap-1.5 text-default hover:bg-elevated active:bg-elevated focus:outline-none focus-visible:bg-elevated hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent p-1.5"><span class="iconify i-lucide:house shrink-0 size-5" aria-hidden="true" data-slot="leadingIcon"></span>
12-
<!--v-if-->
13-
<!--v-if-->
10+
"<button type="button" aria-label="Search…" data-slot="base" class="rounded-md font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75 transition-colors text-sm gap-1.5 text-default hover:bg-elevated active:bg-elevated focus:outline-none focus-visible:bg-elevated hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent p-1.5"><span class="iconify i-lucide:house shrink-0 size-5" aria-hidden="true" data-slot="leadingIcon"></span><span data-slot="label" class="truncate hidden">Search…</span>
11+
<div data-slot="trailing" class="hidden items-center gap-0.5 ms-auto lg:hidden"><kbd class="inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase h-5 min-w-[20px] text-[11px] ring ring-inset ring-accented text-default bg-elevated">Ctrl</kbd><kbd class="inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase h-5 min-w-[20px] text-[11px] ring ring-inset ring-accented text-default bg-elevated">k</kbd></div>
1412
</button>"
1513
`;
1614

1715
exports[`DashboardSearchButton > renders with kbds correctly 1`] = `
18-
"<button type="button" aria-label="Search…" data-slot="base" class="rounded-md font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75 transition-colors text-sm gap-1.5 text-default hover:bg-elevated active:bg-elevated focus:outline-none focus-visible:bg-elevated hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent p-1.5"><span class="iconify i-lucide:search shrink-0 size-5" aria-hidden="true" data-slot="leadingIcon"></span>
19-
<!--v-if-->
20-
<!--v-if-->
16+
"<button type="button" aria-label="Search…" data-slot="base" class="rounded-md font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75 transition-colors text-sm gap-1.5 text-default hover:bg-elevated active:bg-elevated focus:outline-none focus-visible:bg-elevated hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent p-1.5"><span class="iconify i-lucide:search shrink-0 size-5" aria-hidden="true" data-slot="leadingIcon"></span><span data-slot="label" class="truncate hidden">Search…</span>
17+
<div data-slot="trailing" class="hidden items-center gap-0.5 ms-auto lg:hidden"><kbd class="inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase h-5 min-w-[20px] text-[11px] ring ring-inset ring-accented text-default bg-elevated">Alt</kbd><kbd class="inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase h-5 min-w-[20px] text-[11px] ring ring-inset ring-accented text-default bg-elevated">o</kbd></div>
2118
</button>"
2219
`;
2320

2421
exports[`DashboardSearchButton > renders with label correctly 1`] = `
25-
"<button type="button" aria-label="Open" data-slot="base" class="rounded-md font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75 transition-colors text-sm gap-1.5 text-default hover:bg-elevated active:bg-elevated focus:outline-none focus-visible:bg-elevated hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent p-1.5"><span class="iconify i-lucide:search shrink-0 size-5" aria-hidden="true" data-slot="leadingIcon"></span>
26-
<!--v-if-->
27-
<!--v-if-->
22+
"<button type="button" aria-label="Open" data-slot="base" class="rounded-md font-medium inline-flex items-center disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:opacity-75 aria-disabled:opacity-75 transition-colors text-sm gap-1.5 text-default hover:bg-elevated active:bg-elevated focus:outline-none focus-visible:bg-elevated hover:disabled:bg-transparent dark:hover:disabled:bg-transparent hover:aria-disabled:bg-transparent dark:hover:aria-disabled:bg-transparent p-1.5"><span class="iconify i-lucide:search shrink-0 size-5" aria-hidden="true" data-slot="leadingIcon"></span><span data-slot="label" class="truncate hidden">Open</span>
23+
<div data-slot="trailing" class="hidden items-center gap-0.5 ms-auto lg:hidden"><kbd class="inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase h-5 min-w-[20px] text-[11px] ring ring-inset ring-accented text-default bg-elevated">Ctrl</kbd><kbd class="inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase h-5 min-w-[20px] text-[11px] ring ring-inset ring-accented text-default bg-elevated">k</kbd></div>
2824
</button>"
2925
`;
3026

0 commit comments

Comments
 (0)