import type { BaseFormBuilderProps, GenericFormElementProps, } from "@components/Form/DynamicForm.tsx"; import type { ButtonVariant } from "../UI/Button.tsx"; import { Generator } from "@components/UI/Generator.tsx"; import { Eye, EyeOff } from "lucide-react"; import type { ChangeEventHandler } from "react"; import { useState } from "react"; import { Controller, type FieldValues } from "react-hook-form"; export interface PasswordGeneratorProps extends BaseFormBuilderProps { type: "passwordGenerator"; id: string; hide?: boolean; bits?: { text: string; value: string; key: string }[]; devicePSKBitCount: number; inputChange: ChangeEventHandler; selectChange: (event: string) => void; actionButtons: { text: string; onClick: React.MouseEventHandler; variant: ButtonVariant; className?: string; }[]; } export function PasswordGenerator({ control, field, disabled, }: GenericFormElementProps>) { const [passwordShown, setPasswordShown] = useState(false); const togglePasswordVisiblity = () => { setPasswordShown(!passwordShown); }; return ( ( )} /> ); }