hunk.code_window:         lang: props.lang,
           readonly: props.readonly,
           lineNumbers: props.lineNumbers,
           dark: isDark.value,
           style: Object.entries(getStyleObject(iframe.value)).map(([k, v]) => `${k}: ${v};`).join(''),
         })
  
hunk.labels: keep keep add keep keep keep
hunk.after_edit:         editorOptions: props.editorOptions,
  
hunk.file_path: packages/client/builtin/Monaco.vue
hunk.type: add
file: <script setup lang="ts">
  import { computed, inject } from 'vue'
  import type { RenderContext } from '@slidev/types'
  
  import { injectionSlideContext } from '../constants'
  
  type Context = 'main' | RenderContext
  
  const props = defineProps<{
    context: Context | Context[]
  }>()
  const { context } = props
  
  const currentContext = inject(injectionSlideContext)
  
  const shouldRender = computed(() => Array.isArray(context) ? context.some(contextMatch) : contextMatch(context))
  
  function contextMatch(context: Context) {
    if (context === currentContext)
      return true
    if (context === 'main' && (currentContext === 'slide' || currentContext === 'presenter'))
      return true
    return false
  }
  </script>
  
  <template>
    <slot v-if="shouldRender" />
  </template>
  