'use client'; import type { ComponentProps } from 'react'; import type { Control, UseFormRegister } from 'react-hook-form'; import { Controller } from 'react-hook-form'; import { Loader2 } from 'lucide-react'; import { PermissionTree } from '@/components/permission-tree'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@/components/ui/select'; import { Sheet, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, } from '@/components/ui/sheet'; import type { PermissionTreeItem } from '@/types'; import type { PlanFormValues } from '../hooks/usePlanForm'; interface PlanSheetProps { open: boolean; onOpenChange: (open: boolean) => void; planId?: number; register: UseFormRegister; control: Control; onSubmit: ComponentProps<'form'>['onSubmit']; permissionTree: PermissionTreeItem[]; permissionIds: number[]; onPermissionIdsChange: (ids: number[]) => void; isPermissionsLoading: boolean; isSaving: boolean; } export function PlanSheet({ open, onOpenChange, planId, register, control, onSubmit, permissionTree, permissionIds, onPermissionIdsChange, isPermissionsLoading, isSaving, }: PlanSheetProps) { return ( {planId ? 'Edit Plan' : 'Create Plan'} Configure subscription limits, billing, and permission access.