<title>Vue SFC Playground</title>
<script>
// process shim for old versions of @vue/compiler-sfc dependency
- window.process = { env: {} }
- const savedPreferDark = localStorage.getItem('vue-sfc-playground-prefer-dark')
- if (
- savedPreferDark === 'true' ||
- (!savedPreferDark && window.matchMedia('(prefers-color-scheme: dark)').matches)
- ) {
+ // window.process = { env: {} }
+ // const savedPreferDark = localStorage.getItem('vue-sfc-playground-prefer-dark')
+ // if (
+ // savedPreferDark === 'true' ||
+ // (!savedPreferDark && window.matchMedia('(prefers-color-scheme: dark)').matches)
+ // ) {
document.documentElement.classList.add('dark')
- }
+ // }
</script>
<script type="module" src="/src/main.ts"></script>
</head>
"vite": "^4.3.0"
},
"dependencies": {
- "@vue/repl": "^1.5.0",
+ "@vue/repl": "^2.1.3",
"file-saver": "^2.0.5",
"jszip": "^3.6.0",
"vue": "workspace:*"
<script setup lang="ts">
import Header from './Header.vue'
import { Repl, ReplStore, SFCOptions } from '@vue/repl'
+import Monaco from '@vue/repl/monaco-editor'
import { ref, watchEffect } from 'vue'
const setVH = () => {
@toggle-ssr="toggleSSR"
/>
<Repl
+ :editor="Monaco"
@keydown.ctrl.s.prevent
@keydown.meta.s.prevent
:ssr="useSSRMode"
<script setup lang="ts">
import { downloadProject } from './download/download'
import { ref, onMounted } from 'vue'
-import Sun from './icons/Sun.vue'
-import Moon from './icons/Moon.vue'
+// import Sun from './icons/Sun.vue'
+// import Moon from './icons/Moon.vue'
import Share from './icons/Share.vue'
import Download from './icons/Download.vue'
import GitHub from './icons/GitHub.vue'
alert('Sharable URL has been copied to clipboard.')
}
-function toggleDark() {
- const cls = document.documentElement.classList
- cls.toggle('dark')
- localStorage.setItem(
- 'vue-sfc-playground-prefer-dark',
- String(cls.contains('dark'))
- )
-}
+// function toggleDark() {
+// const cls = document.documentElement.classList
+// cls.toggle('dark')
+// localStorage.setItem(
+// 'vue-sfc-playground-prefer-dark',
+// String(cls.contains('dark'))
+// )
+// }
onMounted(async () => {
window.addEventListener('click', () => {
>
<span>{{ ssr ? 'SSR ON' : 'SSR OFF' }}</span>
</button>
- <button title="Toggle dark mode" class="toggle-dark" @click="toggleDark">
+ <!-- <button title="Toggle dark mode" class="toggle-dark" @click="toggleDark">
<Sun class="light" />
<Moon class="dark" />
- </button>
+ </button> -->
<button title="Copy sharable URL" class="share" @click="copyLink">
<Share />
</button>
const files = store.getFiles()
for (const file in files) {
- src.file(file, files[file])
+ if (file !== 'import-map.json') {
+ src.file(file, files[file])
+ } else {
+ zip.file(file, files[file])
+ }
}
const blob = await zip.generateAsync({ type: 'blob' })
packages/sfc-playground:
dependencies:
'@vue/repl':
- specifier: ^1.5.0
- version: 1.5.0(vue@packages+vue)
+ specifier: ^2.1.3
+ version: 2.1.3
file-saver:
specifier: ^2.0.5
version: 2.0.5
engines: {node: '>= 0.12.0'}
dev: true
- /@vue/repl@1.5.0(vue@packages+vue):
- resolution: {integrity: sha512-qFqKtvA2FM9viYXzbWrpGrL8mDGswsqDsEjfaibr/YOqeza7i49VmO0AKPrOdQDOS2qmq9uV+G6OPX1rGhUSIQ==}
- peerDependencies:
- vue: ^3.2.13
- dependencies:
- vue: link:packages/vue
+ /@vue/repl@2.1.3:
+ resolution: {integrity: sha512-W6BiDOrDH3dsWYs5StVRdl1exXjVgXZYuKu1uG2FJdm3O7+yWWFPYXLdNneB9eOCaF1wbfQVaj4ZP46N0nPSpw==}
dev: false
/@zeit/schemas@2.6.0:
/is-reference@1.2.1:
resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
dependencies:
- '@types/estree': 1.0.0
+ '@types/estree': 0.0.48
dev: true
/is-regex@1.1.4: