Create a single-screen React TypeScript application that replicates the core functionality of Mixpanel Boards. The application should feature a drag-and-drop dashboard with resizable widgets. Use Tailwind CSS for styling. The dashboard should have the following specifications: Layout: Implement a 12-column grid system for widget placement. Ensure all rows are always filled up (no empty spaces). Use a flex-based layout to achieve dynamic resizing. Widgets: Create draggable and resizable widget components. Widgets should contain placeholder text (e.g., "Widget 1", "Widget 2", etc.). Implement a minimum width of 3 columns for each widget. Allow horizontal resizing only (no vertical resizing of individual widgets). Add a 20px high resize handle at the bottom of each row for vertical resizing of the entire row. Drag and Drop Functionality: Implement drag and drop using react-grid-layout or a similar library. Allow widgets to be dragged between rows and within rows. When a widget | A shadcn/ui and v0 generation - v0