From d140acc608c6ae11c0a0531fe443588776ea7807 Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Sat, 10 May 2025 21:26:58 +0200 Subject: [PATCH] feat(Slider): handle `tooltip` around thumbs Resolves #1469 --- docs/content/3.components/slider.md | 15 +++++++++++++++ src/runtime/components/Slider.vue | 22 ++++++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/docs/content/3.components/slider.md b/docs/content/3.components/slider.md index b905db80..465f821b 100644 --- a/docs/content/3.components/slider.md +++ b/docs/content/3.components/slider.md @@ -136,6 +136,21 @@ props: --- :: +### Tooltip :badge{label="Soon" class="align-text-top"} + +Use the `tooltip` prop to display a [Tooltip](/components/tooltip) around the Slider thumbs with the current value. You can set it to `true` for default behavior or pass an object to customize it with any property from the [Tooltip](/components/tooltip#props) component. + +::component-code +--- +ignore: + - defaultValue + - tooltip +props: + defaultValue: 50 + tooltip: true +--- +:: + ### Disabled Use the `disabled` prop to disable the Slider. diff --git a/src/runtime/components/Slider.vue b/src/runtime/components/Slider.vue index b816923d..f9b154b2 100644 --- a/src/runtime/components/Slider.vue +++ b/src/runtime/components/Slider.vue @@ -2,6 +2,7 @@ import type { SliderRootProps } from 'reka-ui' import type { AppConfig } from '@nuxt/schema' import theme from '#build/ui/slider' +import type { TooltipProps } from '../types' import type { ComponentConfig } from '../types/utils' type Slider = ComponentConfig @@ -25,6 +26,12 @@ export interface SliderProps extends Pick(), { min: 0, @@ -80,7 +88,7 @@ const sliderValue = computed({ } }) -const thumbsCount = computed(() => sliderValue.value?.length ?? 1) +const thumbs = computed(() => sliderValue.value?.length ?? 1) const ui = computed(() => tv({ extend: tv(theme), ...(appConfig.ui?.slider || {}) })({ disabled: disabled.value, @@ -113,6 +121,16 @@ function onChange(value: any) { - +