mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-14 14:12:44 +00:00
- Shared useDeepLinkHighlight hook collapses 3 near-identical settings deep-link effects (keys/mcp); config kept inline (distinct bail-clear). - command-center: table-driven SECTION_ICONS + single errorText helper. - clarify-tool: OPTION_ROW_CLASS + RadioDot extracted from option rows. - desktop-controller: merge Cmd+K / Cmd+. into one keydown handler. - statusbar-controls: hoist shared action class. - Misc: drop redundant cn()/cursor-pointer/dead fields; tidy switch.
49 lines
1.8 KiB
TypeScript
49 lines
1.8 KiB
TypeScript
import { cva, type VariantProps } from 'class-variance-authority'
|
|
import { Switch as SwitchPrimitive } from 'radix-ui'
|
|
import * as React from 'react'
|
|
|
|
import { cn } from '@/lib/utils'
|
|
|
|
const switchVariants = cva(
|
|
'peer inline-flex shrink-0 items-center rounded-full border border-[color-mix(in_srgb,var(--dt-foreground)_18%,transparent)] bg-[color-mix(in_srgb,var(--dt-background)_58%,var(--dt-input))] shadow-[inset_0_0_0_0.0625rem_color-mix(in_srgb,var(--dt-foreground)_8%,transparent)] transition-colors outline-none focus-visible:border-ring focus-visible:ring-[0.1875rem] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:border-transparent data-[state=checked]:bg-primary',
|
|
{
|
|
variants: {
|
|
size: {
|
|
default: 'h-5 w-9',
|
|
xs: 'h-4 w-7'
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
size: 'default'
|
|
}
|
|
}
|
|
)
|
|
|
|
const switchThumbVariants = cva(
|
|
'pointer-events-none block rounded-full bg-foreground shadow-[0_0.0625rem_0.1875rem_color-mix(in_srgb,var(--dt-background)_50%,transparent)] ring-0 transition-transform data-[state=unchecked]:translate-x-0 data-[state=checked]:bg-background',
|
|
{
|
|
variants: {
|
|
size: {
|
|
default: 'size-4 data-[state=checked]:translate-x-4',
|
|
xs: 'size-3 data-[state=checked]:translate-x-3.5'
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
size: 'default'
|
|
}
|
|
}
|
|
)
|
|
|
|
function Switch({
|
|
className,
|
|
size,
|
|
...props
|
|
}: React.ComponentProps<typeof SwitchPrimitive.Root> & VariantProps<typeof switchVariants>) {
|
|
return (
|
|
<SwitchPrimitive.Root className={cn(switchVariants({ size }), className)} data-slot="switch" {...props}>
|
|
<SwitchPrimitive.Thumb className={switchThumbVariants({ size })} data-slot="switch-thumb" />
|
|
</SwitchPrimitive.Root>
|
|
)
|
|
}
|
|
|
|
export { Switch }
|