From d30e9017cd33ef4b76d6adc4d3610d77f1ec5eb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Agust=C3=ADn=20Busso?= <90727999+agustinbusso@users.noreply.github.com> Date: Mon, 6 Jul 2026 17:49:38 -0300 Subject: [PATCH 1/2] New screen builder --- .env.example | 17 + index.html | 5 +- package-lock.json | 370 ++++++- package.json | 6 +- scripts/vibe-cursor-agent.mjs | 100 ++ src/App.vue | 151 ++- src/components/index.js | 11 +- src/components/vue-form-builder.vue | 25 + src/vibe-project/components/ExampleHeader.vue | 43 + src/vibe-project/components/VibeAlert.vue | 91 ++ src/vibe-project/components/VibeBadge.vue | 57 + src/vibe-project/components/VibeButton.vue | 120 +++ src/vibe-project/components/VibeCard.vue | 103 ++ src/vibe-project/components/VibeCartItem.vue | 186 ++++ .../components/VibeFeatureBlock.vue | 131 +++ .../components/VibeFlightCard.vue | 264 +++++ .../components/VibeFlightSearchForm.vue | 263 +++++ .../components/VibeFlightSummary.vue | 264 +++++ src/vibe-project/components/VibeInput.vue | 82 ++ src/vibe-project/components/VibePosCart.vue | 205 ++++ .../components/VibePricingCard.vue | 136 +++ .../components/VibeProductCard.vue | 134 +++ .../components/VibeProfileCard.vue | 133 +++ src/vibe-project/components/VibeStatCard.vue | 85 ++ src/vibe-project/components/VibeTimeline.vue | 104 ++ src/vibe-project/components/index.js | 17 + src/vibe-project/index.js | 1 + src/vibe-project/previewLoader.js | 39 + .../screens/FlightBookingScreen.vue | 383 +++++++ src/vibe-project/screens/MainScreen.vue | 39 + .../screens/PosProductSelectionScreen.vue | 262 +++++ .../screens/UserRegistrationScreen.vue | 301 ++++++ .../tests/flight-booking-scenarios.yaml | 256 +++++ src/vibe-project/tests/pos-scenarios.yaml | 212 ++++ src/vibe-project/tests/scenarios.yaml | 109 ++ src/vibe/VibeAppShell.vue | 22 + src/vibe/VibeScreenBuilder.vue | 983 ++++++++++++++++++ src/vibe/components/EditorWorkspace.vue | 228 ++++ src/vibe/components/FileTreeNode.vue | 401 +++++++ src/vibe/components/FileTreePanel.vue | 524 ++++++++++ src/vibe/components/FileTypeIcon.vue | 132 +++ src/vibe/components/ImportExportModal.vue | 191 ++++ src/vibe/components/PanelResizeHandle.vue | 95 ++ src/vibe/components/PreviewPanel.vue | 280 +++++ src/vibe/components/ScreenCanvasNode.vue | 364 +++++++ src/vibe/components/ScreenPropertiesPanel.vue | 384 +++++++ src/vibe/components/ScreenSheetEditor.vue | 140 +++ src/vibe/components/TestScenariosPanel.vue | 298 ++++++ src/vibe/components/VibeAiPanel.vue | 478 +++++++++ src/vibe/components/VibeCodeEditor.vue | 118 +++ src/vibe/components/VibeProjectScreen.vue | 140 +++ src/vibe/components/VibeToolbar.vue | 165 +++ src/vibe/services/panelSizes.js | 57 + src/vibe/services/vibeAiPreferences.js | 27 + src/vibe/services/vibeAiPrompt.js | 154 +++ src/vibe/services/vibeAiService.js | 28 + src/vibe/services/vibeCompiler.js | 46 + src/vibe/services/vibeComponentProps.js | 204 ++++ src/vibe/services/vibeFileTreeDrag.js | 27 + src/vibe/services/vibeImportExport.js | 49 + src/vibe/services/vibeImportPaths.js | 53 + src/vibe/services/vibeProjectApi.js | 218 ++++ src/vibe/services/vibeProjectCreate.js | 194 ++++ src/vibe/services/vibeProjectFileOps.js | 150 +++ src/vibe/services/vibeProjectScreenLoader.js | 189 ++++ src/vibe/services/vibeScenarioPreferences.js | 43 + src/vibe/services/vibeScreenCodegen.js | 198 ++++ src/vibe/services/vibeScreenModel.js | 224 ++++ src/vibe/services/vibeScreenParser.js | 117 +++ src/vibe/services/vibeSfcPatch.js | 240 +++++ src/vibe/services/vibeSfcRuntime.js | 198 ++++ src/vibe/services/vibeSheetDrag.js | 53 + src/vibe/services/vibeTestRunner.js | 112 ++ src/vibe/services/vibeUseScreenControl.js | 60 ++ src/vibe/styles/vibe-layout.scss | 240 +++++ src/vibe/styles/vibe-tokens.scss | 46 + src/vite/vibeAiHandler.js | 128 +++ src/vite/vibeProjectPlugin.js | 295 ++++++ vite.config.js | 11 +- 79 files changed, 12976 insertions(+), 33 deletions(-) create mode 100644 .env.example create mode 100644 scripts/vibe-cursor-agent.mjs create mode 100644 src/vibe-project/components/ExampleHeader.vue create mode 100644 src/vibe-project/components/VibeAlert.vue create mode 100644 src/vibe-project/components/VibeBadge.vue create mode 100644 src/vibe-project/components/VibeButton.vue create mode 100644 src/vibe-project/components/VibeCard.vue create mode 100644 src/vibe-project/components/VibeCartItem.vue create mode 100644 src/vibe-project/components/VibeFeatureBlock.vue create mode 100644 src/vibe-project/components/VibeFlightCard.vue create mode 100644 src/vibe-project/components/VibeFlightSearchForm.vue create mode 100644 src/vibe-project/components/VibeFlightSummary.vue create mode 100644 src/vibe-project/components/VibeInput.vue create mode 100644 src/vibe-project/components/VibePosCart.vue create mode 100644 src/vibe-project/components/VibePricingCard.vue create mode 100644 src/vibe-project/components/VibeProductCard.vue create mode 100644 src/vibe-project/components/VibeProfileCard.vue create mode 100644 src/vibe-project/components/VibeStatCard.vue create mode 100644 src/vibe-project/components/VibeTimeline.vue create mode 100644 src/vibe-project/components/index.js create mode 100644 src/vibe-project/index.js create mode 100644 src/vibe-project/previewLoader.js create mode 100644 src/vibe-project/screens/FlightBookingScreen.vue create mode 100644 src/vibe-project/screens/MainScreen.vue create mode 100644 src/vibe-project/screens/PosProductSelectionScreen.vue create mode 100644 src/vibe-project/screens/UserRegistrationScreen.vue create mode 100644 src/vibe-project/tests/flight-booking-scenarios.yaml create mode 100644 src/vibe-project/tests/pos-scenarios.yaml create mode 100644 src/vibe-project/tests/scenarios.yaml create mode 100644 src/vibe/VibeAppShell.vue create mode 100644 src/vibe/VibeScreenBuilder.vue create mode 100644 src/vibe/components/EditorWorkspace.vue create mode 100644 src/vibe/components/FileTreeNode.vue create mode 100644 src/vibe/components/FileTreePanel.vue create mode 100644 src/vibe/components/FileTypeIcon.vue create mode 100644 src/vibe/components/ImportExportModal.vue create mode 100644 src/vibe/components/PanelResizeHandle.vue create mode 100644 src/vibe/components/PreviewPanel.vue create mode 100644 src/vibe/components/ScreenCanvasNode.vue create mode 100644 src/vibe/components/ScreenPropertiesPanel.vue create mode 100644 src/vibe/components/ScreenSheetEditor.vue create mode 100644 src/vibe/components/TestScenariosPanel.vue create mode 100644 src/vibe/components/VibeAiPanel.vue create mode 100644 src/vibe/components/VibeCodeEditor.vue create mode 100644 src/vibe/components/VibeProjectScreen.vue create mode 100644 src/vibe/components/VibeToolbar.vue create mode 100644 src/vibe/services/panelSizes.js create mode 100644 src/vibe/services/vibeAiPreferences.js create mode 100644 src/vibe/services/vibeAiPrompt.js create mode 100644 src/vibe/services/vibeAiService.js create mode 100644 src/vibe/services/vibeCompiler.js create mode 100644 src/vibe/services/vibeComponentProps.js create mode 100644 src/vibe/services/vibeFileTreeDrag.js create mode 100644 src/vibe/services/vibeImportExport.js create mode 100644 src/vibe/services/vibeImportPaths.js create mode 100644 src/vibe/services/vibeProjectApi.js create mode 100644 src/vibe/services/vibeProjectCreate.js create mode 100644 src/vibe/services/vibeProjectFileOps.js create mode 100644 src/vibe/services/vibeProjectScreenLoader.js create mode 100644 src/vibe/services/vibeScenarioPreferences.js create mode 100644 src/vibe/services/vibeScreenCodegen.js create mode 100644 src/vibe/services/vibeScreenModel.js create mode 100644 src/vibe/services/vibeScreenParser.js create mode 100644 src/vibe/services/vibeSfcPatch.js create mode 100644 src/vibe/services/vibeSfcRuntime.js create mode 100644 src/vibe/services/vibeSheetDrag.js create mode 100644 src/vibe/services/vibeTestRunner.js create mode 100644 src/vibe/services/vibeUseScreenControl.js create mode 100644 src/vibe/styles/vibe-layout.scss create mode 100644 src/vibe/styles/vibe-tokens.scss create mode 100644 src/vite/vibeAiHandler.js create mode 100644 src/vite/vibeProjectPlugin.js diff --git a/.env.example b/.env.example new file mode 100644 index 000000000..b543ab688 --- /dev/null +++ b/.env.example @@ -0,0 +1,17 @@ +# Vibe IDE — AI Assistant +# Copy to .env and fill in one of the options below. + +# ── Option A: OpenAI (or compatible API) ───────────────────────────── +VIBE_AI_PROVIDER=openai +VIBE_AI_API_KEY=sk-your-key-here +# VIBE_AI_MODEL=gpt-4o-mini +# VIBE_AI_BASE_URL=https://api.openai.com/v1 + +# ── Option B: Cursor sidecar (local agent) ─────────────────────────── +# 1. npm install @cursor/sdk --save-dev +# 2. export CURSOR_API_KEY=your-cursor-api-key +# 3. npm run vibe:cursor-agent (keep running in a terminal) +# 4. Uncomment: +# VIBE_AI_PROVIDER=cursor +# VIBE_CURSOR_AGENT_URL=http://127.0.0.1:4877 +# VIBE_AI_MODEL=composer-2.5 diff --git a/index.html b/index.html index d2c73152c..a9a1d28e6 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,10 @@ - vue-form-builder + + + + Vibe Screen Builder