feat(ComboControl): use IconButton component

This commit is contained in:
Ilia Mashkov
2026-01-30 00:52:42 +03:00
parent 433fd2f7e6
commit 04602f0372

View File

@@ -24,6 +24,7 @@ import {
import MinusIcon from '@lucide/svelte/icons/minus'; import MinusIcon from '@lucide/svelte/icons/minus';
import PlusIcon from '@lucide/svelte/icons/plus'; import PlusIcon from '@lucide/svelte/icons/plus';
import type { ChangeEventHandler } from 'svelte/elements'; import type { ChangeEventHandler } from 'svelte/elements';
import IconButton from '../IconButton/IconButton.svelte';
interface ComboControlProps { interface ComboControlProps {
/** /**
@@ -79,34 +80,16 @@ const handleSliderChange = (newValue: number) => {
<TooltipRoot> <TooltipRoot>
<ButtonGroupRoot class="bg-transparent border-none shadow-none"> <ButtonGroupRoot class="bg-transparent border-none shadow-none">
<TooltipTrigger class="flex items-center"> <TooltipTrigger class="flex items-center">
<Button <IconButton
variant="ghost"
class="
group relative border-none size-9
bg-white/20 hover:bg-white/60
backdrop-blur-3xl
transition-all duration-200 ease-out
will-change-transform
hover:-translate-y-0.5
active:translate-y-0 active:scale-95 active:shadow-none
cursor-pointer
disabled:opacity-50 disabled:pointer-events-none
"
size="icon"
onclick={control.decrease} onclick={control.decrease}
disabled={control.isAtMin} disabled={control.isAtMin}
aria-label={decreaseLabel} aria-label={decreaseLabel}
rotation="counterclockwise"
> >
<MinusIcon {#snippet icon({ className })}
class=" <MinusIcon class={className} />
size-4 transition-all duration-200 {/snippet}
stroke-slate-600/50 </IconButton>
group-hover:stroke-indigo-500 group-hover:scale-110 group-hover:stroke-3
group-active:scale-90 group-active:-rotate-6
group-disabled:stroke-transparent
"
/>
</Button>
<PopoverRoot> <PopoverRoot>
<PopoverTrigger> <PopoverTrigger>
{#snippet child({ props })} {#snippet child({ props })}
@@ -144,33 +127,16 @@ const handleSliderChange = (newValue: number) => {
</PopoverContent> </PopoverContent>
</PopoverRoot> </PopoverRoot>
<Button <IconButton
variant="ghost"
class="
group relative border-none size-9
bg-white/20 hover:bg-white/60
transition-all duration-200 ease-out
will-change-transform
hover:-translate-y-0.5
active:translate-y-0 active:scale-95 active:shadow-none
disabled:opacity-50 disabled:pointer-events-none
cursor-pointer
"
size="icon"
aria-label={increaseLabel} aria-label={increaseLabel}
onclick={control.increase} onclick={control.increase}
disabled={control.isAtMax} disabled={control.isAtMax}
rotation="clockwise"
> >
<PlusIcon {#snippet icon({ className })}
class=" <PlusIcon class={className} />
size-4 transition-all duration-200 {/snippet}
stroke-slate-600/50 </IconButton>
group-hover:stroke-indigo-500 group-hover:scale-110 group-hover:stroke-3
group-active:scale-90 group-active:rotate-6
group-disabled:stroke-transparent
"
/>
</Button>
</TooltipTrigger> </TooltipTrigger>
</ButtonGroupRoot> </ButtonGroupRoot>
{#if controlLabel} {#if controlLabel}