import { useState } from 'react' import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog' import { Button } from '@/components/ui/button' import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs' import { BindingEditor } from '@/components/molecules/BindingEditor' import { DataSource, UIComponent } from '@/types/json-ui' import { Link } from '@phosphor-icons/react' interface ComponentBindingDialogProps { open: boolean component: UIComponent | null dataSources: DataSource[] onOpenChange: (open: boolean) => void onSave: (component: UIComponent) => void } export function ComponentBindingDialog({ open, component, dataSources, onOpenChange, onSave, }: ComponentBindingDialogProps) { const [editingComponent, setEditingComponent] = useState(component) const handleSave = () => { if (!editingComponent) return onSave(editingComponent) onOpenChange(false) } const updateBindings = (bindings: Record) => { if (!editingComponent) return setEditingComponent({ ...editingComponent, bindings }) } if (!editingComponent) return null const availableProps = ['children', 'value', 'checked', 'className', 'disabled', 'placeholder'] return ( Component Data Bindings Connect component properties to data sources
Component: {editingComponent.type}
ID: {editingComponent.id}
Property Bindings Preview
                  {JSON.stringify(editingComponent.bindings, null, 2)}
                
) }