blob: 814e11b9d904bf8c3c3b3aa837dac7ed73944b10 [file]
<script setup lang="ts">
import { ref } from 'vue'
// Simple fixed sidebar layout without responsive design
import ChartPreviewPanel from './components/ChartPreviewPanel.vue'
import ThemePanel from './components/ThemePanel.vue'
// Get reference to chart preview panel
const chartPreviewRef = ref<InstanceType<typeof ChartPreviewPanel> | null>(null)
</script>
<template>
<div id="theme-builder">
<div class="container-fluid" id="content">
<van-row class="row-container" :gutter="0">
<van-col span="6" class="theme-config">
<ThemePanel :chart-preview-ref="chartPreviewRef" />
</van-col>
<van-col span="18" class="chart-container">
<ChartPreviewPanel ref="chartPreviewRef" />
</van-col>
</van-row>
</div>
</div>
</template>
<style scoped>
#theme-builder {
width: 100%;
height: 100vh;
}
.container-fluid {
height: 100%;
padding: 0;
width: 100%;
}
.row-container {
height: 100%;
display: flex !important;
flex-direction: row !important;
}
.theme-config {
height: 100vh;
overflow-y: auto;
background-color: #ffffff;
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
padding: 0;
box-sizing: border-box;
flex: 0 0 25%; /* Fixed 25% width */
}
.chart-container {
height: 100vh;
overflow: hidden;
background-color: #ffffff;
padding: 20px;
box-sizing: border-box;
flex: 1; /* Take remaining space */
}
.placeholder {
padding: 20px;
text-align: center;
color: #6c757d;
border: 2px dashed #dee2e6;
border-radius: 4px;
font-size: 16px;
}
</style>