Update libraries to resolve critical security findings

This commit is contained in:
grokdesigns 2025-04-08 12:51:06 -07:00
parent 787a172a7c
commit 7fd1652a71
5 changed files with 1061 additions and 1513 deletions

View file

@ -4,38 +4,39 @@ import { cn } from "@app/lib/cn";
import { RadioGroup, RadioGroupItem } from "./ui/radio-group";
import { useState } from "react";
interface StrategyOption {
id: string;
interface StrategyOption<TValue extends string> {
id: TValue;
title: string;
description: string;
disabled?: boolean; // New optional property
disabled?: boolean;
}
interface StrategySelectProps {
options: StrategyOption[];
defaultValue?: string;
onChange?: (value: string) => void;
interface StrategySelectProps<TValue extends string> {
options: ReadonlyArray<StrategyOption<TValue>>;
defaultValue?: TValue;
onChange?: (value: TValue) => void;
cols?: number;
}
export function StrategySelect({
export function StrategySelect<TValue extends string>({
options,
defaultValue,
onChange,
cols
}: StrategySelectProps) {
const [selected, setSelected] = useState(defaultValue);
}: StrategySelectProps<TValue>) {
const [selected, setSelected] = useState<TValue | undefined>(defaultValue);
return (
<RadioGroup
defaultValue={defaultValue}
onValueChange={(value) => {
setSelected(value);
onChange?.(value);
onValueChange={(value: string) => {
const typedValue = value as TValue;
setSelected(typedValue);
onChange?.(typedValue);
}}
className={`grid md:grid-cols-${cols ? cols : 1} gap-4`}
>
{options.map((option) => (
{options.map((option: StrategyOption<TValue>) => (
<label
key={option.id}
htmlFor={option.id}