From a200ca21924c4ab39c4c3ab68072e2d51ec15196 Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Tue, 9 Jun 2026 13:48:40 +0530 Subject: [PATCH 1/4] feat: Studio Client Script for reusable code --- frontend/components.d.ts | 2 + frontend/src/components/Code.vue | 13 +- frontend/src/components/CodePanel.vue | 174 ++++++++------- frontend/src/components/FormInputLabel.vue | 5 + frontend/src/components/ScriptPanel.vue | 206 ++++++++++++++++++ frontend/src/data/studioClientScripts.ts | 18 ++ frontend/src/pages/AppContainer.vue | 1 + frontend/src/stores/codeStore.ts | 57 ++++- frontend/src/stores/studioStore.ts | 1 + .../src/types/Studio/StudioClientScript.ts | 11 + frontend/src/utils/parseCode.ts | 20 ++ frontend/src/utils/useStudioCompletions.ts | 18 ++ .../studio_client_script.json | 12 +- .../studio_client_script.py | 7 +- 14 files changed, 454 insertions(+), 91 deletions(-) create mode 100644 frontend/src/components/FormInputLabel.vue create mode 100644 frontend/src/components/ScriptPanel.vue create mode 100644 frontend/src/data/studioClientScripts.ts create mode 100644 frontend/src/types/Studio/StudioClientScript.ts diff --git a/frontend/components.d.ts b/frontend/components.d.ts index 3c360f07..ea3602d9 100644 --- a/frontend/components.d.ts +++ b/frontend/components.d.ts @@ -55,6 +55,7 @@ declare module 'vue' { FitScreenIcon: typeof import('./src/components/Icons/FitScreenIcon.vue')['default'] FormDescription: typeof import('./src/components/FormDescription.vue')['default'] FormDialog: typeof import('./src/components/FormDialog.vue')['default'] + FormInputLabel: typeof import('./src/components/FormInputLabel.vue')['default'] GlobeOff: typeof import('./src/components/Icons/GlobeOff.vue')['default'] Grid: typeof import('./src/components/Grid.vue')['default'] HTML: typeof import('./src/components/AppLayout/HTML.vue')['default'] @@ -84,6 +85,7 @@ declare module 'vue' { ResourceDialog: typeof import('./src/components/ResourceDialog.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] + ScriptPanel: typeof import('./src/components/ScriptPanel.vue')['default'] ScriptSection: typeof import('./src/components/ScriptSection.vue')['default'] SearchBlock: typeof import('./src/components/SearchBlock.vue')['default'] SectionContainer: typeof import('./src/components/SectionContainer.vue')['default'] diff --git a/frontend/src/components/Code.vue b/frontend/src/components/Code.vue index 4d7eabaf..dc38e27a 100644 --- a/frontend/src/components/Code.vue +++ b/frontend/src/components/Code.vue @@ -1,8 +1,11 @@